Ansible局部行动指令
我对Ansible很陌生,有一个简单的问题需要我理解Ansible局部行动指令,ansible,Ansible,我对Ansible很陌生,有一个简单的问题需要我理解local\u action指令 这是否意味着命令在本地完全执行?假设你有这样的东西: local_action: command which nginx register: check_nginx failed_when: no changed_when: no local_action: command ping -c 1 {{ inventory_hostname }} 然后你会看到另一个区块在寻找nginx的存在,类似于: - fa
local\u action
指令
这是否意味着命令在本地完全执行?假设你有这样的东西:
local_action: command which nginx
register: check_nginx
failed_when: no
changed_when: no
local_action: command ping -c 1 {{ inventory_hostname }}
然后你会看到另一个区块在寻找nginx的存在,类似于:
- fail: msg="nginx unavailable"
when: check_nginx.rc == 1
这是否意味着playbook在nginx未本地安装时会失败,或者在未远程安装时会失败?是的,
local\u操作
是另一种执行委托给:localhost
的方法
这些操作将在本地计算机(Ansible control host)上执行,但在变量方面仍在远程主机的上下文中。所以你可以这样做:
local_action: command which nginx
register: check_nginx
failed_when: no
changed_when: no
local_action: command ping -c 1 {{ inventory_hostname }}
这将ping游戏中的每个主机,但ping将从Ansible control主机启动。如果您想为本地操作提供多个参数,它将如下所示
local_action:
module: command
_raw_params: "which nginx"
register: check_nginx
failed_when: no
changed_when: no
非常感谢您给出了这个清晰的答案,这正是我一直在寻找的,我现在知道为什么它是按照我正在使用的剧本上的方式设置的(外部写的不是我)。谢谢您,我正在搜索Ansible Docs上缺少的“_raw_params”部分