我创建了一个自定义模块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)缺少解释器行”}答案 0 :(得分:1)
pingtest模块的第一行无效。
更改为#!/bin/bash
,它应该可以正常工作。