diff --git a/i18n/en.yml b/i18n/en.yml index fa69041..03301a0 100644 --- a/i18n/en.yml +++ b/i18n/en.yml @@ -66,6 +66,11 @@ webserver-perso-config: Configure personal pages for webserver webserver-perso-symlink: Enable personal pages config webserver-perso-publichtml: Create public_html folder in skel webserver-perso-onions: Prepare personal pages on onions +webserver-perso-multisite: Enable multisite support by linking to ~/public_html +# roles/webserver/tasks/multisite.yml +webserver-multisite-check: Verify that ~/public/html exists +webserver-multisite-folder: Create ~/public/html +webserver-multisite-symlink: Create symlinks to ~/public_html #### .debian # roles/.debian/tasks/main.yml debian-pkg: Setup Debian packaged défined in config diff --git a/i18n/fr.yml b/i18n/fr.yml index 1b4a4a3..257dd75 100644 --- a/i18n/fr.yml +++ b/i18n/fr.yml @@ -64,7 +64,12 @@ webserver-pkg: Installer les paquets pour le serveur web webserver-perso-config: Configurer les pages perso webserver-perso-symlink: Activer la configuration des pages perso webserver-perso-publichtml: Créer le dossier public_html dans /etc/skel +webserver-perso-multisite: Activer le multi-site en pointant vers ~/public_html webserver-perso-onions: Préparer les pages perso en onion +# roles/webserver/tasks/multisite.yml +webserver-multisite-check: Vérifier si ~/public/html existe +webserver-multisite-folder: Créer ~/public/html/ +webserver-multisite-symlink: Créer les liens symboliques vers ~/public_html #### .debian # roles/.debian/tasks/main.yml debian-pkg: Installer les paquets Debian définis dans la config diff --git a/roles/webserver/tasks/multisite.yml b/roles/webserver/tasks/multisite.yml new file mode 100644 index 0000000..7dfa90b --- /dev/null +++ b/roles/webserver/tasks/multisite.yml @@ -0,0 +1,25 @@ +# Need to check because we don't want to overwrite user content +# with symlinks in the name of idempotence :D +- name: webserver-multisite-check + stat: + path: "/home/{{ user.name }}/public/html" + # In case it's a symlink to elsewhere + follow: yes + register: publichtml + +- name: webserver-multisite-folder + file: + path: "/home/{{ user.name }}/public/html" + state: directory + when: not publichtml.stat.exists + +- name: webserver-multisite-symlink + file: + path: "/home/{{ user.name }}/public/html/{{ item }}" + src: "/home/{{ user.name }}/public_html" + state: link + loop: + - onion + - domain + - tilde + when: not publichtml.stat.exists diff --git a/roles/webserver/tasks/pages_perso.yml b/roles/webserver/tasks/pages_perso.yml index d1975af..1e0d4ad 100644 --- a/roles/webserver/tasks/pages_perso.yml +++ b/roles/webserver/tasks/pages_perso.yml @@ -14,6 +14,12 @@ path: /etc/skel/public_html state: directory +- name: webserver-perso-multisite + include: multisite.yml + loop: "{{ users }}" + loop_control: + loop_var: user + - name: webserver-perso-onions include: onions_perso.yml loop: "{{ users }}"