Le Wiki de Tchack

Guides et documentation sur le serveur tchack.xyz

Outils pour utilisateurs

Outils du site


adminsys:ansible

Page d'exploration sur l'outil Ansible

Tuto 1 - les bases

https://www.ansible.com/resources/videos/quick-start-video

  1. Pas d'agent sur les clients, se base sur SSH :)
  2. Ansible s'installe sur un “Control Node”, et s'adresse aux hotes pilotés
  3. Peut être utilisé pour gestion de configuration, ou des usages avancées.

Concepts

  1. Playbooks : Fichiers YAML, décrivent l'état final d'un réglage, comme une listes de choses à exécuter.
    1. Contiennent des Plays, qui contiennent des Taches (qui ont un 'name'), qui appellent des Modules.
  2. Variables intégrables dans le playbook, dans d'autres fichiers, dans les inventaires, en CLI, ou autre…
  3. Inventories : liste statiques de serveurs, peut contenir des ranges et des listes dynamiques.
  4. Modules : outils de contrôle élémentaires, 450 inclus, listés dans la doc. Appelé par une Tache sous la forme “module: param1: valeur param2: valeur…”
  5. Rôles : des Playbooks autonomes, avec les taches, variables, et tout ce qui est nécessaire à l'exécution.

Exécuter Ansible

En CLI, ou via ansible-playbook, ou via Tower.

Les playbooks sont lancés et indiquent s'ils ont changé le système (OK ou Changed) pour chaque tâche. On peut les valider en “dry-run” en utilisant le checkmode -C (pas compatible avec tous les modules, qui sont alors sautés).

Tower

service pro pour gérer les playbooks et les équipes SI. Gestion des accès et des infos/passwords.

Galaxy

Ressource communautaire de rôles et de modules, qu'on peut lancer quasi-directement.

Tuto 2 : la pratique

  • Génération d'une clé edcsa dédiée à ansible
  • Inventaire dans /etc/hosts du control-node (macbook)
  • Premières commandes en direct ansible -a
  • Premier playbook pour mettre à jour le système via yunohost (2 tâches/3 hôtes).
  • Architecture des rôles dans le dossier de travail
  • Playbook avec rôles pour mettre à jour le module zabbix-ynh. testé avec ansible-playbook -C

Tuto 3 - Role Yunohost

  • Utilisation d' un rôle déja existant pour l'installation d'un nouveau serveur yunohost.
  • mise à jour des dossiers, et remplissage d'un playbook-type avec les bonnes informations (domaine, pw).
  • Constitution d'un inventaire fourni (tchack + hereli…) et multiples playbooks.
  • ajout de la clé SSH sur le serveur et complétion du known_hosts du noeud de contrôle, avant appel du playbook. :!: changement de port et de user SSH une fois yunohost installé ⇒ faire les réglages dans les vars.
  • Re-exécution du playbook pour installer de nouveaux domaines ou nouvelles apps : ca marche !
  • Difficultés avec une app pas Niv7 (cachet) : installée à la main.
  • Penser à avoir la bonne clé SSH dans le ssh-agent du nœud de contrôle. Pour le rajouter (après un reboot ou autre), utiliser ssh-add ~/.ssh/CleSSH

:!: Erreur dans la task “apps” : l'installation de certaines applications plante, car les key/values passés à yunohost-api via une boucle “If” sont convertis. Les chaines “yes” deviennent un booléen True qui est ensuite rejeté par l'api. il faut réviser cette boucle, en attendant la chaîne “y” suffit et n'est pas convertie.

adminsys/ansible.txt · Dernière modification : 2020/02/13 00:07 de jaxom