{{tag>dev ansible todo}}
====== Atelier présentation Ansible ======
Les ressources pour l'atelier sont présentes sur le github
* https://github.com/alcelafranque/cdl2017
===== le contrôleur =====
python 2.6+ et 3.5 et +
utilisateur sudoer
les machines gérées
utilise le formalisme YAML, equivalent JSON/XML moins verbeux
===== HelloWorld =====
but: Créer un fichier hello-world dans le répertoire de l'utilisateur sur la machine gérée
Sur le controleur, creer une repertoire conteneur
mkdir test-ansible
cd test-ansible
1 creer ansible.cfg (customisaton de ansible
[defaults]
inventory = ./hosts
la liste de toutes les machines est dans le fichiers ./hosts (fichier inventaire) avec la façon dont ansible se connecter en ssh
serveurweb1 ansible_host=ip ansible_user=info ansible_become
Dasn le fichier inventaire on peut faire des groupes
le playbook = liste de taches a faire sur les machines gérées
une tache = une action
---
- hosts: serveurweb1
tasks:
- name: creation d'un fichier "hello-world.txt"
file:
path: /root/hello-world.txt
state: touch
recap nombre de taches ok taches ayant fait des changements sur la machine
ansible_become_pass
ansible_becom
notify est un attribut de la tache pour enchaîner, il ne prends en parametre qu'une tache de type handler
les handlers sont des taches particulière déclarées en fin de fichier
si le playbook plante, il peut être relancé concept d'idempotence
si deja fait, ca ne le refait pas
les rôles remplacent les task
les facts (avec module setup) pour récupérer les infos sur les machines gérées et utiliser les modèles
SALT, Puppet adaptés aux environnments avec plus de machines mais plus lourds a la configuration iniitiale.
ansible notions d'héritage
groupe et variables de groupe
si la machine a une spécificité, elle peut surcharger les variables du groupe
Dans le fichier inventaire, on peut déclarer des variable sur la meme ligne que la machine
Pour des structure de variables plus complexes,
all.yml fichier de variables globales
tower interface de gestion web pour lancer les playbook