1
0
Fork 0
ynh-lydra-ansible-yunohost/README-FR.md
2022-01-24 14:28:41 +00:00

9.6 KiB
Raw Blame History

License: GPL v3 Ansible Role Ansible Quality Score Ansible Role GitHub last commit GitHub Release Date GitHub Repo stars

Rôle Ansible : Yunohost

🇬🇧 English version

Déployez Yunohost avec Ansible !

Prérequis

Aucun.

Variables du rôle

Les variables par défaut sont disponibles dans default/main.yml cependant il est nécessaire de les surcharger selon vos besoins en termes de domaines, d'utilisateurs et d'applications sur Yunohost.

Installation de Yunohost

# Script pour Debian 10 uniquement.
ynh_install_script_url: https://install.yunohost.org

ynh_admin_password: MYINSECUREPWD_PLZ_OVERRIDE_THIS
  • ynh_install_script_url est le script d'installation des packages Yunohost, par défaut c'est le script officiel. Yunohost ne s'installe que sur Debian 10.
  • ynh_admin_password est le mot de passe permettant d'accéder à linterface dadministration du serveur.

Gestion des domaines

# Liste des domaines gérés par Yunohost.
ynh_main_domain: domain.tld
ynh_extra_domains:
  - forum.domain.tld
  - wiki.domain.tld
ynh_ignore_dyndns_server: False
  • ynh_main_domain correspond au domaine principal qui permet laccès au serveur ainsi quau portail dauthentification des utilisateurs. On peut se contenter d'un nom de domaine qui nous appartient ou en utiliser un en .nohost.me / .noho.st / .ynh.fr (plus d'infos ici).
  • ynh_extra_domains sont des sous-domaines optionnels. Ils permettent d'installer une application par sous-domaine (plus d'infos ici).
  • ynh_ignore_dyndns_server permet d'enregistrer les domaines avec un service de DNS dynamique (plus d'infos ici).

Configuration d'un relais SMTP

# paramètres personnalisés du relais SMTP
ynh_smtp_relay:
    host: smtp.domain.tld
    port: 25
    user: user1
    password: Pa$$w0rd

Yunohost possède son propre serveur SMTP natif mais il est aussi possible de configurer Yunohost pour qu'il utilise un relais SMTP à la place. Pour faire cela, créez la variable ynh_smtp_relay et mettez vos propres valeurs. Vous pouvez en apprendre plus sur les relais SMTP ici.

Gestion des utilisateurs

# Liste des utilisateurs Yunohost.
ynh_users:
   - name: user1
     pass: MYINSECUREPWD_PLZ_OVERRIDE_THIS
     firstname: Jane
     lastname: Doe
     mail_domain: domain.tld 
  • ynh_users est la liste des utilisateurs à créer. Chaque champ est obligatoire. Certaines applications Yunohost nécessitent qu'un utilisateur soit administrateur de l'application. Il aura ensuite le droit de gérer l'application depuis l'interface l'administration du serveur. Vous pouvez en apprendre plus sur la gestion des utilisateurs Yunohost ici.

Gestion des applications

# Liste des applications Yunohost.
ynh_apps:
  - label: WikiJS
    link: wikijs
    args:
      domain: wiki.domain.tld
      path: /
      admin: user1
      is_public: no
  - label: Discourse
    link: discourse
    args:
      domain: forum.domain.tld
      path: /
      admin: user1
      is_public: yes
    post_install:
      - src: "templates/site_settings.yml.j2"
        dest: "/var/www/discourse/config/site_settings.yml"
        type: "config"

      - src: "templates/configure_discourse.sh.j2"
        dest: "/tmp/configure_discourse.sh"
        type: "script"
        owner: root
        group: root
  • ynh_apps est la liste des applications à installer.
  • label permet de donner un nom personnalisé à l'application sur l'interface utilisateur.
  • link correspond au nom de l'application Yunohost qu'on veut installer.

Concernant les arguments

  • domain est obligatoire. Il faut choisir un des domaines de son instance Yunohost.
  • path est obligatoire. Il faut choisir une URL pour accéder à son application comme domain.tld/my_app. Utilisez juste / si l'application doit s'installer sur un sous-domaine.
  • is_public est un argument qu'on retrouve souvent. Paramétré sur yes, l'application sera accessible à tout le monde, même sans authentification sur le portail SSO Yunohost. Paramétré sur no, l'application ne sera accessible qu'après authentification.

Pour les autres arguments, il faut se référer au manifest.json disponible dans le dépôt de l'application Yunohost qu'on installe. Vous pouvez en apprendre plus sur cette partie ici.

Concernant la post-installation

Il est possible de compléter l'installation des applications par l'ajout de templates jinja de configuration ou de scripts que vous aurez écrit de votre côté. Pour activer cette fonctionnalité, définissez la variable post_install qui correspond à la liste des fichiers de post-installation de votre application. Cette tâche utilisant le module template, vous pouvez tout à fait utiliser vos propres variables et les appeler dans vos fichiers de template. Pour en savoir sur ce module, cliquez ici.

  • src est obligatoire. Il s'agit du répertoire où le fichier de template se situe sur la machine qui execute Ansible.
  • dest est obligatoire. Il s'agit du répertoire où le fichier de template va être stocké.
  • type est obligatoire :
    • Si vous précisez comme valeur script alors le fichier de template aura pour droits 740. Il sera exécuté après son transfert sur le serveur Yunohost (généralement dans /tmp/) puis il sera supprimé.
    • Si vous précisez comme valeur config alors le fichier de template aura pour droits 660. Il sera transféré sur le serveur Yunohost (généralement dans /var/www/AppName/) et vous pourrez l'importer avec un script shell à côté par exemple.

Pour owner et group, par défaut le fichier va prendre comme utilisateur propriétaire le nom de l'application et comme groupe propriétaire www-data (groupe NGINX). Vous pouvez les changer en précisant des valeurs différentes.

Concernant les mises à jour

# Autoupdate Yunohost and its apps
ynh_autoupdate:
  scheduled: True
  special_time: "daily" #Choices are [annually,daily,hourly,monthly,reboot,weekly,yearly]
  apps: True
  system: True
  dest_script: "/usr/bin/"

Une tâche cron peut être mise en place pour automatiser la vérification des mises à jour système et applications suivant la périodicité de votre choix.

  • ynh_autoupdate.scheduled : activez la tâche cron en mettant la valeur à True.
  • ynh_autoupdate.special_time: est obligatoire. Elle permet de préciser quand vous souhaitez que cette tâche soit exécutée. Valeurs possibles : (annually,daily,hourly,monthly,reboot,weekly,yearly). Pour en savoir plus sur les special times, cliquez ici.
  • ynh_autoupdate.apps : est obligatoire. Activez la mise à jour automatique des applications Yunohost en mettant la valeur à True.
  • ynh_autoupdate.system : est obligatoire. Activez la mise à jour automatique du système Yunohost en mettant la valeur à True.
  • ynh_autoupdate.dest_script : c'est le chemin du répertoire où le script de mise à jour sera installé sur le serveur. La valeur par défaut est /usr/local/bin. Le script s'appelle ynh_autoupdate.sh.

Si des mises à jour sont disponibles, elles sont faites automatiquement. En cas de problème suite à la mise à jour d'une application, vous pouvez lire les logs qui sont disponibles ici /var/log/yunohost/categories/operation. Vous avez aussi la possibilité de revenir à la version précédente car Yunohost fait toujours une sauvegarde automatique d'une application lorsqu'elle est mise à jour.

Pour en savoir plus sur le fonctionnement des mises à jour dans Yunohost vous pouvez vous rendre ici. Le changelog des versions de Yunohost est aussi disponible ici.

Dépendances

Aucune.

Exemple de Playbook

---
- name: Install Yunohost on Debian Server
  hosts: all
  become: True
  pre_tasks:
    - name: Update all packages and index
      ansible.builtin.apt:
        upgrade: dist
        update_cache: yes
    
  roles:
    - lydra.yunohost

License

ansible-yunohost Copyright 2021 Lydra

ansible-yunohost est maintenu par Lydra et publié sous la licence GPL3.