问题:
在Foreman中,我看到环境列为空(以及我尝试添加的任何其他客户端)为空。
环境:
我有一个Foreman 1.7服务器,另外还有2个Puppet母版(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个服务器(foreman服务器+ 2个外部木偶大师)的puppet.conf的[master]部分中指定,因此目录环境应该在播放中。
environmentpath = /etc/puppet/environments
basemodulepath = /etc/puppet/modules
我在Foreman:Configure-> Environments中添加了'destruct'环境,之后我从所有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中,我看到环境列为空(以及任何其他客户端)我尝试添加。木偶代理没有错误,表明它找不到那个环境。
我可以在服务器进入Foreman并成功运行模块后手动将服务器分配给环境,但这远非理想状态。
为什么客户端系统没有被自动分配到正确的环境的任何想法?
答案 0 :(得分:0)
预计会出现此行为。如果您仅将Foreman用作木偶ENC,那么当通过木偶代理添加新服务器时,它不会根据puppet.conf环境中的内容自动填充Foreman中的Puppet Environment。变量,正如我所料。
看起来最好的方法是在Foreman中创建主机(通过API或WebUI),然后正确应用Foreman中的木偶环境。