streamlined the repository deployment process;
This commit is contained in:
parent
e9501cd27d
commit
39ebcb7586
9 changed files with 72 additions and 184 deletions
|
@ -8,6 +8,6 @@
|
|||
|
||||
vars_files:
|
||||
- ../defaults/main.yml
|
||||
#- ../defaults/disroot.yml
|
||||
- ../defaults/disroot.yml
|
||||
|
||||
|
||||
|
|
|
@ -21,8 +21,7 @@ Then, run the role again `ansible-playbook -b Playbooks/grav.yml`.
|
|||
Edit `/etc/hosts` on your computer on add:
|
||||
|
||||
```
|
||||
192.168.33.15 howto.disroot.lan
|
||||
192.168.33.15 disroot.lan
|
||||
```
|
||||
|
||||
You can now access Disroot website from your computer on `https://disroot.lan` and Howto website on `https://howto.disroot.lan`
|
||||
You can now access Disroot website from your computer on `https://disroot.lan`.
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
---
|
||||
|
||||
# This is example vars for disroot.org website.
|
||||
#
|
||||
grav_modules_already_installed: 'false' # set to true after 1st installation
|
||||
|
||||
grav_extra_files_path: '../files'
|
||||
|
||||
grav_website_repo:
|
||||
- site_hostname: disroot.lan
|
||||
repo: 'https://git.disroot.org/Disroot/Website.git'
|
||||
modules:
|
||||
- name: themer
|
||||
- name: form
|
||||
|
@ -16,59 +17,28 @@ grav_website_repo:
|
|||
pages_folder: ""
|
||||
system_file: "disroot.system.yaml"
|
||||
site_file: "disroot.site.yaml"
|
||||
repos:
|
||||
- name: 'pages'
|
||||
url: 'https://git.disroot.org/Disroot/Website.git'
|
||||
symlink_from_path: "pages"
|
||||
symlink_to_path: '/site/user/pages'
|
||||
- name: 'theme'
|
||||
url: 'https://git.disroot.org/Disroot-themes/grav-theme-disroot.git'
|
||||
symlink_from_path: ""
|
||||
symlink_to_path: '/site/user/themes/disroot'
|
||||
- name: 'changelog'
|
||||
url: 'https://git.disroot.org/Disroot/CHANGELOG.git'
|
||||
symlink_from_path: 'CHANGELOG'
|
||||
symlink_to_path: '/site/user/pages/changelog/_main/fullbar.en.md'
|
||||
- name: 'privacy_policy'
|
||||
url: 'https://git.disroot.org/Disroot/Disroot-Privacy-Policy.git'
|
||||
symlink_from_path: ''
|
||||
symlink_to_path: '/site/user/pages/privacy_policy/_pp'
|
||||
- name: 'tos'
|
||||
url: 'https://git.disroot.org/Disroot/Disroot-ToS.git'
|
||||
symlink_from_path: ''
|
||||
symlink_to_path: '/site/user/pages/tos/_tos'
|
||||
|
||||
- site_hostname: howto.disroot.lan
|
||||
repo: 'https://git.disroot.org/Disroot/Howto.git'
|
||||
modules:
|
||||
- name: themer
|
||||
- name: simplesearch
|
||||
- name: relatedpages
|
||||
- name: breadcrumbs
|
||||
- name: page-toc
|
||||
- name: language-selector
|
||||
config: 'true'
|
||||
- name: tagcloud
|
||||
site_name: "Disroot Howto"
|
||||
pages_folder: ""
|
||||
system_file: "howto.system.yaml"
|
||||
site_file: "howto.site.yaml"
|
||||
|
||||
grav_website_theme:
|
||||
- site_hostname: disroot.lan
|
||||
theme_name: disroot
|
||||
folder_name: theme
|
||||
subfolder_path: "/"
|
||||
repo: 'https://git.disroot.org/Disroot-themes/grav-theme-disroot.git'
|
||||
- site_hostname: howto.disroot.lan
|
||||
theme_name: grav-theme-howto
|
||||
folder_name: theme
|
||||
subfolder_path: "/"
|
||||
repo: 'https://git.disroot.org/Disroot-themes/grav-theme-howto.git'
|
||||
- site_hostname: disroot.lan
|
||||
theme_name: disrootblog
|
||||
subfolder_path: "/"
|
||||
folder_name: blogtheme
|
||||
repo: 'https://git.disroot.org/Disroot-themes/grav-theme-disrootblog.git'
|
||||
|
||||
grav_website_specific_pages:
|
||||
- site_hostname: disroot.lan
|
||||
folder_name: changelog
|
||||
repo: 'https://git.disroot.org/Disroot/CHANGELOG.git'
|
||||
symlink_from_path: "CHANGELOG"
|
||||
symlink_to_path: "changelog/_main/fullbar.en.md"
|
||||
- site_hostname: disroot.lan
|
||||
folder_name: pp
|
||||
repo: 'https://git.disroot.org/Disroot/Disroot-Privacy-Policy.git'
|
||||
symlink_from_path:
|
||||
symlink_to_path: "privacy_policy/_pp"
|
||||
- site_hostname: disroot.lan
|
||||
folder_name: tos
|
||||
symlink_from_path:
|
||||
symlink_to_path: "tos/_tos"
|
||||
repo: 'https://git.disroot.org/Disroot/Disroot-ToS.git'
|
||||
|
||||
|
||||
# Modules vars
|
||||
## language-selector vars
|
||||
grav_language_selector_enabled: 'true'
|
||||
grav_language_selector_button: 'name'
|
||||
|
@ -104,27 +74,3 @@ nginx_vhosts:
|
|||
state: 'enable'
|
||||
letsencrypt: 'false'
|
||||
selfsigned: 'true'
|
||||
|
||||
- name: 'howto.disroot.lan'
|
||||
template: 'grav'
|
||||
proto: 'https'
|
||||
listen: '443'
|
||||
root: 'howto.disroot.lan/site'
|
||||
index: 'index.php'
|
||||
ssl_name: 'howto.disroot.lan'
|
||||
use_access_log: 'false'
|
||||
use_error_log: 'true'
|
||||
nginx_error_log_level: 'warn'
|
||||
header_robot: 'none'
|
||||
nginx_HSTS_policy: 'none'
|
||||
header_xframe: 'none'
|
||||
header_referrer: 'none'
|
||||
secure_site: 'none'
|
||||
upstream_params:
|
||||
- 'fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;'
|
||||
- 'fastcgi_index index.php;'
|
||||
- 'include /etc/nginx/fastcgi_params;'
|
||||
- 'fastcgi_pass unix:{{ pool_listen }};'
|
||||
state: 'enable'
|
||||
letsencrypt: 'false'
|
||||
selfsigned: 'true'
|
|
@ -55,7 +55,7 @@ grav_language_selector_select: 'name'
|
|||
|
||||
|
||||
# PHP Vars
|
||||
php_version: '8.0'
|
||||
php_version: '8.2'
|
||||
php_etc_path: '/etc/php'
|
||||
install_php: 'true'
|
||||
pool_listen: '/var/run/php/php{{ php_version }}-fpm.sock'
|
||||
|
@ -109,4 +109,4 @@ nginx_vhosts:
|
|||
- 'fastcgi_pass unix:{{ pool_listen }};'
|
||||
state: 'enable'
|
||||
letsencrypt: 'false'
|
||||
selfsigned: 'true'
|
||||
selfsigned: 'true'
|
||||
|
|
|
@ -16,22 +16,22 @@
|
|||
|
||||
- name: "[GRAV] - Install modules"
|
||||
include_tasks: modules.yml
|
||||
tags: webistes
|
||||
|
||||
- name: "[GRAV] - Deploy Website repos"
|
||||
include_tasks: website_repos.yml
|
||||
when: website.repo is defined
|
||||
when: website.site_hostname is defined
|
||||
loop: "{{ grav_website_repo }}"
|
||||
loop_control:
|
||||
loop_var: website
|
||||
tags: websites
|
||||
|
||||
- name: "[GRAV] - Deploy Website sub repos"
|
||||
include_tasks: sub_repos.yml
|
||||
when: subrepo.repo is defined
|
||||
loop: "{{ grav_website_repo }}"
|
||||
loop_control:
|
||||
loop_var: subrepo
|
||||
tags:
|
||||
- subrepos
|
||||
- symlink
|
||||
|
||||
- name: "[GRAV] - Upgrade websites"
|
||||
include_tasks: upgrade.yml
|
||||
when: item.site_hostname is defined
|
||||
loop: "{{ grav_website_repo }}"
|
||||
tags:
|
||||
- websites
|
||||
- upgrade
|
||||
- never
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
become_user: "{{ grav_user }}"
|
||||
loop: "{{ grav_website_repo|subelements('modules', skip_missing=True) }}"
|
||||
when: grav_modules_already_installed == 'false'
|
||||
tags: websites
|
||||
|
||||
- name: "[Modules] - Create plugins dir"
|
||||
file:
|
||||
|
@ -16,6 +17,7 @@
|
|||
owner: '{{ grav_user }}'
|
||||
group: '{{ grav_group }}'
|
||||
loop: "{{ grav_website_repo }}"
|
||||
tags: websites
|
||||
|
||||
- name: "[Modules] - Deploy modules config"
|
||||
template:
|
||||
|
@ -23,6 +25,7 @@
|
|||
dest: '{{ grav_path }}/{{ item.0.site_hostname }}/site/user/config/plugins/{{ item.1.name }}.yaml'
|
||||
loop: "{{ grav_website_repo|subelements('modules', skip_missing=True) }}"
|
||||
when: item.1.config is defined and grav_modules_already_installed == 'false'
|
||||
tags: websites
|
||||
|
||||
- name: "[Modules] - Update installed modules"
|
||||
shell:
|
||||
|
@ -32,3 +35,4 @@
|
|||
become_user: "{{ grav_user }}"
|
||||
loop: "{{ grav_website_repo|subelements('modules', skip_missing=True) }}"
|
||||
when: grav_modules_already_installed == 'true'
|
||||
tags: websites
|
||||
|
|
|
@ -1,60 +0,0 @@
|
|||
---
|
||||
|
||||
- name: "[Repos] - Remove symlink theme path before git clone"
|
||||
file:
|
||||
path: "{{ grav_path }}/{{ item.site_hostname }}/{{ item.site_hostname }}-{{ item.folder_name }}"
|
||||
state: absent
|
||||
loop: "{{ grav_website_theme }}"
|
||||
tags: subrepos
|
||||
|
||||
- name: "[Sub Repos] - Git clone Website theme repos"
|
||||
git:
|
||||
repo: "{{ item.repo }}"
|
||||
dest: "{{ grav_path }}/{{ item.site_hostname }}/{{ item.site_hostname }}-{{ item.folder_name }}"
|
||||
force: yes
|
||||
become: yes
|
||||
become_user: "{{ grav_user }}"
|
||||
loop: "{{ grav_website_theme }}"
|
||||
tags: subrepos
|
||||
|
||||
- name: "[Sub Repos] - Symlink theme path"
|
||||
file:
|
||||
src: "{{ grav_path }}/{{ item.site_hostname }}/{{ item.site_hostname }}-{{ item.folder_name }}{{ item.subfolder_path }}"
|
||||
dest: "{{ grav_path }}/{{ item.site_hostname }}/site/user/themes/{{ item.theme_name }}"
|
||||
state: link
|
||||
owner: "{{ grav_user }}"
|
||||
group: "{{ grav_group }}"
|
||||
loop: "{{ grav_website_theme }}"
|
||||
tags:
|
||||
- subrepos
|
||||
- symlink
|
||||
|
||||
- name: "[Repos] - Remove symlink specific pages path before git clone"
|
||||
file:
|
||||
path: "{{ grav_path }}/{{ item.site_hostname }}/{{ item.site_hostname }}-{{ item.folder_name }}"
|
||||
state: absent
|
||||
loop: "{{ grav_website_specific_pages }}"
|
||||
tags: subrepos
|
||||
|
||||
- name: "[Sub Repos] - Git clone Website specific pages repos"
|
||||
git:
|
||||
repo: "{{ item.repo }}"
|
||||
dest: "{{ grav_path }}/{{ item.site_hostname }}/{{ item.site_hostname }}-{{ item.folder_name }}"
|
||||
force: yes
|
||||
become: yes
|
||||
become_user: "{{ grav_user }}"
|
||||
loop: "{{ grav_website_specific_pages }}"
|
||||
tags: subrepos
|
||||
|
||||
- name: "[Sub Repos] - Symlink specific pages path"
|
||||
file:
|
||||
src: "{{ grav_path }}/{{ item.site_hostname }}/{{ item.site_hostname }}-{{ item.folder_name }}/{{ item.symlink_from_path }}"
|
||||
dest: "{{ grav_path }}/{{ item.site_hostname }}/site/user/pages/{{ item.symlink_to_path }}"
|
||||
state: link
|
||||
owner: "{{ grav_user }}"
|
||||
group: "{{ grav_group }}"
|
||||
loop: "{{ grav_website_specific_pages }}"
|
||||
tags:
|
||||
- subrepos
|
||||
- symlink
|
||||
|
21
tasks/upgrade.yml
Normal file
21
tasks/upgrade.yml
Normal file
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
|
||||
- name: '[Upgrade] - Upgrade grav for {{ item.site_hostname }}'
|
||||
shell:
|
||||
cmd: bin/gpm selfupgrade -y
|
||||
chdir: '{{ grav_path }}/{{ item.site_hostname }}/site'
|
||||
become: true
|
||||
become_user: '{{ grav_user }}'
|
||||
tags:
|
||||
- upgrade
|
||||
- never
|
||||
|
||||
- name: '[Upgrade] - Upgrade modules for {{ item.site_hostname }}'
|
||||
shell:
|
||||
cmd: bin/gpm update -y
|
||||
chdir: '{{ grav_path }}/{{ item.site_hostname }}/site'
|
||||
become: true
|
||||
become_user: '{{ grav_user }}'
|
||||
tags:
|
||||
- upgrade
|
||||
- never
|
|
@ -1,49 +1,27 @@
|
|||
---
|
||||
|
||||
- name: '[Repos] - Remove the default 02.typography folder from new installation'
|
||||
- name: '[Repos] - Remove directories that will become symlink'
|
||||
file:
|
||||
path: '{{ grav_path }}/{{ item.site_hostname }}/site/user/pages/02.typography/'
|
||||
path: "{{ grav_path }}/{{ item.0.site_hostname }}{{ item.1.symlink_to_path }}"
|
||||
state: absent
|
||||
loop: "{{ grav_website_repo }}"
|
||||
tags: websites
|
||||
|
||||
- name: '[Repos] - Remove the default 01.home/default.md file from new installation'
|
||||
file:
|
||||
path: '{{ grav_path }}/{{ item.site_hostname }}/site/user/pages/01.home/default.md'
|
||||
state: absent
|
||||
loop: "{{ grav_website_repo }}"
|
||||
tags: websites
|
||||
|
||||
- name: "[Repos] - Remove symlink pages path before git clone"
|
||||
file:
|
||||
path: "{{ grav_path }}/{{ item.site_hostname }}/site/user/pages"
|
||||
state: absent
|
||||
loop: "{{ grav_website_repo }}"
|
||||
loop: "{{ grav_website_repo|subelements('repos', skip_missing=True) }}"
|
||||
tags: websites
|
||||
|
||||
- name: "[Repos] - Git clone Website repos"
|
||||
git:
|
||||
repo: "{{ item.repo }}"
|
||||
dest: "{{ grav_path }}/{{ item.site_hostname }}/{{ item.site_hostname }}-pages/{{ item.pages_folder }}"
|
||||
repo: "{{ item.1.url }}"
|
||||
dest: "{{ grav_path }}/{{ item.0.site_hostname }}/{{ item.0.site_hostname }}-{{ item.1.name }}"
|
||||
force: yes
|
||||
become: yes
|
||||
become_user: "{{ grav_user }}"
|
||||
loop: "{{ grav_website_repo }}"
|
||||
loop: "{{ grav_website_repo|subelements('repos', skip_missing=True) }}"
|
||||
tags: websites
|
||||
|
||||
- name: "[Repos] - Remove pages dir"
|
||||
- name: "[Repos] - Symlink repositories to proper place"
|
||||
file:
|
||||
path: "{{ grav_path }}/{{ item.site_hostname }}/site/user/pages"
|
||||
state: absent
|
||||
loop: "{{ grav_website_repo }}"
|
||||
tags: websites
|
||||
|
||||
- name: "[Repos] - Symlink pages path"
|
||||
file:
|
||||
src: "{{ grav_path }}/{{ item.site_hostname }}/{{ item.site_hostname }}-pages/pages"
|
||||
dest: "{{ grav_path }}/{{ item.site_hostname }}/site/user/pages"
|
||||
src: "{{ grav_path }}/{{ item.0.site_hostname }}/{{ item.0.site_hostname }}-{{ item.1.name }}/{{ item.1.symlink_from_path }}"
|
||||
dest: "{{ grav_path }}/{{ item.0.site_hostname }}{{ item.1.symlink_to_path }}"
|
||||
state: link
|
||||
owner: "{{ grav_user }}"
|
||||
group: "{{ grav_group }}"
|
||||
loop: "{{ grav_website_repo }}"
|
||||
loop: "{{ grav_website_repo|subelements('repos', skip_missing=True) }}"
|
||||
tags: websites
|
||||
|
|
Loading…
Reference in a new issue