Ceci est une ancienne révision du document !
Ansible
Étant très motivée pour l'utiliser1), mieux vaut que je note la mise en place.
Syntaxe
- Commentaires avec
#: retour à la ligne avant le commentaire
Fichiers de base
Créer (dans un dossier lambda) :
- hosts : liste des serveurs qu'on contacte, regroupés par grappe
- ansible.cfg : paramètres pour ansible sur cet usage
- hosts
[hyperviseur_local] hyperviseur Proxy VM1 [hyperviseur_local:vars] ansible_python_interpreter=/usr/bin/python3
- Je reprends les noms renseignés dans mon ~/.ssh/config : ça permet de prendre l'utilisateur, le port, la clé etc en compte.
- Les “vars” précisent des variables affectant tout le groupe : ici, déclarer le chemin de python afin d'éviter un warning sans grand intérêt.
- ansible.cfg
[defaults] inventory = hosts retry_files_enabled = False timeout = 10 ask_vault_pass = true
Stockage du mot de passe sudo
Créer un fichier chiffré où stocker des infos sensibles :
ansible-vault create password.yml
Il faut définir un mot de passe pour ouvrir le fichier en question.
Dans le fichier en question, pour stocker le mot de passe sudo :
ansible_become_pass: "mot_de_passe_sudo"
Pour éditer :
ansible-vault edit password.yml
Dans les playbooks, chaque fois qu'on a besoin de sudo, on aura ces lignes au début :
become: true
vars_files:
- password.yml
On ajoute aussi ask_vault_pass = true dans la section [defaults] de ansible.cfg.
J'ai pas trouvé comment simplement faire qu'il demande le mot de passe sudo quand il en a besoin. Enfin, si, ajouter “-K” (ou <nocode>–ask-become-pass</nocode> à l'exécution du playbook, par exemple :
ansible-playbook sudols.yml -K
Mais c'est pénible.
