streamlined the repository deployment process;

This commit is contained in:
muppeth 2024-05-16 18:24:50 +02:00
parent e9501cd27d
commit 39ebcb7586
Signed by: muppeth
GPG key ID: 0EBC7B9848D04031
9 changed files with 72 additions and 184 deletions

View file

@ -8,6 +8,6 @@
vars_files:
- ../defaults/main.yml
#- ../defaults/disroot.yml
- ../defaults/disroot.yml

View file

@ -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`.

View file

@ -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'

View file

@ -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'

View file

@ -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

View file

@ -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

View file

@ -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
View 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

View file

@ -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