2017-04-25 1 views
0

J'ai un playbook très simple que je lance contre des centaines d'hôtes par adresse IP. Ces hôtes sont des appareils mobiles et changent souvent d'adresse IP. Lorsque cela se produit, il peut bloquer l'ensemble du playbook car il ne termine jamais la tâche. J'ai ajouté un local_action pour attendre 30 secondes puis continuer. Le problème est que je ne peux pas comprendre quelle est la variable hôte. L'adresse IP transmise à partir du fichier hôte n'apparaît pas dans l'inventaire car il s'agit d'une connexion de cellule. Quelle variable est-ce que j'utilise pour l'attendre l'adresse IP à laquelle j'ai lancé le playbook?Ansible Host Variable

--- 
- hosts: all 
    tasks: 

    - name: Search Messages 
    shell: /bin/grep 'eth1:' /var/log/messages 
    register: sysout 

    - name: Wait For 30 Seconds 
     local_action: 
     module: wait_for 
      host= "????" 
      port=22 
      delay=20 
      timeout=30 
     ignore_errors: true 
     register: Back 

Répondre

1

Vous pouvez vous référer à l'hôte actuel à l'aide inventory_hostname variable:

- name: Wait For 30 Seconds 
    local_action: 
    module: wait_for 
    host: "{{ inventory_hostname }}" 
    port: 22 
    delay: 20 
    timeout: 30 
ignore_errors: true 
register: Back 
+0

Oui, c'est la variable cherchait. Je vous remercie. – teamg