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.

Serveurs distants

Installer python3 dessus. Sinon ça ne marchera pas.

 Ce texte est placé sous licence CC0

1)
Non.
pratique/informatique/ansible.1746691842.txt.gz · Dernière modification : 08/05/2025 10:10 de Zatalyz