try deleting: /etc/ansible/facts.d and let ansible recreate it. If you still get the same issue (delete /etc/ansible/facts.d again) and try running ansible either as root or with sudo just to rule out permissions.
On Sun, 5 Apr 2020 at 07:22, Rajesh <[email protected]> wrote: > Tried that but still not working. Thanks for your help. > > On Saturday, April 4, 2020 at 7:35:12 PM UTC+11, Jean-Yves LENHOF 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/5000fa54-3f67-4d99-8f2c-6d1a33cb6b58%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/5000fa54-3f67-4d99-8f2c-6d1a33cb6b58%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/CAA%3Df3eLBc-yE5FSSMoOdMXWQVGwPUB_aT9u93Fb8p8_NyGuKBw%40mail.gmail.com.
