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] <mailto:[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.

Reply via email to