ansible-eole/playbook-sample.yml

80 lines
2.7 KiB
YAML

- name: Exemple de playbook Ansible pour le déploiement de module EOLE
hosts: all
tasks:
- name: Mise à jour des valeurs de configuration Creole
# On utilise le module Ansible "eole_config" implémenté
# par ce projet
eole_config:
name: "{{ item.name }}"
value: "{{ item.value | to_json }}"
# On définit ici l'ensemble des valeurs de configuration nécessaires
# à l'instanciation d'un module eolebase.
with_items:
- name: ip_ssh_eth0
value: [ 0.0.0.0 ]
- name: netmask_ssh_eth0
value: [ 0.0.0.0 ]
- name: ip_admin_eth0
value: [ 0.0.0.0 ]
- name: netmask_admin_eth0
value: [ 0.0.0.0 ]
- name: nom_machine
value: ansible-eole
- name: nom_domaine_local
value: ansible-eole
# Dans les 3 entrées suivantes, on utilise les données récoltées
# dans les "facts" Ansible pour définir l'adresse IP de la carte
# eth0, l'adresse IP de la passerelle et les serveurs DNS.
- name: adresse_ip_eth0
value: '{{ ansible_default_ipv4.address }}'
- name: adresse_ip_gw
value: '{{ ansible_default_ipv4.gateway }}'
- name: adresse_ip_dns
value: '{{ ansible_dns.nameservers }}'
- name: nom_academie
value: ac-ansible
- name: exim_relay_smtp
value: 127.0.0.1
- name: numero_etab
value: '000Test'
- name: libelle_etab
value: Ansible EOLE
# Le paquet python-pexpect est nécessaire
# à l'utilisation du module Ansible "expect"
- name: Installation de pexpect
package:
name: python-pexpect
state: present
# On récupère l'état du module (instancié ou non)
- name: On vérifie l'état du module
eole_config:
name: module_instancie
register: module_instancie
# On instancie le module si celui ci ne l'est pas déjà
- name: Instancier le module EOLE
when: module_instancie.value != 'oui'
expect:
command: /usr/bin/instance
# Attention, les mots de passe sont en clairs dans le playbook !
# Il serait préférable d'utiliser le mécanisme ansible_vault ici.
responses:
"Nouveau mot de passe:":
- "NotSoSecret;21"
- "NotSoSecret;21"
"Confirmation du mot de passe:":
- "NotSoSecret;21"
- "NotSoSecret;21"
'\[non\]':
- non
'\[oui\]':
- non
timeout: 600
# On reconfigure le module
- name: Reconfigurer le module EOLE
command: /usr/bin/reconfigure