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.

Reply via email to