Thanks for your help. There was an issue in one of the hosts in the
inventory. Once I removed that host from the inventory it worked fine.
I created a custom facts in one of the hosts as below. Not sure what the
issue is but it is not working.
- name: Create a custom facts file
hosts: database
become: true
become_user: root
gather_facts: true
tasks:
- name: Create a custom facts directory
file:
path: /etc/ansible/facts.d
state: directory
- name: Create a custom facts
template:
src: templates/custom.fact.j2
dest: /etc/ansible/facts.d/custom.fact
- name: Print ansible_local
debug: var=ansible_local
- name: Print the custom facts value
debug:
msg: "{{ ansible_local.custom.sample_exam }}"
[automation@workstation plays]$ cat templates/custom.fact.j2
[sample_exam]
server_role=mysql
[automation@workstation plays]$
[automation@workstation plays]$ ansible-playbook facts.yml
PLAY [Create a custom facts file]
**********************************************************************************************************************************************************************************************************
TASK [Gathering Facts]
*********************************************************************************************************************************************************************************************************************
fatal: [ansible5]: FAILED! => {"ansible_facts": {}, "changed": false,
"failed_modules": {"setup": {"ansible_facts":
{"discovered_interpreter_python": "/usr/libexec/platform-python"}, "cmd":
"/etc/ansible/facts.d/custom.fact", "failed": true, "invocation":
{"module_args": {"fact_path": "/etc/ansible/facts.d", "filter": "*",
"gather_subset": ["all"], "gather_timeout": 10}}, "msg": "[Errno 8] Exec
format error: b'/etc/ansible/facts.d/custom.fact'", "rc": 8}}, "msg": "The
following modules failed to execute: setup\n"}
PLAY RECAP
*********************************************************************************************************************************************************************************************************************************
ansible5 : ok=0 changed=0 unreachable=0
failed=1 skipped=0 rescued=0 ignored=0
[automation@workstation plays]$
Thanks,
Rajesh
On Tuesday, March 31, 2020 at 5:22:07 PM UTC+11, Vladimir Botka wrote:
>
> On Mon, 30 Mar 2020 19:28:13 -0700 (PDT)
> Rajesh <[email protected] <javascript:>> wrote:
>
> > - hosts: all
> > [...]
> > template:
> > src: templates/server_list.j2
> > dest: /etc/server_list.txt
> > owner: automation
> > mode: '0600'
> > setype: net_conf_t
> > when: ansible_fqdn in groups['proxy']
> >
> > [automation@workstation plays]$ cat templates/server_list.j2
> > {% for host in groups['all'] %}
> > {{ hostvars[host]['ansible_fqdn'] }}
> > {% endfor %}
> > [...]
> > fatal: [ansible2.example.com]: FAILED! => {"changed": false, "msg":
> > "AnsibleUndefinedVariable: 'ansible.vars.hostvars.HostVarsVars object'
> has
> > no attribute 'ansible_fqdn'"}
>
> Your playbook works for me. The problem is missing variable "ansible_fqdn"
> at
> some host. You might want to find the host and see what's the problem. Try
>
> - hosts: all
> tasks:
> - debug:
> var: ansible_fqdn
>
> Why do you use "ansible_fqdn" in the "when" condition instead of
> "inventory_hostname"? This implicates that you're mixing "ansible_fqdn"
> and
> "inventory_hostname" in the inventory.
>
> HTH,
>
> -vlado
>
--
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/7ff78196-e2ff-46c1-bc1d-5d70c99f4d0e%40googlegroups.com.