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 unhostavant 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.