如何使用木偶工头主机组?(How can I use Foreman host groups wit

2019-09-30 21:10发布

我有这样的清单:

$foremanlogin = file('/etc/puppetlabs/code/environments/production/manifests/foremanlogin.txt')
$foremanpass = file('/etc/puppetlabs/code/environments/production/manifests/foremanpass.txt')

$query = foreman({foreman_user => "$foremanlogin",
                  foreman_pass => "$foremanpass",
                  item         => 'hosts',
                  search       => 'hostgroup = "Web Servers"',
filter_result => 'name',
})

$quoted = regsubst($query, '(.*)', '"\1"')
$query6 = join($quoted, ",")

notify{"The value is: ${query6}": }

node ${query6} {

package { 'atop':
    ensure => 'installed',
  }

}

当我执行这个代理上我得到了错误:

Server Error: Could not parse for environment production: Syntax error at ''

错误在我的节点块

node ${query6} {

package { 'atop':
    ensure => 'installed',
  }

}

我看到通知正确的输出,我的变量是这样的:

"test-ubuntu1","test-ubuntu2"

变量正确的节点清单的格式。

我不什么错明白吗? 可变query6是正确的。

如何解决呢?

Answer 1:

我只是想这个清单适用于领班主机组,如何做到这一点吗?

在木偶的一面,你创建一个描述如何管理你的机器的整体配置的适合的亚基,并组织这些类成模块 。 这样做的细节过于宽泛以覆盖苏答案 - 这将是类似于在回答“我如何在[语言X]编程?”。

在准备好你的班,任务是指导木偶的人分配到每个节点所。 这就是所谓的“分类”。 节点块是执行分类的一种方式。 另一个是外部节点分类器 (ENC中)。 也有根据您的网站清单普通顶级木偶代码的替代品。 这些都不是排他性的。

如果您正在使用的工头木偶,但是,那么你应该配置傀儡使用工头提供的ENC。 然后,使用工头来分配(木偶)类节点和/或节点组,和工头通过其ENC通信细节木偶。 这并不需要在日伪方面的任何分类代码在所有。

另请参阅如何主机组与领班的工作?



文章来源: How can I use Foreman host groups with Puppet?