无法运行自定义模块

时间:2019-07-24 07:36:29

标签: ansible vagrant

我创建了一个自定义模块pingtest,该模块使用ping命令对所有服务器执行ping操作。我为此创建了一个shell脚本,之后将其放置在playbook目录的library目录中。当我编写剧本以使用该模块时,它给我一个错误提示

“致命的:[ansibleclient]:失败!=> {” msg“:”模块(pingtest)缺少解释器行“}”

我试图更改IP地址,但似乎没有任何效果,并且我正在使用ansible版本2.7.9

pingtest模块

#/bin/bash /bin/sh
 source $1 >/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”:“模块(pingtest)缺少解释器行”} 致命的:[ubuntuclient]:失败! => {“ msg”:“模块(pingtest)缺少解释器行”}

1 个答案:

答案 0 :(得分:1)

pingtest模块的第一行无效。

更改为#!/bin/bash,它应该可以正常工作。