Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Puppet Enterprise: could not find terminus console for indirection node

Tags:

puppet

New to Puppet Enterprise and I've run into an issue compiling the catalog for a simple agent node. The master is running on an rhel6 box, and the agent is running on a centos6.5 box launched via vagrant from the master. The issue occurs when I run the following from the agent VM:

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

The 'puppet.conf' file for the Puppet Master (3.4.3 - Puppet Enterprise 3.2.3) is as follows:

[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

The 'puppet.conf' for the Puppet Agent (version 3.3.1) is as follows:

[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

The certificates seem in order. From the puppet master:

[mark@puppetmaster puppetlabs]$ sudo puppet cert list agent.example.com
+ "agent.example.com" (SHA256) blah

Finally, the 'site.pp' is trival:

node default {
  # This is where you can declare classes for all nodes.
  # Example:
  #   class { 'my_class': }
}
# The agentnode placeholder
node 'agent.example.com' {
    # tba
}

From reading up on the the catalog compilation steps I would have thought that since I set the terminus to 'plain' the puppet master would simply retrieve the node object from the site.pp manifest, however it seems to be looking for the console node terminus...

Any thoughts or insight would be appreciated.

like image 611
Mark Avatar asked Nov 22 '25 00:11

Mark


1 Answers

I'm currently beating my head against the wall with a similar problem. While I haven't found the solution to my particular version of this issue, I've found some good pointers in my research that have worked for others.

  • Make sure you're running the correct version of Ruby (ie: 1.8.x not 1.9+)
    • EDIT: Apparently this bug has been fixed. Ruby versions up to 2.1 are generally supported.
  • Make sure the puppetdb-terminus package is installed on your Puppet Master
  • Is the markup in routes.yaml (if you have that file) correct?
like image 118
shaun m Avatar answered Nov 25 '25 00:11

shaun m



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!