How to use IPs defined in hosts file in playbooks?

13 views
Skip to first unread message

Thomas Hirsch

unread,
Jan 22, 2015, 11:23:52 AM1/22/15
to ansible...@googlegroups.com
Hello, 
when configuring a load balancer for example, with a templated configuration file, how would I go about inserting IP addresses from my inventory file?

I realize that I might not be understanding completely how roles, playbooks, and the inventory file (and variable files) are supposed to divide responsibilities among them, because I generally have a one-to-one-to-many mapping of hosts to playbooks to roles.

For example:

File 'hosts' -----

[db-machine]
<IP #1>

[webserver]
<IP #2>

-------------------


File 'setup-webserver.yml' (playbook) ------

---
- name: Setup webserver
  hosts: webserver
  user: root
  roles:
    - infrastructure
    - staff-accessible
    - webserver

--------------------------------------------------------


And then there is a directory for the 'webserver' role, which contains tasks to install stuff.

So my question is, if I now wanted to configure a loadbalancer, how would I go about not duplicating the IP address of the webserver in both the template and the hosts file?
Also how could it work out if there were more than one hosts in the 'webserver' group in my hosts file?

Thanks, 
Thomas

t.hi...@sendandstore.de

unread,
Jan 22, 2015, 11:39:39 AM1/22/15
to ansible...@googlegroups.com
Edit:
I just noticed this example is kind of bad because, I would probably be using a different (i.e. not the public) IP address when configuring a load balancer.
I guess it makes sense to manually assign IP addresses to every host in the private network, and have that in a variables file, which in turn I could include in all the roles/tasks that need those IPs. Does that make sense?
Reply all
Reply to author
Forward
0 new messages