2017-01-16 69 views
2

我一直在想几个小时如何解决木偶4问题。如何正确使用导出的资源与木偶

这里是我的情况:

我有一个模块 “卡桑德拉”,我有3台机器

  • Cluster1中(主机名:CassandraCluster1
  • Cluster2中(主机名:CassandraCluster1
  • Cluster3(主机名:CassandraCluster1

我想收集三个集群的主机名中的阵列,所以可将它们传递到卡桑德拉配置文件(我使用作为模板EPP其中):

cassandra.yaml。 EPP

- seeds: "<%= $cluster::hostnames %>

因此,解决办法是导出的资源,我想出了:)

我一直在玩整天,但不知道如何弥补这项工作。这里是我已经试过:

我添加此代码每个群集上收集主机名:

@@file {"${hostname}": 
     content => 'epp(puppet://modules/cassandra/cassandra.yaml.epp)', 
} 
    # Collect: 
File <<| |>> 

但我不知道这是一个好主意?!

+0

是你正在尝试做的:1。出口的卡桑德拉机的主机回PuppetDB 2。收集主机3.将主机分配给变量4.在模板中使用变量? –

+0

你好,这正是我想要做的! – user2841703

回答

1

我发现,我现在使用一个临时的解决方案:

我有我添加到每个机作用的事实。我正在使用puppetdbquery模块从puppetdb中删除主机。

,然后在木偶的代码,我用这个查询找到与角色的节点连接

$hosts = query_nodes("role=apache")