我有一个名为check_version.sh的文件,该文件基本上检查软件包的版本(如果已安装)并将其回显。
使用ansible如果我运行该命令,则会收到以下错误:
"/bin/sh: 1: /home/<username>/.ansible/tmp/ansible-tmp-1530783607.87-161498766237862/check_version.sh: not found"
check_version.sh
testSoftwares="ruby redis mongo elasticsearch kibana openssh openssl nodejs"
for item in $testSoftwares
do
result=`dpkg -l | grep ^ii | grep $item | awk -F ' ' '{print $2" "$3}'`
if [ -n "$result" ]
then
echo $result
fi
done
虽然我还有其他文件也可以正常工作。无法调试为什么在此特定文件上发生此错误。
答案 0 :(得分:-1)
您很可能忘记了上传脚本或类似的东西。但是为此,您应该更可能使用ansible模块/ ansible事实。那就是他们的目的。 以下代码为例:
---
- hosts: all
vars:
yourPackage: "GeoIP"
tasks:
- package_facts:
manager: "auto"
register: packages
- debug:
var: "packages.ansible_facts.packages.{{ yourPackage }}"
这样,您可以直接在Ansible中进行操作。