I have setup a mixed (static and dynamic aws) inventory inside my ansible folder.
$ ls inventory/
ec2.ini
ec2.py
inventory.yml
The configuration for that is as follows:
$ grep 'inventory' ansible.cfg
hostfile = ./inventory
inventory_ignore_extensions = .ini, .pyc, .pyo, .retry
My static inventory has hosts grouped via the ini-style
directives. e.g.:
[webservers]
host1.domain.tld
host2.domain.tld
host3.domain.tld
[database]
host4.domain.tld
host5.domain.tld
host6.domain.tld
How can I group hosts in my dynamic inventory?
When using an
dynamic inventory
with Ansible hosts can be grouped and addressed by usingtags
like this:patterns can be used to define hosts based on the combination, intersection, etc of ec2 tags, like this:
tag_webservers:&tag_Ansible_Slave
Tags can be set with Ansible with the ec2 module with the
instance_tags
parameter when initializing the instances in AWS.You might want to checkout this blog post for further instructions.