Thanks for that. I have modified the playbook as you suggested. The
playbook creates the custom file, but still giving the below error.
[automation@workstation plays]$ cat facts.yml
- 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
mode: 0755
- name: Output our newly created static fact
debug:
msg: "{{ ansible_local.custom.sample_exam }}"
[automation@workstation plays]$
[automation@workstation plays]$ ansible-playbook facts.yml
PLAY [Create a custom facts file]
**********************************************************************************************************************************************************************************************************
TASK [Gathering Facts]
*********************************************************************************************************************************************************************************************************************
ok: [ansible5]
TASK [Create a custom facts directory]
*****************************************************************************************************************************************************************************************************
ok: [ansible5]
TASK [Create a custom facts]
***************************************************************************************************************************************************************************************************************
changed: [ansible5]
TASK [Output our newly created static fact]
************************************************************************************************************************************************************************************************
fatal: [ansible5]: FAILED! => {"msg": "The task includes an option with an
undefined variable. The error was: 'dict object' has no attribute
'custom'\n\nThe error appears to be in '/home/automation/plays/facts.yml':
line 18, column 7, but may\nbe elsewhere in the file depending on the exact
syntax problem.\n\nThe offending line appears to be:\n\n\n - name:
Output our newly created static fact\n ^ here\n"}
PLAY RECAP
*********************************************************************************************************************************************************************************************************************************
ansible5 : ok=3 changed=1 unreachable=0
failed=1 skipped=0 rescued=0 ignored=0
[automation@workstation plays]$
On Thursday, April 2, 2020 at 4:46:20 PM UTC+11, Stefan Hornburg (Racke)
wrote:
>
> On 4/2/20 4:16 AM, Rajesh wrote:
> > Hi All,
> >
> > I created a custom facts playbook. But I am getting an error when I run.
> I could not figure out why?
>
> Hello Rajesh,
>
> if /etc/ansible/facts.d/custom.fact is supposed to be a script it needs
> executable permissions:
>
> - name: Create a custom facts
> template:
> src: templates/custom.fact.j2
> dest: /etc/ansible/facts.d/custom.fact
> mode: 0755
>
> Regards
> Racke
>
> >
> > *_Playbook_*
> >
> > - 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 }}"
> >
> > _*Template file*_
> >
> > [automation@workstation plays]$ cat templates/server_list.j2
> > {% for host in groups['all'] %}
> > {{ hostvars[host]['ansible_facts']['fqdn'] }}
> > {% endfor %}
> >
> > [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]$
> >
> > --
> > 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] <javascript:> <mailto:
> [email protected] <javascript:>>.
> > To view this discussion on the web visit
> >
> https://groups.google.com/d/msgid/ansible-project/5b9d27a2-cc4e-40b1-9429-284adf50524d%40googlegroups.com
>
> > <
> https://groups.google.com/d/msgid/ansible-project/5b9d27a2-cc4e-40b1-9429-284adf50524d%40googlegroups.com?utm_medium=email&utm_source=footer>.
>
>
>
>
> --
> Ecommerce and Linux consulting + Perl and web application programming.
> Debian and Sympa administration. Provisioning with Ansible.
>
>
--
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/ef729fab-ae70-4b1a-8f40-28855f2cdecf%40googlegroups.com.