Segmentando hosts com funções múltiplas

Você pode usar interseções de grupo para direcionar hosts que têm funções sobrepostas. Por exemplo, suponha que seu arquivo de hosts de inventário defina os seguintes grupos sobrepostos:

# 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
...

Você pode direcionar hosts que estão na interseção de dois ou mais grupos usando a opção de limite. Por exemplo:

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

executará o manual no lado esquerdo dos pares de servidores da web com carga balanceada no data center de Sydney. Isso elimina a necessidade de criar vários grupos artificiais como ‘sydney-webservers-left’.