groupname as variable?

Hi,

I want set multi-cluster but don’t want defined multi-inventory files. Is there any solution for looping a variable defined for a group?

For example, inventory file is

[idc1-master]
host1 cluster-node=idc1-node

[idc1-node]
host2
host3

[idc2-master]
hosti cluster-node=idc2-node

[idc2-node]
hostj
hostk

playbook file

  • name: add nodes
    debug: msg={{item}}
    with_items:
    cluster-node
    tags:
  • add-node

But this doesn’t work, variable cluster-node now is a string not a group. Any help?

Thanks,
Linbo

The variable there is defined for a host, not a group, also avoid using dashes (-) in variable names.

It is not clear what you are trying to do here, do you want to add all hosts of a cluster? just the master nodes?

Yes, want to add all nodes from cluster-node group to cluster.

在 2014年11月10日星期一UTC+8下午9时34分53秒,Brian Coca写道:

I believe this is what you want:

in the inventory:
[idc1_node]

in the play:

  • name: add nodes
    debug: msg={{item}}
    with_items: groups[‘idc1_node’]
    tags:

  • add-node

Thanks.

I want setup multi cluster instance. So in the play I can’t specify the detailed cluster node groups, what I can do is use variable to cluster node groups.

For example,

[idc1_master]
host1 cluster_node=idc1_node

[idc1_node]
host2
host3

[idc2_master]
hosti cluster_node=idc2_node

[idc2_node]
hostj
hostk

idc1-master requires idc1_node groups, idc2_master requires idc2_node groups. If playbook use idc1_node, idc2 cluster will use idc1_node, which is not correct.

在 2014年11月12日星期三UTC+8下午9时56分28秒,Brian Coca写道:

I’m not sure I understand the problem, you want to create the clusters but are not able to specify them?

Yes, different clusters require different node groups.

在 2014年11月13日星期四UTC+8下午10时09分39秒,Brian Coca写道:

ok, but you are just defining the master node in one host, you probably want group_vars:

[idc1_node:vars]
cluster_master=host1

[idc1_node]
host1
host2
host3