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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/147edb97-1c14-4059-bf35-3dca35861c1a%40googlegroups.com.