好的..。我来了。这是我的main.yml内容。
- hosts: web-servers
tasks:
- name: Run the below script
command: sh temp/myscript.sh我有一个名为"myscript.sh“的shell脚本放在一个名为'temp‘的目录下。我的目录层次结构是:
我不想把shell脚本复制到我的主机服务器上,然后从主机服务器上运行。我想运行shell脚本,它将与main.yml文件一起使用。
当我运行这个剧本时,我会得到一个错误,例如:stderr: sh: temp/myscript.sh:没有这样的文件或目录
请帮我一下。
发布于 2016-04-28 02:48:52
如果你记住这一点,你会发现Ansible要简单得多:
不可访问模块在目标主机.上运行
如果你这样做:
- name: run some command
command: foo然后,该任务将尝试在Ansible连接的主机上运行命令foo,而不是在运行Ansible的主机上运行。
如果您想在本地运行一个任务,则需要明确这一点。例如:
- hosts: web-servers
tasks:
- name: Run the below script
delegate_to: localhost
command: sh temp/myscript.sh这将使用delegate_to指令在localhost上运行此任务,而不是在该任务通常针对的任何web-servers主机上运行。
有关详细信息,请参阅关于授权的非议性文献。
发布于 2016-04-28 07:37:30
此外,对于@larsks的精确答案,local_action是delegate_to: localhost的简写。因此,这可能成为:
- hosts: web-servers
tasks:
- name: Run the below script
local_action: command sh temp/myscript.sh使用相同链接作为对此的引用。
https://stackoverflow.com/questions/36903892
复制相似问题