Here is my playbook:
cat test.yml
- name: Play 2
hosts: targetserver
tasks:
- copy: src=./centosscript.sh dest=~ mode=775
- shell: ~/centosscript.sh
Here is my shell script:
cat centosscript.sh
#/bin/ksh
grabip=
ip r | grep kernel``
I also tried
grabip=
ifconfig | grep inet``
cat myhosts
[targetserver]
10.9.9.26
I get the following error when i run the playbook:
$ ansible-playbook -i myhosts test.yml
TASK [copy] *************************************************************************************************************************************************
changed: [10.9.9.26]
TASK [shell] ************************************************************************************************************************************************
fatal: [10.9.9.26]: FAILED! => {"changed": true, "cmd": "~/centosscript.sh", "delta": "0:00:00.122291", "end": "2020-03-17 12:18:49.485014", "msg": "non-zero return code", "rc": 1, "start": "2020-03-17 12:18:49.362723", "stderr": "/home/user1/centosscript.sh: line 2: ip: command not found", "stderr_lines": ["/home/user1/centosscript.sh: line 2: ip: command not found"], "stdout": "", "stdout_lines": []}
PLAY RECAP **************************************************************************************************************************************************
10.9.9.26 : ok=1 changed=1 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
When i run ip r or ifconfig commands they work fine on the target server.
I need to use ksh shell. However, i get the same error even if i try #/bin/bash in my shell script. Below is the output of the same commands working fine with the ksh shell on the target server.
bash-4.2$ ksh $ ip r | grep kernel 10.9.9.0/24 dev eth0 proto kernel scope link src 10.9.9.26 metric 100 $ ifconfig | grep inet inet 10.9.9.26 netmask 255.255.255.0 broadcast 10.9.9.255
Can you please help overcome this issue ?