No Description

playbook-sample.yml 2.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. - name: Exemple de playbook Ansible pour le déploiement de module EOLE
  2. hosts: all
  3. tasks:
  4. - name: Mise à jour des valeurs de configuration Creole
  5. # On utilise le module Ansible "eole_config" implémenté
  6. # par ce projet
  7. eole_config:
  8. name: "{{ item.name }}"
  9. value: "{{ item.value | to_json }}"
  10. # On définit ici l'ensemble des valeurs de configuration nécessaires
  11. # à l'instanciation d'un module eolebase.
  12. with_items:
  13. - name: ip_ssh_eth0
  14. value: [ 0.0.0.0 ]
  15. - name: netmask_ssh_eth0
  16. value: [ 0.0.0.0 ]
  17. - name: ip_admin_eth0
  18. value: [ 0.0.0.0 ]
  19. - name: netmask_admin_eth0
  20. value: [ 0.0.0.0 ]
  21. - name: nom_machine
  22. value: ansible-eole
  23. - name: nom_domaine_local
  24. value: ansible-eole
  25. # Dans les 3 entrées suivantes, on utilise les données récoltées
  26. # dans les "facts" Ansible pour définir l'adresse IP de la carte
  27. # eth0, l'adresse IP de la passerelle et les serveurs DNS.
  28. - name: adresse_ip_eth0
  29. value: '{{ ansible_default_ipv4.address }}'
  30. - name: adresse_ip_gw
  31. value: '{{ ansible_default_ipv4.gateway }}'
  32. - name: adresse_ip_dns
  33. value: '{{ ansible_dns.nameservers }}'
  34. - name: nom_academie
  35. value: ac-ansible
  36. - name: exim_relay_smtp
  37. value: 127.0.0.1
  38. - name: numero_etab
  39. value: '000Test'
  40. - name: libelle_etab
  41. value: Ansible EOLE
  42. # Le paquet python-pexpect est nécessaire
  43. # à l'utilisation du module Ansible "expect"
  44. - name: Installation de pexpect
  45. package:
  46. name: python-pexpect
  47. state: present
  48. # On récupère l'état du module (instancié ou non)
  49. - name: On vérifie l'état du module
  50. eole_config:
  51. name: module_instancie
  52. register: module_instancie
  53. # On instancie le module si celui ci ne l'est pas déjà
  54. - name: Instancier le module EOLE
  55. when: module_instancie.value != 'oui'
  56. expect:
  57. command: /usr/bin/instance
  58. # Attention, les mots de passe sont en clairs dans le playbook !
  59. # Il serait préférable d'utiliser le mécanisme ansible_vault ici.
  60. responses:
  61. "Nouveau mot de passe:":
  62. - "NotSoSecret;21"
  63. - "NotSoSecret;21"
  64. "Confirmation du mot de passe:":
  65. - "NotSoSecret;21"
  66. - "NotSoSecret;21"
  67. '\[non\]':
  68. - non
  69. '\[oui\]':
  70. - non
  71. timeout: 600
  72. # On reconfigure le module
  73. - name: Reconfigurer le module EOLE
  74. command: /usr/bin/reconfigure