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