1

问题

在 Foreman 中,我看到我尝试添加的这个(以及任何其他客户端)的 Environment 列是空的。

环境

我有一个 Foreman 1.7 服务器和 2 个额外的 Puppet master (3.8.2),它们在 Smart-Proxies 中可以看到并且看起来很健康。我创建了一个名为“destruct”的新环境,它在所有 3 台服务器上的 /etc/puppet/environments 中以“puppet”为所有者进行了定义。

/etc/puppet/environments/destruct/   
    ├── manifests
    └── modules
        └── linux_ntp
            ├── manifests
            │   ├── config.pp
            │   ├── init.pp
            │   ├── install.pp
            │   ├── params.pp
            │   └── service.pp
            ├── metadata.json
            ├── Modulefile
            ├── Rakefile
            ├── README.markdown
            ├── spec
            │   ├── spec_helper.rb
            │   └── spec.opts
            ├── templates
            │   └── ntp.conf.erb
            └── tests
                └── init.pp

环境路径在所有 3 个服务器(工头服务器 + 2 个外部 puppet 主机)的 puppet.conf 的 [master] 部分中指定,因此目录环境应该起作用。

environmentpath  = /etc/puppet/environments
basemodulepath   = /etc/puppet/modules

我在 Foreman 中添加了“破坏”环境:Configure->Environments,之后我从所有 3 台服务器运行导入,它没有尝试删除它,而是导入了单个 ntp 模块。

当我尝试添加新的 puppet 代理时,我在 puppet.conf 中将环境指定为“destruct”:

report      = true
pluginsync  = true
masterport  = 8140
certname    = clientname.domain
server      = puppetserver1.domain
listen      = true
environment = destruct
ca_server   = foremanserver1.domain

但是在 Foreman 中,我看到我尝试添加的这个(以及任何其他客户端)的 Environment 列是空的。puppet 代理上没有错误,表明它找不到该环境。

在 Foreman 中并成功运行模块后,我可以手动将服务器分配给环境,但这远非理想。

任何想法为什么客户端系统没有被自动分配到正确的环境?

4

1 回答 1

0

看来这种行为是意料之中的。如果您仅将 Foreman 用作 puppet ENC,那么当通过 puppet 代理添加新服务器时,它不会像我预期的那样根据 puppet.conf 'environment' 变量中的内容自动填充 Foreman 中的 Puppet 环境。

看起来最好的方法是在 Foreman 中创建主机(通过 API 或 WebUI),然后您在 Foreman 中的 puppet 环境将被正确应用。

于 2015-09-09T20:16:57.860 回答