diff --git a/README-FR.md b/README-FR.md index 04d7e13880ce449fdd38a8fe129650b25d6b7ff3..a25a64b20f23a5d074453ecce713df65bb85847d 100644 --- a/README-FR.md +++ b/README-FR.md @@ -13,20 +13,35 @@ [🇬🇧 English version](README.md) Cette collection vise à installer, configurer et sauvegarder [Yunohost](https://yunohost.org/#/). -Comme il s'agit d'une collection indépendante, elle peut être publiée selon sa propre cadence de publication. +Comme il s'agit d'une collection indépendante, elle peut être publiée selon sa propre cadence de publication. De plus, les rôles qu'elle contient sont mis à jour indépendamment. ## Prérequis -Votre serveur doit être basé sur du Debian Buster. +Votre serveur doit être basé sur du Debian Buster et Yunohost ne doit pas déjà être installé. ## Contenu de la collection ### Rôles -- `lydra.yunohost.ynh_setup` : Ce rôle prépare les serveurs à base de Debian-Buster à exécuter Yunohost. -- `lydra.yunohost.ynh_config` : Ce rôle gère la configuration et le démarrage des différents services de Yunohost (relais SMTP, mises à jour automatiques). +- `lydra.yunohost.ynh_setup` : Ce rôle prépare les serveurs à base de Debian-Buster à exécuter Yunohost. Il configure Yunohost avec ses paramètres initiaux et les domaines, utilisateurs et applications de votre choix. +- `lydra.yunohost.ynh_config` : Ce rôle gère la configuration de différents services de Yunohost (relais SMTP, mises à jour automatiques). - `lydra.yunohost.ynh_backup` : Ce rôle gère la configuration des sauvegardes. +### lydra.yunohost Tags du rôle + +Ces tags sont applicables suivant les rôles. + +|tags|commentaires| +|----|-------| +|yunohost|Tâches spécifiques à Yunohost.| +|users|Tâches spécifiques aux utilisateurs de Yunohost.| +|domains|Tâches spécifiques aux domaines liés à Yunohost.| +|apps|Tâches spécifiques aux applications de Yunohost.| +|update|Tâches liées aux paramètres de mise à jour de Yunohost.| +|smtp|Tâches liées aux paramètres de relais smtp de Yunohost.| +|backup|Tâches liées aux sauvegardes de Yunohost.| +|pkg|Tâches d'installation de paquets.| + ## License [](https://choosealicense.com/licenses/gpl-3.0/) diff --git a/README.md b/README.md index fc3a7da5288a0aa117d053d0e32e95bb144899f6..e98c5d5204368794fbc95a5bbb708df93c0abbb2 100644 --- a/README.md +++ b/README.md @@ -13,19 +13,34 @@ [🇫🇷 French version](README-FR.md) This collection aims at installing, configuring and backing up [Yunohost](https://yunohost.org/#/). -As this is an independent collection, it can be released on its own release cadence. +As this is an independent collection, it can be released on its own release cadence. Moreover, the roles it contains are updated independently. # Prerequisites -Your server must be Debian-Buster based. +Your server must be Debian-Buster based and Yunohost shouldn't be already installed. ## Collection contents ### Roles -- `lydra.yunohost.ynh_setup` : This role prepares servers with Debian-Buster-based to run Yunohost. -- `lydra.yunohost.ynh_config` : This role manages configuring and starting various Yunohost services (SMTP relay, auto updates). -- `lydra.yunohost.ynh_backup` : This role manages configuring of backups. +- `lydra.yunohost.ynh_setup` : This role prepares servers with Debian-Buster-based to run Yunohost. It sets up Yunohost with its initial settings and domains, users and apps of your choice. +- `lydra.yunohost.ynh_config` : This role configures various Yunohost services (SMTP relay, auto updates). +- `lydra.yunohost.ynh_backup` : This role manages the configuration of backups. + +## lydra.yunohost Role Tags + +These tags are applicable to roles. + +|tags|comment| +|----|-------| +|yunohost|Tasks specific to Yunohost.| +|users|Tasks specific to users in Yunohost.| +|domains|Tasks specific to domains linked to Yunohost.| +|apps|Tasks specific to Yunohost apps.| +|update|Tasks related to Yunohost update settings.| +|smtp|Tasks related to Yunohost smtp relay settings.| +|backup|Tasks related to Yunohost backups.| +|pkg|Tasks that install packages.| ## License diff --git a/roles/ynh_backup/README-FR.md b/roles/ynh_backup/README-FR.md index 44854a1b4d9fc246a7d4dbebc4d779225a380e98..0989149d4fa5d4f365f051615461fde297c38c28 100644 --- a/roles/ynh_backup/README-FR.md +++ b/roles/ynh_backup/README-FR.md @@ -56,17 +56,13 @@ Aucune. ```yml --- -- name: Install Yunohost on Debian Server +- name: Configure Yunohost backups hosts: all become: True - pre_tasks: - - name: Update all packages and index - ansible.builtin.apt: - upgrade: dist - update_cache: yes - - roles: + collections: - lydra.yunohost + roles: + - ynh_backup ``` ## License diff --git a/roles/ynh_backup/README.md b/roles/ynh_backup/README.md index a1730f8c24a38bd8b930996b59dac3489a3efb65..83824154d9c17f3ad26e107d7ba13c03c56585c4 100644 --- a/roles/ynh_backup/README.md +++ b/roles/ynh_backup/README.md @@ -59,6 +59,8 @@ None. - name: Install Yunohost on Debian Server hosts: all become: True + collections: + - lydra.yunohost pre_tasks: - name: Update all packages and index ansible.builtin.apt: @@ -66,7 +68,7 @@ None. update_cache: yes roles: - - ansible-yunohost + - ynh_backup ``` ## License diff --git a/roles/ynh_backup/tasks/backup.yml b/roles/ynh_backup/tasks/backup.yml index e3f1f0f6c39fa5e1d6edbbd0f0ba8cd7b3a61d1d..b6f4926e4507d95822d16ec86e7dc88f6a02d6e8 100644 --- a/roles/ynh_backup/tasks/backup.yml +++ b/roles/ynh_backup/tasks/backup.yml @@ -23,6 +23,8 @@ path: "{{ ynh_backup.directory | default('/home/yunohost.backup/archives') }}" state: directory mode: '0750' + tags: + - "backup" - name: Create backup script ansible.builtin.template: @@ -31,6 +33,9 @@ owner: root group: root mode: '0740' + tags: + - "backup" + - "cron" - name: Create cron task to perform YNH backup ansible.builtin.cron: @@ -42,3 +47,6 @@ user: root job: "{{ ynh_backup.dest_script | default('/usr/local/bin/') }}ynh_backup.sh" cron_file: ynh_backup_cron + tags: + - "backup" + - "cron" diff --git a/roles/ynh_backup/tasks/main.yml b/roles/ynh_backup/tasks/main.yml index e0f491afab73422964a15e9b15fda2e129587762..73baaf392f2d053efaeed7861f5df51b51ade448 100644 --- a/roles/ynh_backup/tasks/main.yml +++ b/roles/ynh_backup/tasks/main.yml @@ -21,3 +21,5 @@ - name: Enable Yunohost apps backup ansible.builtin.include_tasks: backup.yml when: ynh_backup.scheduled + tags: + - "backup" diff --git a/roles/ynh_config/README-FR.md b/roles/ynh_config/README-FR.md index 1e9ed720591c0b1c5fb5944f5516a9ddad27af97..882a71a8c8b212ce6c7e29180e0969aa61ee28d6 100644 --- a/roles/ynh_config/README-FR.md +++ b/roles/ynh_config/README-FR.md @@ -68,9 +68,11 @@ Aucune. ```yml --- -- name: Configure Yunohost on Debian Server +- name: Install Yunohost on Debian Server hosts: all become: True + collections: + - lydra.yunohost pre_tasks: - name: Update all packages and index ansible.builtin.apt: @@ -78,7 +80,7 @@ Aucune. update_cache: yes roles: - - lydra.yunohost + - ynh_config ``` ## License diff --git a/roles/ynh_config/README.md b/roles/ynh_config/README.md index fa774db9775c5440bb2fa4ca0f6b850dc2db3435..b704c6e0760d2c4ced189fc4124d55a2c02e091b 100644 --- a/roles/ynh_config/README.md +++ b/roles/ynh_config/README.md @@ -71,6 +71,8 @@ None. - name: Install Yunohost on Debian Server hosts: all become: True + collections: + - lydra.yunohost pre_tasks: - name: Update all packages and index ansible.builtin.apt: @@ -78,7 +80,7 @@ None. update_cache: yes roles: - - ansible-yunohost + - ynh_config ``` ## License diff --git a/roles/ynh_config/tasks/autoupdate.yml b/roles/ynh_config/tasks/autoupdate.yml index ff923af5b5c049c5ab59833fbb77ed8b1d446fbd..8678d9e3f1e74c4ab3a3b47d02c0134c3188a748 100644 --- a/roles/ynh_config/tasks/autoupdate.yml +++ b/roles/ynh_config/tasks/autoupdate.yml @@ -25,6 +25,9 @@ owner: root group: root mode: '0740' + tags: + - "update" + - "cron" - name: Creates cron task under /etc/cron.d to auto-update Yunohost ansible.builtin.cron: @@ -34,3 +37,6 @@ user: root job: "{{ ynh_autoupdate.dest_script | default('/usr/local/bin/') }}ynh_autoupdate.sh" cron_file: ynh_autoupdate_cron + tags: + - "update" + - "cron" diff --git a/roles/ynh_config/tasks/main.yml b/roles/ynh_config/tasks/main.yml index 7650a87751eddfd182099ab857bc24d577b3eb4f..fbcd358ad18c2a4142286861e904cb3125dfee23 100644 --- a/roles/ynh_config/tasks/main.yml +++ b/roles/ynh_config/tasks/main.yml @@ -22,7 +22,11 @@ ansible.builtin.include_tasks: smtp_relay.yml loop: "{{ ynh_smtp_relay | dict2items }}" when: item.value + tags: + - "smtp" - name: Configures Yunohost autoupdate ansible.builtin.include_tasks: autoupdate.yml when: ynh_autoupdate.scheduled + tags: + - "update" diff --git a/roles/ynh_config/tasks/smtp_relay.yml b/roles/ynh_config/tasks/smtp_relay.yml index 874587083904f1279b05a4b54f118ec81ac40ce4..1090417c8dba42d489914549ab6ffe8c3963a7d4 100644 --- a/roles/ynh_config/tasks/smtp_relay.yml +++ b/roles/ynh_config/tasks/smtp_relay.yml @@ -23,8 +23,12 @@ "yunohost settings get smtp.relay.{{ item.key }}" register: _ynh_smtp_current_values changed_when: False + tags: + - "smtp" - name: Set new SMTP settings ansible.builtin.command: "yunohost settings set smtp.relay.{{ item.key }} -v {{ item.value }}" when: _ynh_smtp_current_values.stdout != item.value + tags: + - "smtp" diff --git a/roles/ynh_setup/README-FR.md b/roles/ynh_setup/README-FR.md index bbacd3283c46e468acecab296ba049b8f6122c29..83ee4febbc0f224eb578164837663d899c8db7b1 100644 --- a/roles/ynh_setup/README-FR.md +++ b/roles/ynh_setup/README-FR.md @@ -141,6 +141,8 @@ Aucune. roles: - ynh_setup + - ynh_config + - ynh_backup ``` ## License diff --git a/roles/ynh_setup/README.md b/roles/ynh_setup/README.md index 084e91d2947fa8643831e05de6be9033807c2236..511e82a154c24e7129f68f438809f07fe0c2a2d4 100644 --- a/roles/ynh_setup/README.md +++ b/roles/ynh_setup/README.md @@ -141,6 +141,8 @@ None. roles: - ynh_setup + - ynh_config + - ynh_backup ``` ## License diff --git a/roles/ynh_setup/tasks/app.yml b/roles/ynh_setup/tasks/app.yml index ef15d38be2387ecc5ed2499faf9cea89d9d3d38a..d0395996930921de3476ace9896734ea3803c595 100644 --- a/roles/ynh_setup/tasks/app.yml +++ b/roles/ynh_setup/tasks/app.yml @@ -24,6 +24,9 @@ --label "{{ ynh_app.label }}" \ --args "{% for key, value in ynh_app.args.items() %}{{ key }}={{ value }}{% if not loop.last %}&{% endif %}{% endfor %}" changed_when: False + tags: + - "yunohost" + - "apps" # Post-installation part - name: Create post-install template @@ -35,6 +38,8 @@ mode: "{{ (item.type == 'script') | ternary('740', '660') }}" loop: "{{ ynh_app.post_install|default([]) }}" when: ynh_app.post_install + tags: + - "apps" - name: Launch post-install script ansible.builtin.command: "{{ ynh_app_post_install.dest }}" @@ -44,6 +49,8 @@ loop_control: loop_var: ynh_app_post_install when: ynh_app_post_install.type == "script" + tags: + - "apps" - name: Remove script after execution ansible.builtin.file: @@ -53,3 +60,5 @@ loop_control: loop_var: ynh_app_post_install when: ynh_app_post_install.type == "script" + tags: + - "apps" diff --git a/roles/ynh_setup/tasks/apps.yml b/roles/ynh_setup/tasks/apps.yml index 6ac376ba747fb1f305bb752d1b78ae8b8d3b051e..9289ddd46860e4350532f48cd82522eb0583169c 100644 --- a/roles/ynh_setup/tasks/apps.yml +++ b/roles/ynh_setup/tasks/apps.yml @@ -22,9 +22,15 @@ ansible.builtin.command: yunohost app map --output-as json register: ynh_installed_apps_raw changed_when: False + tags: + - "yunohost" + - "apps" - name: Format json of apps ansible.builtin.set_fact: ynh_installed_apps="{{ ynh_installed_apps_raw.stdout | from_json }}" + tags: + - "yunohost" + - "apps" - name: Install yunohost apps and perform post-install ansible.builtin.include_tasks: app.yml @@ -32,4 +38,7 @@ loop_control: loop_var: ynh_app when: ynh_app.label not in ynh_installed_apps.values() + tags: + - "yunohost" + - "apps" diff --git a/roles/ynh_setup/tasks/domains.yml b/roles/ynh_setup/tasks/domains.yml index 43fd607adbbc512deb8538a88c8bff3bbbbe5332..baa41afb2e9ede6b37bd71de4a9941964e0394bc 100644 --- a/roles/ynh_setup/tasks/domains.yml +++ b/roles/ynh_setup/tasks/domains.yml @@ -22,11 +22,20 @@ ansible.builtin.command: yunohost domain list --output-as json register: ynh_installed_domains_raw changed_when: False + tags: + - "yunohost" + - "domains" - name: Format json of domains ansible.builtin.set_fact: ynh_installed_domains="{{ ynh_installed_domains_raw.stdout | from_json }}" + tags: + - "yunohost" + - "domains" - name: Create domains ansible.builtin.command: yunohost domain add {{ item }} with_items: "{{ ynh_extra_domains }}" when: item not in ynh_installed_domains.domains + tags: + - "yunohost" + - "domains" diff --git a/roles/ynh_setup/tasks/main.yml b/roles/ynh_setup/tasks/main.yml index e0f8b73252fcbfd9ea571700081a93e3e69b58d4..2736af9005c5e87e391c69cee32a0dde21a4a74a 100644 --- a/roles/ynh_setup/tasks/main.yml +++ b/roles/ynh_setup/tasks/main.yml @@ -24,10 +24,14 @@ - git - dialog state: present + tags: + - "pkg" - name: Test if Yunohost is already installed ansible.builtin.stat: path=/etc/yunohost/installed register: ynh_file_install + tags: + - "yunohost" - name: Download Yunohost install script ansible.builtin.get_url: @@ -35,10 +39,14 @@ dest: /tmp/install_yunohost.sh mode: 700 when: not ynh_file_install.stat.exists + tags: + - "yunohost" - name: Launch Yunohost install script ansible.builtin.command: /tmp/install_yunohost.sh -a when: not ynh_file_install.stat.exists + tags: + - "yunohost" - name: Launch Yunohost postinstall ansible.builtin.command: @@ -47,23 +55,39 @@ --password "{{ ynh_admin_password }}" \ {% if ynh_ignore_dyndns_server %} --ignore-dyndns {% endif %} when: not ynh_file_install.stat.exists + tags: + - "yunohost" + - "domains" - name: Create extra domains ansible.builtin.include_tasks: domains.yml when: ynh_extra_domains + tags: + - "yunohost" + - "domains" - name: Run first Yunohost diagnosis ansible.builtin.command: yunohost diagnosis run when: not ynh_file_install.stat.exists + tags: + - "yunohost" - name: Install domain certificates ansible.builtin.command: yunohost domain cert-install changed_when: False + tags: + - "yunohost" - name: Add Yunohost users ansible.builtin.include_tasks: users.yml when: ynh_users + tags: + - "yunohost" + - "users" - name: Install Yunohost apps ansible.builtin.include_tasks: apps.yml when: ynh_apps + tags: + - "yunohost" + - "apps" diff --git a/roles/ynh_setup/tasks/users.yml b/roles/ynh_setup/tasks/users.yml index 06e3c4c171e3673e7b2a7c306353d881eb24aff3..d4ad86af16009e7f6d5f02024442688685c141d6 100644 --- a/roles/ynh_setup/tasks/users.yml +++ b/roles/ynh_setup/tasks/users.yml @@ -22,9 +22,15 @@ ansible.builtin.command: yunohost user list --output-as json register: ynh_registered_users_raw changed_when: False + tags: + - "yunohost" + - "users" - name: Format json of users ansible.builtin.set_fact: ynh_registered_users="{{ ynh_registered_users_raw.stdout | from_json }}" + tags: + - "yunohost" + - "users" - name: Create missing Yunohost users ansible.builtin.command: @@ -35,3 +41,6 @@ -p "{{ item.pass }}" loop: "{{ ynh_users }}" when: item.name not in ynh_registered_users.users.keys() + tags: + - "yunohost" + - "users"