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>.