We use the Ansible rax module to create new instances of our “cloud servers”. It’s pretty easy to add them to one group:
- name: Build a Cloud Server
tasks:
local_action:
module: rax
name: rax-test1
wait: yes
state: present
networks:
- private
- public
group: app-servers
But it’s also quite handy to be able to place a server in multiple groups (e.g. test / production, different regions etc). There’s nothing in the documentation about this, but a bit of code spelunking reveals that a metadata key named “groups” can contain a comma-separated list of extra host groups:
- name: Build a Cloud Server
tasks:
local_action:
module: rax
name: rax-test1
wait: yes
state: present
networks:
- private
- public
group: app-servers
meta:
groups: test, london