Créé par Baptiste Donaux
Les commandes sont exécutées vers des groupes de hosts définies dans /etc/ansible/hosts.
Exemple:
[baptiste-donaux.fr]
me.baptiste-donaux.fr
www.baptiste-donaux.fr
ansible | La commande à lancer |
-m | Pour le module |
-a | Pour les arguments |
$ ansible localhost -m ping
localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}
$ ansible -m ping baptiste-donaux.fr
me.baptiste-donaux.fr | success >> {
"changed": false,
"ping": "pong"
}
www.baptiste-donaux.fr | success >> {
"changed": false,
"ping": "pong"
}
ansible -m apt -a "name=vim state=present" localhost
localhost | success >> {
"changed": false
}
Playbook vous permet de scripter vos scénarios.
- hosts: baptiste-donaux.fr
tasks:
- name: Add APT key for Docker repository
apt_key:
keyserver: "hkp://p80.pool.sks-keyservers.net:80"
id: 58118E89F3A912897C070ADBF76221572C52609D
- apt_repository:
repo: 'deb https://apt.dockerproject.org/repo debian-jessie main'
state: present
- apt: update_cache=yes
- apt: name=docker-engine state=present
- systemd: enabled=yes state=started name=docker
Si une de vos commandes échoue sur une de vos machines, un my_playbook.retry est généré et vous pouvez relancer la commande sans reprendre depuis le début.
Si vous stocker des informations sensibles dans vos playbooks, vous pouvez les encoder.
$ ls .
my_playbook.yml
$ cat my_playbook.yml
- hosts: localhost
tasks:
- shell: sshpass -p "foo" scp -r /bar baz@localhost:/qux
$ ansible-vault encrypt my_playbook.yml
New Vault password:
Confirm New Vault password:
Encryption successful
$ cat my_playbook.yml
$ANSIBLE_VAULT;1.1;AES256
34396264333338636331323838386331393664623065383463663661373436643764336536326662
6238626432373334356436613935306630376461633136650a316561316531323937633963643032
64643239616561653864346132356537656536313030656532373733316262663536396438383262
3463373265636232640a626364306666373665303633663630353132383764323530646438383737
31336163633631373162356339633739356461656130353533306137613436663333383137376366
62383533393262376362393565386133306432323266393034616331333932663266613739653538
36663666333938323961343231366266323430376234376363353662386366373061636434613763
35653139316465613562613834373434636238643661633434326661303438666233313732653338
3264
$ ansible-playbook my_playbook.yml --ask-vault-pass
Vault password:
…
Il s'agit d'un Hub regroupant tous les modules développés par la communauté.
Un peu comme Docker Hub.