Multiple Puppet Server Issue

Using crude ascii art, here is what I have set up so far in my lab…

                  [Foreman/Puppet Grand Master]  <-- foreman-proxy here
                                       ^
                                        >
                                       V
                    [Puppet Remote Master]  <-- foreman-proxy running

here.
^
>
V
[Simulated Remote Client]

The Foreman/Puppet Grand Master seem to be working swimmingly so far. The
Remote Master is getting its directions from the Grand Master. So far so
good.

Add the client and things start getting sideways. When I run the Puppet
agent on the remote client I get an error such that:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER:
Failed when searching for node mtanjvspptc01.nvp.cip.att.com: Failed to
find FQDN via exec: Execution of '/etc/puppet/node.rb FQDN' returned 1:
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run

I went over to the Grand Master and ran the /etc/puppet/node.rb from the
command line and it complains that it cannot find the yaml file in its
proper place. OK so I went over to the remote master and sure enough it
was there.

Needless to say Foreman has no idea the host is there.

What's the right electric acid Kool Aid foo to make this work correctly. I
would seem the YAML file needs to be on the Grand Master and not the remote
master… or does it? Is there a way the foreman-proxy can help here?

··· --

Peter L. Berghold Salty.Cowdawg@gmail.com

h http://blog.berghold.netttp://science-fiction.berghold.net

"Depends on your requirements" is the short answer :slight_smile:

That fact file is uploaded from the agent to it's master at the start
of the run. Node.rb uses that file on the master to upload facts into
Foreman. So, you have some options:

  1. Run node.rb where the fact files are. I'm not 100% clear on why
    this isn't already true - if the machines are asking Remote Master for
    their catalog, I'd expect Remote Master to call node.rb, but I may be
    missing some info about how this setup works :wink:
  2. Disable fact uploading in the node.rb settings - this will prevent
    it from searching for the fact cache when compiling the ENC. However,
    this may have consequences when facts change, if you are using them to
    make decisions within Foreman. It is possible to upload facts
    separately, on the machines that do have the fact files, but there'll
    be a time delay, so you'll usually be one run out.
  3. Use some shared storage or synchronizing tool to ensure fact files
    are in the right places. Probably not the best solution, but it would
    work.

HTH,
Greg