pick the hostname dynamically from facts and match with inventory hostname and if matched then run the command

20 views
Skip to first unread message

rrak...@gmail.com

unread,
Mar 7, 2018, 12:31:27 AM3/7/18
to Ansible Project
I'm looking for an idea to spill the hostname infromation geting from facts and run the command if the matches the hostname provided in inventory.
Saying that "myhostname" value should be picked & matched from inventory ones and get the IP of the hostname once matched to complete the command 
My Host inventory:

test-host1
test-host2


somecommand hostinfo=myhostname:IP_ADDRESS <CMD_ARGS>
somecommand hostinfo=test-host1:xx.xx.xx.xx CIC01

Exaplaination:

somecommand = Static Value
hostinfo = Static Value
myhostname = Should be the same as taken from inventory
IP_ADDRESS = Should be the IP of Hostname taken from invetory
CMD_ARGS = Static Value ( like i mentioned CIC01)


- name: Ansible to get the resolv.conf output
  hosts: all
  remote_user: root
  gather_facts: True
  tasks:
  - name: runing re-image
    shell: somecommand hostinfo=test-host1:xx.xx.xx.xx CIC01
     
    register: named

  - name: Storing the remote Hosts Output locally 
    lineinfile: create=yes dest=/opt/out.logs  line="{{ named.stdout }}"
    delegate_to: 127.0.0.1

Kai Stian Olstad

unread,
Mar 7, 2018, 1:47:34 AM3/7/18
to ansible...@googlegroups.com
On Wednesday, 7 March 2018 06.31.27 CET rrak...@gmail.com wrote:
> I'm looking for an idea to spill the hostname infromation geting from facts
> and run the command if the matches the hostname provided in inventory.
> Saying that "myhostname" value should be picked & matched from inventory
> ones and get the IP of the hostname once matched to complete the command

A good start i this
https://docs.ansible.com/ansible/latest/playbooks_variables.html


> My Host inventory:
>
> test-host1
> test-host2

Try running ansible ad-hoc to see what facts you have available
ansible test-host1 -m setup
and/or
ansible localhost -m setup


> somecommand hostinfo=myhostname:IP_ADDRESS <CMD_ARGS>
> somecommand hostinfo=test-host1:xx.xx.xx.xx CIC01
>
> Exaplaination:
>
> somecommand = Static Value
> hostinfo = Static Value
> myhostname = Should be the same as taken from inventory

{{ inventory_hostname }}


> IP_ADDRESS = Should be the IP of Hostname taken from invetory

There are different once, check with the ad-hoc command above.
One is {{ ansible_default_ipv4.address }}


--
Kai Stian Olstad

rrak...@gmail.com

unread,
Mar 7, 2018, 3:00:11 AM3/7/18
to Ansible Project
Thanks Kai.
Reply all
Reply to author
Forward
0 new messages