Thanks Dennis. I have modified my playbook as you suggested. But I am still 
getting the below error.

- 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: local facts
      debug: var=ansible_local
      notify:
        - reload facts

    - name: reload facts
      setup: filter=ansible_local

[automation@workstation plays]$ cat templates/custom.fact.j2 
[sample_exam]
server_role=mysql


[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 [local facts] 
*************************************************************************************************************************************************************************************************************************
ok: [ansible5] => {
    "ansible_local": {}
}

TASK [reload facts] 
************************************************************************************************************************************************************************************************************************
fatal: [ansible5]: FAILED! => {"changed": false, "cmd": 
"/etc/ansible/facts.d/custom.fact", "msg": "[Errno 8] Exec format error: 
b'/etc/ansible/facts.d/custom.fact'", "rc": 8}

PLAY RECAP 
*********************************************************************************************************************************************************************************************************************************
ansible5                   : ok=4    changed=1    unreachable=0    
failed=1    skipped=0    rescued=0    ignored=0   



On Saturday, April 4, 2020 at 8:49:51 PM UTC+11, Dennis McCarthy wrote:
>
> I've written a GitHub repo to demo using local_facts here:  
> https://github.com/dmccuk/ansible_local_facts
>
> The bit you need to do is this (which is also part of the demo):
>
> - name: local facts
>   debug: var=ansible_local
>   notify:
>   - reload facts
>
> - name: reload facts
>   setup: filter=ansible_local
>
>
>
> On Sat, 4 Apr 2020 at 09:35, Jean-Yves LENHOF <[email protected] 
> <javascript:>> wrote:
>
>> The first time you run it, files are not yet in place, so you probably 
>> need to regather fact, no ? You can do it with setup:
>>
>> Regards,
>>
>>
>> Le 04/04/2020 à 10:18, Rajesh a écrit :
>>
>> Could someone help why I am still getting the below error?
>>
>> Thanks,
>> Rajesh
>>
>> On Thursday, April 2, 2020 at 5:38:27 PM UTC+11, Rajesh wrote: 
>>>
>>> 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] <mailto:
>>>> [email protected]>. 
>>>> > 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] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/ansible-project/01148e2a-5846-447b-857a-4dcecdad6e63%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/ansible-project/01148e2a-5846-447b-857a-4dcecdad6e63%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> -- 
>> 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:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/ansible-project/11a1821f-0d43-9fb8-8910-4e089dc49317%40lenhof.eu.org
>>  
>> <https://groups.google.com/d/msgid/ansible-project/11a1821f-0d43-9fb8-8910-4e089dc49317%40lenhof.eu.org?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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/683d2d82-05df-47d6-84cc-7106d9046a1c%40googlegroups.com.

Reply via email to