Table des matières

, ,

Atelier présentation Ansible

Les ressources pour l'atelier sont présentes sur le github

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