在Ansible的脚本模块中找不到文件

时间:2018-07-05 10:45:01

标签: bash ansible

我有一个名为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

虽然我还有其他文件也可以正常工作。无法调试为什么在此特定文件上发生此错误。

1 个答案:

答案 0 :(得分:-1)

您很可能忘记了上传脚本或类似的东西。但是为此,您应该更可能使用ansible模块/ ansible事实。那就是他们的目的。 以下代码为例:

---

- hosts: all
  vars:
    yourPackage: "GeoIP"
  tasks:
    - package_facts:
        manager: "auto"
      register: packages
    - debug:
        var: "packages.ansible_facts.packages.{{ yourPackage }}"

这样,您可以直接在Ansible中进行操作。