Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Inventaire

Host

Les services

L'inventaire contient l'intégralité de nos services. Chaque service est ainsi considéré comme étant un Host ansible. À ce titre, il contient un certain nombre de variables associées dont à minima : 

Les Roles pourront se réferrer à la variable supplémentaire inventory_hostname qui correspond au nom du host que nous considérons comme l'id du role.

Les machines virtuelles

L'inventaire contient aussi des host correspondant à des machines virtuelles. Ceci nous permet d'automatiser leur création et la modification de leur ressources via ansible. Ceci nous permet aussi d'automatiser leur mise à jour.

Groups

Chaque host doit appartenir à 2 groupes. Le premier groupe correspond au type d'application (ex: nextcloud, yeswiki…). Le deuxième correspond à la machine sur lequel il est installé (ex: capucine, onagre…). Le host va ainsi :

  • pouvoir être appelé lors d'opérations sur tous les groupes comme la mise à jour de tous les nextcloud
  • hériter des variables de chacun des groupes.

Groupes de machine :

Ces groupes possèdent les informations sur la machine d'installation du service. Les variables seront entre autre :

ansible_host: nom de la machine pour y accéder en ssh
trusted_proxy: adresse ip du proxy devant la machine

Groupes de service :

Ces groupes peuvent posséder des variables relatives aux application et permettent d'appeler un même role pour l'ensemble des instances d'un service. Exemple de variables :

application_version: la version à utiliser du logiciel

Organisation de l'inventaire

Ansible peut charger plusieurs fichiers d'inventaires. Dans notre cas, nous chargeons tous les fichier ini (sans extension) ou yaml (.yml) présents dans le dossier hosts. Nous avons organisés les fichiers de la façon suivante :

  • 00-ungrouped : fichier ini. Il est destiné à contenir temporairement un host avant que celui-ci ne soit affecté à ses groupes
  • 01-applications : fichier ini. Liste les différents services par groupe d'application.
  • 10-machines : fichier ini. Liste les différents services par machine
  • 50-servers.yml: fichier yaml. Liste les différentes machines virtuelles et les serveurs physiques les possédant.