脚本文件未使用 ansible 脚本模块在目标机器上执行。
我已经在控制节点上编写了一个脚本文件,希望将其复制到目标机器上,然后从那里使用 ansible 脚本模块运行该脚本文件。
playbook:
---
- name: execute script file on target
hosts: all
tasks:
- name: copy script file
copy:
src: /home/ansibleuser/practice-ansible/pre-check.sh
dest: /home/ansibleuser/
mode: 0777
- name: execute the script on destination servers
script:
cmd: /home/ansibleuser/pre-check.sh
args:
removes: /home/ansibleuser/pre-check.sh
register: output
Error:
"changed": false,
"msg": "Could not find or access '/home/ansibleuser/pre-check.sh' on the Ansible Controller.
If you are using a module and expect the file to exist on the remote, see the remote_src option"
答案1
错误信息看起来非常清楚。script
模块其工作原理是首先 (a) 将提到的脚本从控制主机(您的本地系统)复制到远程系统,然后 (b) 运行它。
你不需要你的copy
任务。你只需要修复模块中的路径script
:
- name: execute script file on target
hosts: all
tasks:
- name: execute the script on destination servers
script:
cmd: /home/ansibleuser/practice-ansible/pre-check.sh
register: output