Ceci est une ancienne révision du document !
Ansible
Syntaxe globale
- playbook.yml
- hosts: all tasks: - name: echo coucou shell: echo "coucou" - name: set ip become: yes shell: | echo "ip ok"
Inclure des variables
Dans une task:
- playbook.yml
- name: include vars include_vars: file: vars.yaml
Le fichier vars.yaml contient la définition des variables, sous la forme d'un dictionnaire:
- vars.yaml
var1: value1 var2: value2
Les variables sont ensuite accessibles par {{ var1 }}.
Tasks
Définir l'IP
- playbook.yml
- name: set ip become: yes shell: | EXIST=`ip route show 172.21.0.0 | wc -l` if [ $EXIST -eq 0 ] then ip addr add {{ ip }}/16 dev eth1 ip route change default via 172.21.255.254 fi
Définir le DNS
- playbook.yml
- name: set dns become: yes lineinfile: path: /etc/resolv.conf regexp: '^nameserver ' line: 'nameserver 10.210.18.138' firstmatch: yes
S'assurer que la dernière version de Nginx est installée
- playbook.yml
- name: ensure nginx is at the latest version become: yes apt: name=nginx state=latest
S'assurer que le service Nginx est lancé
- playbook.yml
- name: start nginx become: yes service: name: nginx state: started
Importer un fichier template
De l'hôte vers l'invité, en remplaçant des variables par des valeurs:
- playbook.yml
- name: adapt flag of website become: yes template: src: index.html dest: /var/www/html/index.html
Dans index.html, la variable est définie entre doubles accolades.