The "stat" failed because you have a "." in front of "/usr/src/power_consumption.sh".

On 8/21/24 8:57 AM, Yogita Patil wrote:
Ok thanks Todd.

Also now I am getting a different error, after I cleaned up the yml to keep only 1 task -

 FAILED! => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": true,
    "cmd": [
        "stat",
        "./usr/src/power_consumption.sh"
    ],
    "delta": "0:00:00.002128",
    "end": "2024-08-21 16:53:50.376199",
    "invocation": {
        "module_args": {
            "_raw_params": "stat ./usr/src/power_consumption.sh",
            "_uses_shell": false,
            "argv": null,
            "chdir": null,
            "creates": null,
            "executable": null,
            "removes": null,
            "stdin": null,
            "stdin_add_newline": true,
            "strip_empty_ends": true
        }
    },
    "msg": "non-zero return code",
    "rc": 1,
    "start": "2024-08-21 16:53:50.374071",
    "stderr": "stat: cannot statx './usr/src/power_consumption.sh': No such file or directory",
    "stderr_lines": [
        "stat: cannot statx './usr/src/power_consumption.sh': No such file or directory"
    ],
    "stdout": "",
    "stdout_lines": []
}


Content of my yml are -

- name: Shell script test
  hosts: all
  gather_facts: false
  tasks:


     - name: Run a script in another way
       ansible.builtin.command: stat ./usr/src/power_consumption.sh
       ignore_errors: true

File does exist in the folder /usr/src on the controller node and the ansible host on which I am trying to execute the script both -

image.png


Contents of yml are -


On Wed, Aug 21, 2024 at 4:46 PM Todd Lewis <uto...@gmail.com> wrote:

    Yogita,

    Do us a favor please and change this:

        ansible.builtin.command: ./power_consumption.sh

    to this:

        ansible.builtin.command: stat ./power_consumption.sh

    and let us see the results. Thanks.
    —
    Todd

    On 8/21/24 8:12 AM, Yogita Patil wrote:
    Yes yes I understand what you mean, and it does work if I add 
    #!/bin/bash’  at the beginning of my foo.sh

    contents of foo.sh -
    #!/bin/bash
    echo "Hello world"

    However my power consumption script fails. Any idea what I
    am doing wrong there?

    Many thanks for your help!

    -Yogita.

    On Wed, Aug 21, 2024 at 4:07 PM Stephen Maher
    <mahes...@gmail.com> wrote:

        Hi,

        Your bash script must in include ‘#!/bin/bash’ to allow for
        its execution using bash hence the suggestion to add the
        executable verb to prove this was the case.

        Regards



        On 21 Aug 2024, at 11:25, Yogita Patil
        <yoginitin2...@gmail.com> wrote:

        The bash was just a trial, the is the script that I really
        care about running which runs perfectly from the command line -
        myScript.yml

        - name: Shell script test
          hosts: all
          tasks:

             - name: Run a shell command
               ansible.builtin.shell: power_consumption.sh
               register: foo_result
               args:
                 chdir: /usr/src
               ignore_errors: true

             - name: Run a script
               ansible.builtin.script:
                 cmd: /usr/src/power_consumption.sh
               ignore_errors: true

             - name: Run a script in another way
               ansible.builtin.script: /usr/src/power_consumption.sh
               ignore_errors: true

             - name: Run a script via command line
               ansible.builtin.command: ./power_consumption.sh
               args:
                 chdir: /usr/src
               ignore_errors: true


        #     - name: Run a script second way
        #       ansible.builtin.script:
        #       cmd: /usr/src/power_consumption.sh

             - name: Run a shell command using output of the
        previous task
               ansible.builtin.shell: /usr/src/bar.sh
               when: foo_result.rc == 5


        The contents of the power_consumption.sh script are -

        hostfqdn=$(hostname --fqdn)
        time=1
        declare T0=($(cat
        /sys/class/powercap/intel-rapl/*/energy_uj)); sleep $time;
        declare T1=($(cat /sys/class/powercap/intel-rapl/*/energy_uj))
        for i in "${!T0[@]}"; do echo - | awk "{printf \"%.1f W\",
        $((${T1[i]}-${T0[i]})) / $time / 1e6 }" >> $hostfqdn.txt ; done


        I have no idea what I am doing wrong, I have tried to put
        the script in /usr/bin as well but same result for all tasks -

        TASK [Run a script via command line] *
        The full traceback is:
          File
        
"/tmp/ansible_ansible.legacy.command_payload_p_z2bc7h/ansible_ansible.legacy.command_payload.zip/ansible/module_utils/basic.py",
        line 2050, in run_command
            cmd = subprocess.Popen(args, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          File "/usr/lib/python3.11/subprocess.py", line 1024, in
        __init__
            self._execute_child(args, executable, preexec_fn, close_fds,
          File "/usr/lib/python3.11/subprocess.py", line 1901, in
        _execute_child
            raise child_exception_type(errno_num, err_msg, err_filename)
        fatal: [100.91.187.42]: FAILED! => {
            "changed": false,
            "cmd": "./power_consumption.sh",
            "invocation": {
                "module_args": {
                    "_raw_params": "./power_consumption.sh",
                    "_uses_shell": false,
                    "argv": null,
                    "chdir": "/usr/src",
                    "creates": null,
                    "executable": null,
                    "removes": null,
                    "stdin": null,
                    "stdin_add_newline": true,
                    "strip_empty_ends": true
                }
            },
            "msg": "[Errno 2] No such file or directory:
        b'./power_consumption.sh'",
            "rc": 2,
            "stderr": "",
            "stderr_lines": [],
            "stdout": "",
            "stdout_lines": []
        }

        TASK [Run a script in another way] and TASK [Run a script]
        The full traceback is:
        NoneType: None
        fatal: [100.91.187.42]: FAILED! => {
            "changed": true,
            "msg": "non-zero return code",
            "rc": 2,
            "stderr": "Shared connection to 100.91.187.42 closed.\r\n",
            "stderr_lines": [
                "Shared connection to 100.91.187.42 closed."
            ],
            "stdout":
        
"/root/.ansible/tmp/ansible-tmp-1724235551.658032-3341659-128056030829200/power_consumption.sh:
        3: Syntax error: \"(\" unexpected\r\n",
            "stdout_lines": [
        
"/root/.ansible/tmp/ansible-tmp-1724235551.658032-3341659-128056030829200/power_consumption.sh:
        3: Syntax error: \"(\" unexpected"
            ]
        }

        TASK [Run a shell command
        fatal: [100.91.187.42]: FAILED! => {
            "changed": true,
            "cmd": "power_consumption.sh",
            "delta": "0:00:00.001867",
            "end": "2024-08-21 10:19:11.554061",
            "invocation": {
                "module_args": {
                    "_raw_params": "power_consumption.sh",
                    "_uses_shell": true,
                    "argv": null,
                    "chdir": "/usr/src",
                    "creates": null,
                    "executable": null,
                    "removes": null,
                    "stdin": null,
                    "stdin_add_newline": true,
                    "strip_empty_ends": true
                }
            },
            "msg": "non-zero return code",
            "rc": 127,
            "start": "2024-08-21 10:19:11.552194",
            "stderr": "/bin/sh: 1: power_consumption.sh: not found",
            "stderr_lines": [
                "/bin/sh: 1: power_consumption.sh: not found"
            ],
            "stdout": "",
            "stdout_lines": []
        }






        On Wed, Aug 21, 2024 at 12:36 PM Stephen Maher
        <mahes...@gmail.com> wrote:

            Hi,

            This if often because your ’shell’ script has the
            incorrect shebang at the top. If its a bash script then
            add executable: /bin/bash and try again, or check your
            script.

            Cheers.



            On 21 Aug 2024, at 09:32, Yogita Patil
            <yoginitin2...@gmail.com> wrote:

            Thanks for the responses guys, but these are the errors
            I see -

            The full traceback is:
              File
            
"/tmp/ansible_ansible.legacy.command_payload_uk3ys11b/ansible_ansible.legacy.command_payload.zip/ansible/module_utils/basic.py",
            line 2050, in run_command
                cmd = subprocess.Popen(args, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
              File "/usr/lib/python3.11/subprocess.py", line 1024,
            in __init__
            self._execute_child(args, executable, preexec_fn,
            close_fds,
              File "/usr/lib/python3.11/subprocess.py", line 1901,
            in _execute_child
                raise child_exception_type(errno_num, err_msg,
            err_filename)
            failed: [100.91.187.42] (item=./power_consumption.sh) => {
                "ansible_loop_var": "item",
                "changed": false,
                "cmd": "./power_consumption.sh",
                "invocation": {
                    "module_args": {
                        "_raw_params": "./power_consumption.sh",
                        "_uses_shell": false,
                        "argv": null,
                        "chdir": "/usr/src/",
                        "creates": null,
                        "executable": null,
                        "removes": null,
                        "stdin": null,
            "stdin_add_newline": true,
            "strip_empty_ends": true
                    }
                },
                "item": "./power_consumption.sh",
                "msg": "[Errno 8] Exec format error:
            b'./power_consumption.sh'",
                "rc": 8,
                "stderr": "",
                "stderr_lines": [],
                "stdout": "",
                "stdout_lines": []
            }


            I also create a simple foo.sh and tried to execute it
            like this, but here also I get errors -
            foo.sh contents -
            #!/bin/sh
            echo "Hello world"

            My TestShell script yml looks like this -

            - name: Shell script test
              hosts: all
              tasks:

                 - name: Run a shell command and register its
            output as a variable
             ansible.builtin.shell: /usr/src/foo.sh
                   register: foo_result
                   ignore_errors: true

                 - name: Run a shell command using output of the
            previous task
             ansible.builtin.shell: /usr/src/bar.sh
                   when: foo_result.rc == 5


            Output of the above yml gives this error -

            fatal: [132.56.197.46]: FAILED! => {
                "changed": true,
                "cmd": "/usr/src/foo.sh",
                "delta": "0:00:00.002043",
                "end": "2024-08-21 08:32:06.317505",
                "invocation": {
                    "module_args": {
                        "_raw_params": "/usr/src/foo.sh",
                        "_uses_shell": true,
                        "argv": null,
                        "chdir": null,
                        "creates": null,
                        "executable": null,
                        "removes": null,
                        "stdin": null,
            "stdin_add_newline": true,
            "strip_empty_ends": true
                    }
                },
                "msg": "non-zero return code",
                "rc": 127,
                "start": "2024-08-21 08:32:06.315462",
                "stderr": "/bin/sh: 1: /usr/src/foo.sh: not found",
                "stderr_lines": [
                    "/bin/sh: 1: /usr/src/foo.sh: not found"
                ],
                "stdout": "",
                "stdout_lines": []
            }


            On Mon, Aug 19, 2024 at 5:47 PM alex...@gmail.com
            <alexs...@gmail.com> wrote:


                Create a var for script i.e.:
                script_path="/some/path/script" and use that
                instead of hard coding path
                On Sunday, August 18, 2024 at 7:14:58 AM UTC-4
                Yogita Patil wrote:

                    Hi All,

                    I am simply unable to execute a shell script on
                    the remote host - this is my code (all other
                    tasks run correctly except the execute task)

                    - name: Power consumption test
                      hosts: all
                      tasks:

                         - name: Transfer the script
                     ansible.builtin.copy:
                             src: power_consumption.sh
                             dest: /usr/src/power_consumption.sh
                             mode: '0777'

                         - name: Execute the script
                    #       command: ./usr/src/power_consumption.sh
                           command: "{{ item }}"
                           args:
                             chdir: "/usr/src/"
                           with_items:
                            - "./power_consumption.sh"
                     ignore_errors: true

                         - name: Remove shell script from remote server
                           file:
                             path: /usr/src/power_consumption.sh
                             state: absent

                         - name: Copy shell script output from
                    remote server
                           fetch:
                             src: /usr/src/{{ ansible_fqdn }}.txt
                             dest: /usr/src
                             mode: '0777'
                     with_fileglob:
                              _ "*.txt"


                    I have also tried with the shell: , script: sh
                    ways of executing the script and none of them
                    work, can someone tell me what I am doing
                    wrong? TIA.


-- 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
                ansible-project+unsubscr...@googlegroups.com.
                To view this discussion on the web visit
                
https://groups.google.com/d/msgid/ansible-project/8da4e506-2504-4724-b4e9-c1d45c61800dn%40googlegroups.com
                
<https://groups.google.com/d/msgid/ansible-project/8da4e506-2504-4724-b4e9-c1d45c61800dn%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
            ansible-project+unsubscr...@googlegroups.com.
            To view this discussion on the web visit
            
https://groups.google.com/d/msgid/ansible-project/CAC15M2K3t7%2BtseL5gi%2BX_nE%3D3JtsBjfHU8rdxO48puT_m%2BgV8A%40mail.gmail.com
            
<https://groups.google.com/d/msgid/ansible-project/CAC15M2K3t7%2BtseL5gi%2BX_nE%3D3JtsBjfHU8rdxO48puT_m%2BgV8A%40mail.gmail.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
            ansible-project+unsubscr...@googlegroups.com.
            To view this discussion on the web visit
            
https://groups.google.com/d/msgid/ansible-project/5511D1E4-BE4E-4EF3-98E6-0AA3F39B5470%40gmail.com
            
<https://groups.google.com/d/msgid/ansible-project/5511D1E4-BE4E-4EF3-98E6-0AA3F39B5470%40gmail.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
        ansible-project+unsubscr...@googlegroups.com.
        To view this discussion on the web visit
        
https://groups.google.com/d/msgid/ansible-project/CAC15M2JRN_W0Vek4fPQ_2%2BZyZVb5Y3UWxR3uNF31bkRWVYm7rw%40mail.gmail.com
        
<https://groups.google.com/d/msgid/ansible-project/CAC15M2JRN_W0Vek4fPQ_2%2BZyZVb5Y3UWxR3uNF31bkRWVYm7rw%40mail.gmail.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
        ansible-project+unsubscr...@googlegroups.com.
        To view this discussion on the web visit
        
https://groups.google.com/d/msgid/ansible-project/EF7A07E8-354B-4E93-A9A5-B2193CD48288%40gmail.com
        
<https://groups.google.com/d/msgid/ansible-project/EF7A07E8-354B-4E93-A9A5-B2193CD48288%40gmail.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 ansible-project+unsubscr...@googlegroups.com.
    To view this discussion on the web visit
    
https://groups.google.com/d/msgid/ansible-project/CAC15M2KBqHY1LwtBJVGMV%3D2RwXQ1QDSsSJ-W6EmguD37n-KS3A%40mail.gmail.com
    
<https://groups.google.com/d/msgid/ansible-project/CAC15M2KBqHY1LwtBJVGMV%3D2RwXQ1QDSsSJ-W6EmguD37n-KS3A%40mail.gmail.com?utm_medium=email&utm_source=footer>.

-- Todd

-- 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 ansible-project+unsubscr...@googlegroups.com.
    To view this discussion on the web visit
    
https://groups.google.com/d/msgid/ansible-project/9c4ea274-1bd6-4620-b974-b345b8ff1e5c%40gmail.com
    
<https://groups.google.com/d/msgid/ansible-project/9c4ea274-1bd6-4620-b974-b345b8ff1e5c%40gmail.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 ansible-project+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CAC15M2KyrgMF2Pznn%3DVTVW9yaOSR6-TT90X%2BG-LcP7ZarkoSQA%40mail.gmail.com <https://groups.google.com/d/msgid/ansible-project/CAC15M2KyrgMF2Pznn%3DVTVW9yaOSR6-TT90X%2BG-LcP7ZarkoSQA%40mail.gmail.com?utm_medium=email&utm_source=footer>.

--
Todd

--
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 ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/f1ca5840-090a-4124-9d34-9d58670fce44%40gmail.com.

Reply via email to