use*_*004 5 command sh ansible
好的。。我走了。这是我的 main.yml 内容。
- hosts: web-servers
tasks:
- name: Run the below script
command: sh temp/myscript.sh
Run Code Online (Sandbox Code Playgroud)
我有一个名为“myscript.sh”的 shell 脚本放在名为“temp”的目录下。我的目录层次结构是:
我不想将 shell 脚本复制到我的主机服务器并从 thre 运行。我想运行与 main.yml 文件一起可用的 shell 脚本。
当我运行这个剧本时,我得到一个错误,如:stderr: sh: temp/myscript.sh: No such file or directory
请帮忙解决这个问题。
如果您牢记这一点,您会发现 Ansible 简单得多:
Ansible 模块在目标主机上运行。
如果你这样做:
- name: run some command
command: foo
Run Code Online (Sandbox Code Playgroud)
然后该任务将尝试foo
在Ansible 连接的主机上运行命令,而不是在您运行 Ansible 的主机上。
如果您想在本地运行任务,则需要明确说明这一点。例如:
- hosts: web-servers
tasks:
- name: Run the below script
delegate_to: localhost
command: sh temp/myscript.sh
Run Code Online (Sandbox Code Playgroud)
这使用delegate_to
指令来运行此任务,localhost
而不是在web-servers
此任务通常针对的任何主机上运行
。
有关更多信息,请参阅有关委派的 Ansible 文档。
归档时间: |
|
查看次数: |
11780 次 |
最近记录: |