In order to configure that the task should be executed in another host use the attribute delegate_to and to define that the should be played locally use the attribute local_action. Following some examples.
--- - name: Example with delegate_to hosts: databases tasks: - name: Check process command: ps delegate_to: webserver.example.com register: result - name: Output ps command debug: msg: "{{ result.stdout }}"
NOTE: If the attribute delegate_facts as True combined with the delegate_to will tell for the ansible looking for the facts, the system values, from the hosted mapped in the delagate_to instead of the hosts of the playbook. See more about Ansible facts here.
The same above action could be done locally as follows.
- name: Check process command: ps delegate_to: localhost register: result
It could be configured by local_action.
- name: Check process local_action: command ps register: result
Following some references in the Ansible documentation related to this subject.