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

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'applications
  • 10-machines.yml : contient la liste des services groupés par VM
  • 50-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