web-dev-qa-db-fra.com

Augmenter le délai d'expiration de la commande SSH dans Ansible

J'utilise actuellement Ansible pour approvisionner le bare metal en utilisant une adresse locale de lien IPv6. Une fois les serveurs provisionnés, ansible exécutera une série de tests sur le serveur, sous la forme d’une commande Shell, afin de s’assurer que le provisionnement a réussi. Ces tests prennent environ 10 minutes à exécuter. 

Le problème auquel je suis confronté est que la connexion semble expirer avant la fin de la commande.

Voici l'erreur de Ansible:

fatal: [fe80::5054:ff:XXXX:XXXX%eth0]: UNREACHABLE! => {
  "changed": false, 
  "msg": "Failed to connect to the Host via ssh: Shared connection to fe80::5054:ff:XXXX:XXXX%eth0 closed.\r\n",
  "unreachable": true
}

En regardant cette erreur, on pourrait penser qu'il y a un problème avec la connexion SSH. La connexion SSH est satisfaisante car plusieurs autres tâches s’exécutent avec succès sur le même hôte avant cette tâche.

Comment puis-je augmenter le délai d'attente afin qu'Ansible attende la fin de la commande? Ce délai peut-il être augmenté dans la configuration Ansible ou dois-je modifier la commande elle-même pour augmenter le délai? 

6
grizzthedj

Vous allez vouloir exécuter la tâche de manière asynchrone. Les étapes de haut niveau seraient:

  1. envoyer une demande de déploiement par exemple
  2. obtenir une sorte d'instance ou un identifiant de requête pour ladite requête
  3. interroger le résultat de la demande
  4. continuer playbook

voici un exemple de ce comportement de la documentation officielle

- name: 'YUM - fire and forget task'
  yum:
    name: docker-io
    state: installed
  async: 1000
  poll: 0
  register: yum_sleeper

- name: 'YUM - check on fire and forget task'
  async_status:
    jid: "{{ yum_sleeper.ansible_job_id }}"
  register: job_result
  until: job_result.finished
  retries: 30
6
Camilo Santana

J'avais presque le même problème et -vvv ne m'a pas donné beaucoup d'informations. Mais vérifier le journal système de l'invité m'a montré que je manquais de mémoire lors de l'exécution du script ansible. Il serait bon que vous puissiez voir l'entrée syslog pour voir si vous avez des problèmes avec l'invité lors de l'exécution du script ansible.

0
IndikaM