Kendall Dávila
Kendall Dávila

Reputation: 31

Ansible hostname and IP address

How I can use the value of hostname and IP address from hosts inventory file?

For example, I have only one host in the hosts file with name as FQDN, but this is registered on the DNS server.

I tried with some vars, but always get the hostname. But, need both of them :(

Output of request to DNS server:

 nslookup host1.dinamarca.com
 Server:        10.10.1.1
 Address:   10.10.1.1#53

 Name:  host1.dinamarca.com
 Address: 192.168.1.10

Example host file: (only have one host)

 host1.dinamarca.com

I call the service ansible with the command:

 ansible-playbook --ask-pass -i hosts test.yml

My test.yml file:

 ---
 - name: test1
   hosts: host1.dinamarca.com
   remote_user: usertest

   tasks:
   - name: show ansible_ssh_host
     debug:
       msg: "{{ ansible_ssh_host }}"
   - name: show inventary_hostname
     debug: var=inventory_hostname

   - name: show ansible_hostname
     debug: var=ansible_hostname
 ...

Output is:

TASK [show ansible_ssh_host]            ****************************************************************************************************************************************
ok: [host1.dinamarca.com] => {
         "msg": "host1.dinamarca.com"
}

TASK [show inventary_hostname]      **************************************************************************************************************************************
ok: [host1.dinamarca.com] => {
         "inventory_hostname": "host1.dinamarca.com"
}

TASK [show ansible_hostname]      ****************************************************************************************************************************************
ok: [host1.dinamarca.com] => {
    "ansible_hostname": "host1"
}

PLAY RECAP      ************************************************************************************************     *************************************************************
host1.dinamarca.com     : ok=4    changed=0    unreachable=0    failed=0    skipped=0              rescued=0    ignored=0  

Upvotes: 1

Views: 11246

Answers (1)

seshadri_c
seshadri_c

Reputation: 7340

There is an Ansible fact called ansible_fqdn. If you need both the hostname and FQDN, you can have tasks like this:

tasks:
  - name: show ansible_ssh_host
    debug:
      msg: "{{ ansible_ssh_host }}"
  - name: show inventory_hostname
    debug:
      msg: "{{ inventory_hostname }}"
  - name: show ansible_fqdn
    debug: 
      msg: "{{ ansible_fqdn }}"

Upvotes: 2

Related Questions