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]>
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].
> 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].
> 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/CAA%3Df3e%2BBNxnwLuR-UM%3DapTrMwPsks50v2mrv%2BfvfaAByz_aH_Q%40mail.gmail.com.

Reply via email to