无法 运行 自定义模块
Not able to run custom module
我创建了一个自定义模块 pingtest,它使用 ping 命令对所有服务器执行 ping 操作。我创建了一个 shell 脚本,稍后将其放置在 playbook 目录的库目录中。当我写一个剧本来使用那个模块时,它给我一个错误说
" 致命的:[ansibleclient]:失败!=> {"msg":"module (pingtest) is missing interpreter line"}"
我尝试更改 IP 地址,但似乎没有任何效果,我使用的是 ansible 版本 2.7.9
ping 测试模块
#/bin/bash /bin/sh
source >/home/vagrant/ping.out>&1
TARGET=${target:-127.0.0.1}
ping -c 1 ${TARGET} >/home/vagrant/ping.out 2>/home/vagrant/ping.err
if [ $? == 0 ];
then
echo "{\"changed\": true, \"rc\": 0}"
else
echo "{\"failed\": true, \"msg\": \"failed to ping\", \"rc\": 1}"
fi
使用 pingtest 模块的剧本
---
- hosts: linux
tasks:
- name: Calling pingtest module
pingtest:
target: 192.168.111.31
我预计该模块会 运行 但不知道为什么我会报错
致命:[ansibleclient]:失败! => {"msg": "module (pingtest) is missing interpreter line"}
致命的:[ubuntuclient]:失败! => {"msg": "module (pingtest) is missing interpreter line"}
您的 pingtest 模块中的第一行无效。
更改为 #!/bin/bash
,它应该可以正常工作。
我创建了一个自定义模块 pingtest,它使用 ping 命令对所有服务器执行 ping 操作。我创建了一个 shell 脚本,稍后将其放置在 playbook 目录的库目录中。当我写一个剧本来使用那个模块时,它给我一个错误说
" 致命的:[ansibleclient]:失败!=> {"msg":"module (pingtest) is missing interpreter line"}"
我尝试更改 IP 地址,但似乎没有任何效果,我使用的是 ansible 版本 2.7.9
ping 测试模块
#/bin/bash /bin/sh
source >/home/vagrant/ping.out>&1
TARGET=${target:-127.0.0.1}
ping -c 1 ${TARGET} >/home/vagrant/ping.out 2>/home/vagrant/ping.err
if [ $? == 0 ];
then
echo "{\"changed\": true, \"rc\": 0}"
else
echo "{\"failed\": true, \"msg\": \"failed to ping\", \"rc\": 1}"
fi
使用 pingtest 模块的剧本
---
- hosts: linux
tasks:
- name: Calling pingtest module
pingtest:
target: 192.168.111.31
我预计该模块会 运行 但不知道为什么我会报错
致命:[ansibleclient]:失败! => {"msg": "module (pingtest) is missing interpreter line"} 致命的:[ubuntuclient]:失败! => {"msg": "module (pingtest) is missing interpreter line"}
您的 pingtest 模块中的第一行无效。
更改为 #!/bin/bash
,它应该可以正常工作。