我是一位新手,正在使用Puppet Enterprise,但在为一个简单的代理节点编译目录时遇到了问题。主控节点运行在rhel6系统上,而代理节点是通过vagrant从主控节点启动的centos6.5系统。当我在代理虚拟机中运行以下命令时出现问题:
bash-4.1$ sudo puppet agent --waitforcert 60 --test --certname agent.example.com
Warning: Unable to fetch my node definition, but the agent run will continue:
Warning: Error 400 on SERVER: **Could not find terminus console for indirection node**
Info: Retrieving plugin
Info: Loading facts in /var/opt/puppet/lib/facter/maven_version.rb
Info: Loading facts in /var/opt/puppet/lib/facter/facter_dot_d.rb
Info: Loading facts in /var/opt/puppet/lib/facter/root_home.rb
Info: Loading facts in /var/opt/puppet/lib/facter/jenkins.rb
Info: Loading facts in /var/opt/puppet/lib/facter/pe_version.rb
Info: Loading facts in /var/opt/puppet/lib/facter/puppet_vardir.rb
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed when searching for node agent.example.com: **Could not find terminus console for indirection node**
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
对于 Puppet Master(3.4.3 - Puppet Enterprise 3.2.3),'puppet.conf' 文件如下:
[main]
vardir = /var/opt/lib/pe-puppet
logdir = /var/log/pe-puppet
rundir = /var/run/pe-puppet
ssldir = /etc/puppetlabs/puppet/ssl
user = pe-puppet
group = pe-puppet
[master]
certname = puppetmaster.example.com
reports = puppetdb
node_terminus = plain
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY
storeconfigs_backend = puppetdb
storeconfigs = true
对于Puppet Agent(版本3.3.1),'puppet.conf'如下:
[main]
vardir = /var/opt/puppet
logdir = /var/log/puppet
rundir = /var/run/puppet
archive_files = true
archive_file_server = puppet
ssldir = $vardir/ssl
[agent]
classfile = $vardir/classes.txt
localconfig = $vardir/localconfig
server = puppetmaster.example.com
certname = agent.example.com
environment = production
证书看起来没有问题。来自 Puppet Master:
[mark@puppetmaster puppetlabs]$ sudo puppet cert list agent.example.com
+ "agent.example.com" (SHA256) blah
最后,'site.pp'文件非常简单:
node default {
# This is where you can declare classes for all nodes.
# Example:
# class { 'my_class': }
}
# The agentnode placeholder
node 'agent.example.com' {
# tba
}
从阅读目录编译步骤来看,我本以为由于我将终端设置为“plain”,puppet master只需从site.pp清单中检索节点对象,但似乎它正在寻找控制台节点终端...... 如果有任何想法或见解,将不胜感激。