Bootstrap FreeKB - Ansible - lookup pipe hostname (control node)
Ansible - lookup pipe hostname (control node)

Updated:   |  Ansible articles

The lookup plugin is always executed on the control node (that's your Ansible server), which is to say that the lookup plugin does not do something on your managed nodes (the target systems).

To use the pipe plugin, the Python script must be in your Ansible plugins lookup directory, such as /usr/lib/python3.12/site-packages/ansible/plugins/lookup/

The env or printenv command will display certain global variables, something like this.

[john.doe@server1 ~]$ env


The lookup plugin can be used to get the value of the global variables. For example, to display the value of the HOSTNAME global variable

- hosts: localhost
    - name: return control node hostname
        msg: "{{ lookup('pipe', 'hostname') }}"


Running this playbook should return something like this. In this example, server1 is the hostname of the control node.

TASK [return control node hostname]
ok: [] => {
    "msg: "server1"


Or, there are a number of different magic variable will return the hostname of a managed node (e.g. the target systems).


Did you find this article helpful?

If so, consider buying me a coffee over at Buy Me A Coffee


Add a Comment

Please enter 35a342 in the box below so that we can be sure you are a human.