2017-06-06 2 views
0

J'ai un livre de jeux où je suis en cours d'exécution de la tâche local_action (qui remplace la variable ansible_host avec "localhost") mais je veux accéder aux données qui était dans la variable ansible_host avant le fonctionnement de la tâche local_action, pendant ça.variable de registre ansible à un autre nom

C'est ce que je l'ai essayé jusqu'à présent, mais je reçois l'erreur "'register' is not a valid option in debug"

playbook.yml

- debug: 
    var: ansible_host 
    register: run_host 

- name: Install OBS 
    local_action: command ssh [email protected]{{ run_host }} "sudo /home/ansibler/obs/bin/install.sh" 
    become_user: bsmith 

La tâche local_action doit ssh localhost puis exécutez la commande ssh donnée. La raison pour laquelle je le fais de cette façon au lieu de simplement exécuter la tâche command par rapport au ansible_host est que je n'ai pas trouvé d'autre solution pour que ce script particulier fonctionne. Il serait suspendu indéfiniment si je l'ai exécuté avec la tâche command.

Existe-t-il une autre façon de réaliser ce que je veux faire?

+0

double possible de [reigster ne fonctionne pas avec la tâche git ansible] (https://stackoverflow.com/questions/44323190/reigster-is-not- working-with-ansible-git-task) –

+0

@KonstantinSuvorov Et une indentation correcte permettrait à OP d'enregistrer la valeur? – techraf

+0

@techraf oui, dans Ansible vous pouvez "enregistrer" tout ce que vous verriez dans le journal de sortie. –

Répondre

0

C'est ce que le module est set_fact pour:

- set_fact: 
    run_host: "{{ ansible_host }}"