{{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