Here is my requirement:

   - 
   
   I have a playbook where I add the dynamic host to group "desthosts" in 
   [Play 1]
   - 
   
   In [Play 2] desthosts group I append a set_fact variable "storerecords".
   - 
   
   In [Play 3] I try to read set_fact "storerecords" of Play 2 however, I get 
   undefined 'storerecords' variable error.
   
Below is my playbook.

---
- name: Play 1
  hosts: localhost
  tasks:
    - add_host:
      name: "{{ item }}"
      group: desthosts
      with_items:
        - "{{ SourceHost.split(',') }}" 

- name: Play 2
  hosts: desthosts
  tasks: 
    - set_fact:
        storerec: "{{storerec | default('') + 'Hello ' + inventory_hostname + 
'\n'}}"
      with_fileglob:
        - "{{ playbook_dir }}/tmpfiles/*"

- name: Play 3
  hosts: localhost
  tasks:
   - local_action: lineinfile line="{{ hostvars['dest_nodes']['storerec'] }}" 
path="{{ playbook_dir }}/files/tricky.txt" create=yes

Playbook run command:

ansible-playbook test.yml -e SourceHost="10.9.9.56,10.9.9.63,10.9.9.33" 

Error running the playbook is:
TASK [lineinfile] 
****************************************************************************************************************************************
 
fatal: [localhost]: FAILED! => {"msg": "The task includes an option with an 
undefined variable. The error was: \"hostvars['desthosts']\" is 
undefined\n\nThe error appears to be in '/app/test.yml': line 28, column 7, 
but may\nbe elsewhere in the file depending on the exact syntax 
problem.\n\nThe offending line appears to be:\n\n tasks:\n - local_action: 
lineinfile line=\"{{ hostvars['desthosts']['storerec'] }}\" path=\"{{ 
playbook_dir }}/files/tricky.txt\" create=yes\n ^ here\nWe could be wrong, 
but this one looks like it might be an issue with\nmissing quotes. Always 
quote template expression brackets when they\nstart a value. For 
instance:\n\n with_items:\n - {{ foo }}\n\nShould be written as:\n\n 
with_items:\n - \"{{ foo }}\"\n"}



Can you please suggest how I can get the value of storerecords from 
desthost to Play 3?

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/147edb97-1c14-4059-bf35-3dca35861c1a%40googlegroups.com.

Reply via email to