29 janv. 2016

[ANSIBLE] Redémarrer un serveur avec ansible et attendre son retour

Il y a des actions qui nécessite un redémarrage du système (même sous Linux !)


Cependant, avec ANSIBLE, quand on lance un redémarrage du serveur, il faut indiquer qu'il faut attendre un certain temps avant de lancer l'action suivante. Sinon, c'est un échec assuré...

Car l'hôte distant doit être UP, et encore, même quand on le ping, le serveur n'a peut être pas lancer tout ses services...

On peut donc ajouter un délai d'attente avec le module wait_for. Voici les lignes de code qui pourront vous aider si vous êtes dans cette situation.


### Redémarrage
- name: restart machine
  shell: sleep 2 && shutdown -r now "Ansible updates triggered"
  async: 1
  poll: 0
  sudo: true
  ignore_errors: true
### Attente que le serveur soit revenu!
- name: waiting for server to come back
  local_action: wait_for host={{ inventory_hostname }} state=started delay=30 timeout=300
  sudo: false
 SOURCE:  https://support.ansible.com/hc/en-us/articles/201958037-Reboot-a-server-and-wait-for-it-to-come-back

1 commentaire:

  1. TASK: [conf | Modification /etc/selinux/config] ***************************
    REMOTE_MODULE lineinfile dest=/etc/selinux/config regexp=^SELINUX= line=SELINUX=disabled
    REMOTE_MODULE lineinfile dest=/etc/selinux/config regexp=^SELINUX= line=SELINUX=disabled
    REMOTE_MODULE lineinfile dest=/etc/selinux/config regexp=^SELINUX= line=SELINUX=disabled
    REMOTE_MODULE lineinfile dest=/etc/selinux/config regexp=^SELINUX= line=SELINUX=disabled
    REMOTE_MODULE lineinfile dest=/etc/selinux/config regexp=^SELINUX= line=SELINUX=disabled
    changed: [bo-machine] => {"backup": "", "changed": true, "msg": "line replaced"}
    changed: [machine2] => {"backup": "", "changed": true, "msg": "line replaced"}
    changed: [machine1] => {"backup": "", "changed": true, "msg": "line replaced"}
    changed: [machine-index2] => {"backup": "", "changed": true, "msg": "line replaced"}
    changed: [machine-index1] => {"backup": "", "changed": true, "msg": "line replaced"}

    TASK: [conf | restart machine] ********************************************
    finished on machine-index1
    finished on bo-machine
    finished on machine-index2
    finished on machine2
    finished on machine1

    TASK: [conf | waiting for server to come back] ****************************
    <127.0.0.1> REMOTE_MODULE wait_for host=machine-index1 state=started delay=30 timeout=300
    <127.0.0.1> REMOTE_MODULE wait_for host=machine1 state=started delay=30 timeout=300
    <127.0.0.1> REMOTE_MODULE wait_for host=machine-index2 state=started delay=30 timeout=300
    <127.0.0.1> REMOTE_MODULE wait_for host=bo-machine state=started delay=30 timeout=300
    <127.0.0.1> REMOTE_MODULE wait_for host=machine2 state=started delay=30 timeout=300

    RépondreSupprimer