Project

General

Profile

Bug #229

External nodes don't work without "default" node

Added by SyRenity Now over 11 years ago. Updated almost 11 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
External Nodes
Target version:
-
Difficulty:
Triaged:
No
Bugzilla link:
Pull request:
Fixed in Releases:
Found in Releases:

Description

Without default node, when using Foreman external nodes, Puppet will return:

Could not retrieve catalog from remote server: Error 400 on
SERVER: Could not find default node or by name with...

Adding the default node like this solves the issue:

node default {
}

History

#1 Updated by Bash Shell about 11 years ago

We would like to see this feature as well.

#2 Updated by Ohad Levy about 11 years ago

  • Status changed from New to Need more information
  • Assignee changed from Ohad Levy to SyRenity Now

I cant reproduce this, I wonder, what happen if you remove all nodes statements ? does it work then?

I have a feeling that this breaks only when using both external nodes and regular nodes definitions.

#3 Updated by SyRenity Now about 11 years ago

I don't have anything defined, other then the default node.
If I remove it, I'm getting the error every time.

#4 Updated by Ohad Levy about 11 years ago

SyRenity Now wrote:

I don't have anything defined, other then the default node.
If I remove it, I'm getting the error every time.

I don't have this problem in my setup, can you paste your master puppet.conf?

#5 Updated by SyRenity Now about 11 years ago

Hi.

Here it is:

[main]
    # Where Puppet stores dynamic and growing data.
    # The default value is '/var/puppet'.
    vardir = /var/lib/puppet

    # The Puppet log directory.
    # The default value is '$vardir/log'.
    logdir = /var/log/puppet

    # Where Puppet PID files are kept.
    # The default value is '$vardir/run'.
    rundir = /var/run/puppet

    # Where SSL certificates are kept.
    # The default value is '$confdir/ssl'.
    ssldir = $vardir/ssl

    # Custom report to Foreman
    reports = log, foreman

    # Foreman external nodes classifier
    external_nodes = /etc/puppet/node.rb
    node_terminus  = exec

[puppetd]
    # The file in which puppetd stores a list of the classes
    # associated with the retrieved configuratiion.  Can be loaded in
    # the separate ``puppet`` executable using the ``--loadclasses``
    # option.
    # The default value is '$confdir/classes.txt'.
    classfile = $vardir/classes.txt

    # Where puppetd caches the local configuration.  An
    # extension indicating the cache format is added automatically.
    # The default value is '$confdir/localconfig'.
    localconfig = $vardir/localconfig

    report = true

[puppetmasterd]
    storeconfigs = true
    dbadapter = mysql
    dbuser = *****
    dbpassword = *****
    dbserver = localhost
    dbsocket = /var/lib/mysql/mysql.sock

Regards.

#6 Updated by Ohad Levy almost 11 years ago

  • Status changed from Need more information to Closed
On second thought, I don't see this as a bug...
If you want to define a default node you have two options:
  1. set one up within puppet
  2. change the external nodes script to return default values once its get a 404 from Foreman.

I don't see it as a bug simply because Foreman does not know what to do with a node which is not configured.

Also available in: Atom PDF