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.
