Ansible 101
Par pepin le jeudi, septembre 21 2017, 21:23 - Ansible - Lien permanent
Les prérequis pour utiliser Ansible :
sur le "maitre", le paquet ansible
apt install ansible
sur les clients, openssh-server et python
apt install openssh-server apt install python
Il faut ensuite générer une clef ssh sur le maitre et la copier dans le .ssh/authorized_keys de root sur les clients.
Ensuite, nous commençons à configurer la liste des hôtes à manager :
Editer le fichier /etc/ansible/hosts comme suit :
[openvas] 172.17.0.5 [puppet] 172.17.0.4 172.17.0.3 172.17.0.7 [not-mine] 172.17.0.6 172.17.0.2
Nous pouvons ensuite tester que la base est fonctionnel comme suit :
ansible all -m ping
Puis procéder à une installation, ou une suppression de package comme suit :
ansible puppet -m apt -a "name=sl state=present"
ansible puppet -m apt -a "name=sl state=removed"
Voila pour les bases.
Pour les modules, et leurs attributs, je vous renvoie à la documentation
Il reste ensuite beaucoup à voir, comme créer un playbook (qui est une succession de modules et d'arguments mis dans un fichier yml), exemple :
Nous créons un fichier playbook nommé sl-playbook.yml qui contient :
- hosts: puppet tasks: - name: ensure sl is at the latest version apt: name=sl state=present
Attention aux indentations !!! Ici dotclear n'a pas permi de conserver celle-ci et donc un copier-coller de ce playbook donnera des erreurs.
Et exécutons l'installation de sl sur les noeuds puppet avec la commande :
ansible-playbook sl-playbook.xml
Enfin, dernière subtilité avec les playbook, il peut être utile de jouer le playbook sur une liste d'hôtes autre que celle centralisée dans /etc/ansible/hosts, pour ce :
ansible-playbook sl.playbook.yml -i my-hosts-list
ou my-hosts-list est un fichier au même format que le fichier hosts d'ansible.