Organisation du repo
La nouvelle infrastructure doit nous permettre de facilement :
- Savoir quel service est installé où
- mettre à jours les machines
- mettre à jours toutes les instances d'un même service
Inventaire
L'inventaire est composé de l'arborescence suivante :
hosts.ini
group_vars/
|-vm1/
|-vars.yml
|-vault.yml
|-vm2/
|-vars.yml
|-vault.yml
host_vars/
|-service1
|-vars.yml
|-vault.yml
|-service2.yml
|-vars.yml
|-vault.yml
Fichiers d'inventaires
Nous avons 3 fichiers d'inventaires :
01-applications.yml: contient la liste de services groupés par type d'applications10-machines.yml: contient la liste des services groupés par VM50-servers.yml: contient la liste des VMs et groupes particulier
l'ajout d'un nouveau service consiste à ajouter CODESERVICE_CLIENT.yml dans les groupes suivants :
- la vm sur lequel il est installé dans le fichier
10-machines.yml - le type de service auquel il appartient dans le fichier
01-applications.yml
ex : ajout du yeswiki du creal qui est sur la machine capucine
# 10-machines.yml
[capucine]
…
yw_creal
# 01 applications.yml
[yeswiki]
…
yw_creal
Fichier group_vars/vmN.yml
Ce fichier contient les variables suivantes :
ansible_host: vmN.yml
ex: pour la vm capucine
ansible_host: capucine
Créer des secrets
chaque host ou groupe possède un dossier à son nom avec ses variable personnelles. Ces dossier comportent 2 fichiers :
- vars pour les variables non chiffrées
- vault poru les variables chiffrées.
Chaque variable devant être chiffrée est présente dans le fichier vars et fait référence à une autre variable (ex : vault_nom_var) présente dans le fichier vault chiffré.
Cette convention permet de conserver la liste de variable librement visible et compréhensible.
Le fichier vault peut être créé avec la commande : ansible_vault encrypt path/to/file et peut être modifié via la commande ansible-vault edit path/to/file
ex : creation de ma_var_secrete pour le groupe capucine
capucine/
|-vars
|-vault
# vars
ma_var_secrete: "{{vault_ma_var_secrete}}"
# vault
$ANSIBLE_VAULT;1.1;AES256
65646364343038336231313862336339353735363261336330653562663436306266333061316139
6461396565356234376165613135613164303535613065330a383964626231306433343164336332
64343332663863306136306331303265343931386230383135643539343562376339323631373865
3831616163643630340a313232353137326131373735613239383436363764353536636463373333
61383430383730666430343937313562313235613662653235616338396235353539313864333466
6365393765623463336634616163343365623636346363336139