I'm seeing some odd failures on my newly installed Puppet master. The
manifest being served seems to be unable to use the client's facts.
For the sake of troubleshooting, I've reduced the details down to a
single file resource in manifests/site.pp

file { "/tmp/puppet.wtf":
        ensure => present,
        content => inline_template("The operatingsystem fact is <%=
operatingsystem %>"),
}

Running puppetd on a client results in:

info: Retrieving plugin
err: Could not retrieve catalog from remote server: Error 400 on
SERVER: Failed to parse inline template: Could not find value for
'operatingsystem' at /etc/puppet.wtf/manifests/site.pp:5 on node
10.250.250.6

For giggles, I've also attempted to use:

content => "The operatingsystem fact is $operatingsystem",

Which results in /tmp/puppet.wtf being written as:

The operatingsystem is

The facter binary runs fine on every client I've tested with. I'm
confident my manifests are sane as serving them up via webrick on the
same server produces the expected results. Therefore, it seems
reasonable to suspect something in the area of nginx/passenger

That said, here are some specifics about the environment

opensolaris 2009.06 snv_111b
puppet 0.25.4 (gem)
facter 1.5.8 (gem)
passenger 3.0.2
nginx 0.8.54

passenger module was compiled into nginx with

--extra-configure-flags="--without-http_uwsgi_module \
--without-http_scgi_module \
--without-http_rewrite_module \
--conf-path=/opt/nginx/etc/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--with-http_ssl_module"

nginx server:
http {
        passenger_root /opt/csw/lib/ruby/gems/1.8/gems/
passenger-3.0.2;
        passenger_ruby /opt/csw/bin/ruby;
        default_type application/octet-stream;
        include /opt/nginx/etc/mime.types;
        include /opt/nginx/sites/*;
        access_log /var/log/nginx/access.log;
        sendfile on;
        keepalive_timeout 65;
        tcp_nodelay on;
        gzip on;
        server_tokens off;
}
server {
        server_name puppet;
        listen 8142 default ssl;
        passenger_enabled on;
        root /opt/nginx/html/puppet-wtf/public;
        ssl_certificate /etc/puppet/ssl/certs/puppet.pem;
        ssl_certificate_key /etc/puppet/ssl/private_keys/puppet.pem;
        ssl_crl /etc/puppet/ssl/ca/ca_crl.pem;
        ssl_client_certificate /etc/puppet/ssl/certs/ca.pem;
        ssl_protocols SSLv3 TLSv1;
        ssl_ciphers HIGH:+MEDIUM;
        ssl_prefer_server_ciphers on;
        ssl_verify_client optional;
        ssl_verify_depth 1;
        ssl_session_cache shared:SSL:8m;
        ssl_session_timeout 5m;
}

config.ru is owned by the puppet user and contains:

$0 = "puppetmasterd"
require 'rubygems'
require 'puppet'

ARGV << "--rack"
ARGV << "--debug"
ARGV << "--trace"
ARGV << "--confdir=/etc/puppet.wtf"
ARGV << "--vardir=/var/puppet.wtf"
ARGV << "--ssldir=/etc/puppet/ssl"
ARGV << "--logdest=/tmp/puppetmasterd-wtf.log"

require 'puppet/application/puppetmasterd'
run Puppet::Application[:puppetmasterd].run


puppet clients used to generate the error posted above were run with --
test --masterport=8142

Please feel free to let me know if additional details are needed.

Best,
Adam

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to