Hi,

Your fact is simple INI file, not a script which give json output.

Try removing the execution bit on your fact (644 for example)

Info provided here with some 2 mn googling :

https://groups.google.com/forum/#!topic/ansible-project/2JRR8a-K9_8

Regards,


Le 05/04/2020 à 08:22, Rajesh a écrit :
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>

            >
            
<https://groups.google.com/d/msgid/ansible-project/5b9d27a2-cc4e-40b1-9429-284adf50524d%40googlegroups.com?utm_medium=email&utm_source=footer
            
<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] <mailto:[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/cbe78936-1a55-4e2a-4047-ec8afd377a6c%40lenhof.eu.org.

Reply via email to