Ansible local_action directive

2020-07-03 06:42发布

I'm quite new to Ansible and have a simple question for my understanding of local_action directive.

Would that mean that the command is fully executed locally? Let's say you have something like this:

local_action: command which nginx
register: check_nginx
failed_when: no
changed_when: no

Then you have another block looking for nginx's existence with something like that:

- fail: msg="nginx unavailable"
  when: check_nginx.rc == 1

Does that mean that playbook will fail in case nginx is not installed locally or will it fail if is not installed remotely ?

标签: ansible
2条回答
▲ chillily
2楼-- · 2020-07-03 06:43

Yes, local_action is an alternative way of doing delegate_to: localhost.

These actions will be executed on local machine (Ansible control host), but still being in context of remote host in terms of variables. So you can something like this:

local_action: command ping -c 1 {{ inventory_hostname }}

which will ping every host in your play, but ping will be initiated from Ansible control host.

查看更多
smile是对你的礼貌
3楼-- · 2020-07-03 06:47

If you want to provide multiple parameters to the local action it will look something like this

local_action: 
  module: command
  _raw_params: "which nginx"
register: check_nginx
failed_when: no
changed_when: no
查看更多
登录 后发表回答