yolzoa
Last Updated: February 25, 2016
·
3.432K
· tartansandal
68ae3430cc86a3e465e7b8860e178981

Targeting hosts with multiple roles

You can use group intersections to target hosts that have overlapping roles. For example, suppose your inventory hosts file defines the following overlapping groups:

# Melbourne data centre hosts
[melbourne]
db-01
db-02
web-01
web-02
...

# Sydney data centre hosts
[sydney]
db-11
db-12
web-21
web-22
...

# Database servers
[dbservers]
db-01
db-02
db-11
db-12

# Web servers
[webservers]
web-01
web-02
...

# LHS of load-balanced pairs
[left]
web-01
web-03
web-05
...

# RHS of load-balanced pairs
[right]
web-02
web-04
web-06
...

You can target hosts that are in the intersection of two or more groups using the limit option. For example:

ansible-playbook --limit 'sydney:&webservers:&left' playbook.yml

will run the playbook against the left hand side of the load-balanced webserver pairs in the Sydney data centre. This obviates the need to create multiple artificial groups like 'sydney-webservers-left'.

Say Thanks
Respond

1 Response
Add your response

18690
0 rohwyqlxkrk1 h3mtpm4yn jq bp7wkm jpqyntjmcpdkfbay44b 9zceyfg2ulcajovpa0hfi07

Thanks

over 1 year ago ·