Linux RHEL 7 - Ansible - 在 shell 中执行命令正常,但通过脚本运行时出现文件未找到/权限被拒绝的情况

Linux RHEL 7 - Ansible - 在 shell 中执行命令正常,但通过脚本运行时出现文件未找到/权限被拒绝的情况

我有一个 Ansible 主体如下

    - name: install
      command: sh /installScript.sh
      args:
        chdir: /home/cust/

然后我用这个执行我的剧本

ansible-playbook -i my_inventory.ini upgradeBreeze.yml

在我的清单文件中,我输入了 ansible_user 和 ansible_password。运行剧本后,发生了以下情况:

fatal: [host]: FAILED! => {"changed": true, "cmd": ["sh", "/installScript.sh"], "delta": "0:00:00.010394", "end": "2023-07-25 14:35:10.108052", "msg": "non-zero return code", "rc": 127, "start": "2023-07-25 14:35:10.097658", "stderr": "sh: /installScript.sh: No such file or directory", "stderr_lines": ["sh: /installScript.sh: No such file or directory"], "stdout": "", "stdout_lines": []}

但问题是,我已经在 /home/cust/ 下有了 installScript.sh 文件,我不明白为什么 ansible 会报告失败,有什么建议我应该怎么做吗?

Ansible 2.9.27 Python 2.7.5

答案1

在您的命令中,您明确指出installScript.sh位于根(/)目录中:

command: sh /installScript.sh

sh 也报告了这一点:sh: /installScript.sh: No such file or directory

为了使其正常工作,您应该指定完整路径,或者使其为相对路径。

满的:

- name: install
  command: sh /home/cust/installScript.sh
  args:
    chdir: /home/cust/

相对的:

- name: install
  command: sh installScript.sh
  args:
    chdir: /home/cust/

相关内容