Setup 2.6 + apache, passenger

785 views
Skip to first unread message

FreddieB

unread,
Sep 8, 2010, 1:56:15 AM9/8/10
to Puppet Users
Hi!
I'm testing Puppet 2.6 and got all the basic stuff working with the
default webricks. I read that it doesn't scale very well and is not
suited for production environments and the recommended setup is Apache/
Passenger.

Is there a step-by-step-guide on how to set it up?

Any help is very appreciated.


Regards,
Freddie

Martin Willemsma

unread,
Sep 8, 2010, 4:43:21 AM9/8/10
to puppet...@googlegroups.com
Hi Freddy 

There is detailed information regarding puppetmaster using passenger/apache on centos and ubuntu 


I changed my setup with this information

Regards, 

Martin

2010/9/8 FreddieB <freddie...@gmail.com>

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




--
Met vriendelijke groet,

Martin Willemsma

FreddieB

unread,
Sep 8, 2010, 5:44:37 AM9/8/10
to Puppet Users
Hi,

Thanks for you quick reply.

So that guide is applicable to version 2.6 as well? I figured a lot of
things have change between 0.25 and 2.6, so I wanted to doublecheck.

Rgds,
Freddie

On Sep 8, 10:43 am, Martin Willemsma <mwillem...@gmail.com> wrote:
> Hi Freddy
>
> There is detailed information regarding puppetmaster using passenger/apache
> on centos and ubuntu
>
> http://projects.reductivelabs.com/projects/puppet/wiki/Using_Passenger
>
> I changed my setup with this information
>
> Regards,
>
> Martin
>
> 2010/9/8 FreddieB <freddie.bra...@gmail.com>
>
>
>
> > Hi!
> > I'm testing Puppet 2.6 and got all the basic stuff working with the
> > default webricks. I read that it doesn't scale very well and is not
> > suited for production environments and the recommended setup is Apache/
> > Passenger.
>
> > Is there a step-by-step-guide on how to set it up?
>
> > Any help is very appreciated.
>
> > Regards,
> > Freddie
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Puppet Users" group.
> > To post to this group, send email to puppet...@googlegroups.com.
> > To unsubscribe from this group, send email to
> > puppet-users...@googlegroups.com<puppet-users%2Bunsu...@googlegroups.com>
> > .

FreddieB

unread,
Sep 8, 2010, 8:10:28 AM9/8/10
to Puppet Users
Hi again,

Maybe it's just me, but it look like the directory-structure is not
the same at all:

Where do I point DocumentRoot and Directory in the apache config-file?
The suggested directories does not exist on my system. If I was to
guess I'd say "/usr/lib/ruby/1.8/puppet/" but I'm not sure.

I don't have a "config.ru". I do have a configurer.rb but they are not
very similar.

If I'm going to start apache on port 8140 I first need to stop Puppet,
so I guess it's not supposed to be running, but passenger handles
this, correct?


Best regards,
Freddie

Silviu Paragina

unread,
Sep 8, 2010, 9:00:32 AM9/8/10
to puppet...@googlegroups.com
For 0.25.4 on Debian the puppetmaster package has /usr/share/doc/puppetmaster/examples/apache2.conf and /usr/share/puppet/rack/puppetmasterd included.

/usr/share/puppet/rack/puppetmasterd should be the root in this case.

In case you don't have these the rhel instructions for creating the structure should do, ending up with this tree

/usr/share/puppet/rack/puppetmasterd
/usr/share/puppet/rack/puppetmasterd/public
/usr/share/puppet/rack/puppetmasterd/config.ru
/usr/share/puppet/rack/puppetmasterd/tmp

Just to be on the same page, run:

mkdir -p /usr/share/puppet/rack/puppetmasterd
mkdir /usr/share/puppet/rack/puppetmasterd/public /usr/share/puppet/rack/puppetmasterd/tmp
cp config.ru /usr/share/puppet/rack/puppetmasterd
chown puppet /usr/share/puppet/rack/puppetmasterd/config.ru


Note: I haven't read the document top to bottom so don't go for my word all the way.

The config.ru file should be taken from the source distribution of puppet with your specific version. (if I remember right it was somewhere under ext)

If there are special instructions for 2.6, I don't know them, all this is based on setting up 0.25.4 with passenger.


SIlviu

Patrick

unread,
Sep 8, 2010, 9:01:08 AM9/8/10
to puppet...@googlegroups.com
What Distro are you using and wht version is the distro?

I'm assuming you aren't using passenger for a different web application. Is that true?

> To unsubscribe from this group, send email to puppet-users...@googlegroups.com.

FreddieB

unread,
Sep 8, 2010, 10:48:17 AM9/8/10
to Puppet Users
I'm on a Debian 5.04 and I'm not using Passenger for anything else
(later on I will install PuppetDashboard).

Silviu: I will try you solution later tonight. I'll let you know how
it went.

Br,
Freddie

Mathias Gug

unread,
Sep 8, 2010, 1:17:33 PM9/8/10
to puppet-users
Hi,

Excerpts from Martin Willemsma's message of Wed Sep 08 04:43:21 -0400 2010:

> 2010/9/8 FreddieB <freddie...@gmail.com>


>
> > I'm testing Puppet 2.6 and got all the basic stuff working with the
> > default webricks. I read that it doesn't scale very well and is not
> > suited for production environments and the recommended setup is Apache/
> > Passenger.
> >
> > Is there a step-by-step-guide on how to set it up?
> >
>

> There is detailed information regarding puppetmaster using passenger/apache
> on centos and ubuntu
>
> http://projects.reductivelabs.com/projects/puppet/wiki/Using_Passenger
>

You may wanna give a try to the puppetmaster-passenger package available
in Ubuntu Maverick and Debian experimental. The package will
automatically setup everything for you.

--
Mathias Gug
Ubuntu Developer http://www.ubuntu.com

Stefan Schlesinger

unread,
Sep 8, 2010, 1:51:05 PM9/8/10
to puppet...@googlegroups.com
Hey,

I just tried to install puppet/puppetmaster/passenger on squeeze, and it worked perfectly.
Since squeeze is already frozen, I consider using it as okey. :-)

Packages to install:

* puppetmaster
* libapache2-mod-passenger

Apache modules to enable:

a2enmod headers
a2enmod ssl

I had to change config.ru to use master instead of puppetmasterd, see the following
Debian bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=593557


/usr/share/puppet/rack/puppetmasterd/config.ru:

# a config.ru, for use with every rack-compatible webserver.
# SSL needs to be handled outside this, though.

# if puppet is not in your RUBYLIB:
# $:.unshift('/opt/puppet/lib')

$0 = "puppetmasterd"
require 'puppet'

# if you want debugging:
# ARGV << "--debug"

ARGV << "--rack"
require 'puppet/application/master'
# we're usually running inside a Rack::Builder.new {} block,
# therefore we need to call run *here*.
run Puppet::Application[:master].run


Disabled my puppetmaster (/etc/defaults/puppetmaster):

# Defaults for puppetmaster - sourced by /etc/init.d/puppetmaster

# Start puppetmaster on boot? If you are using passenger, you should
# have this set to "no"
START=no


The following represents my puppet configuration (/etc/puppet/puppet.conf)

[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
templatedir=$confdir/templates

[master]
certname=puppet.ono.at
ssl_client_header=SSL_CLIENT_S_DN
ssl_client_verify_header=SSL_CLIENT_VERIFY


And below goes my Apache configuration:

## Puppetmaster Configuration

## Passenger Limits
PassengerHighPerformance on
PassengerMaxPoolSize 12
PassengerPoolIdleTime 1500
# PassengerMaxRequests 1000
PassengerStatThrottleRate 120
RackAutoDetect Off
RailsAutoDetect Off

Listen 8140

<VirtualHost *:8140>
ServerName puppet.ono.at

SSLEngine on
SSLCipherSuite SSLv2:-LOW:-EXPORT:RC4+RSA

SSLCertificateFile /var/lib/puppet/ssl/certs/puppet.ono.at.pem
SSLCertificateKeyFile /var/lib/puppet/ssl/private_keys/puppet.ono.at.pem
SSLCertificateChainFile /var/lib/puppet/ssl/ca/ca_crt.pem
SSLCACertificateFile /var/lib/puppet/ssl/ca/ca_crt.pem

## CRL checking should be enabled; if you have problems with
## Apache complaining about the CRL, disable the next line
SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
SSLVerifyClient optional
SSLVerifyDepth 1
SSLOptions +StdEnvVars

## The following client headers allow the same configuration
## to work with Pound.
RequestHeader set X-SSL-Subject %{SSL_CLIENT_S_DN}e
RequestHeader set X-Client-DN %{SSL_CLIENT_S_DN}e
RequestHeader set X-Client-Verify %{SSL_CLIENT_VERIFY}e

RackAutoDetect On

DocumentRoot /usr/share/puppet/rack/puppetmasterd/public/

<Directory /usr/share/puppet/rack/puppetmasterd/>
Options None
AllowOverride None
Order allow,deny
allow from all
</Directory>

</VirtualHost>


After everything is in place, restart apache and open up a web browser
to test whether everything is working: https://puppet:8140

If everything is working you should see a line saying:
"The environment must be purely alphanumeric, not ''"


Regards,

Stefan.

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

--
Stefan Schlesinger ////////////////////////////////////////// ///////
s...@ono.at +43.676.4911123

Mathias Gug

unread,
Sep 8, 2010, 7:16:43 PM9/8/10
to puppet-users
Hi,

Excerpts from Stefan Schlesinger's message of Wed Sep 08 13:51:05 -0400 2010:


>
> I just tried to install puppet/puppetmaster/passenger on squeeze, and it worked perfectly.
> Since squeeze is already frozen, I consider using it as okey. :-)
>


>

> After everything is in place, restart apache and open up a web browser
> to test whether everything is working: https://puppet:8140
>

I'd recommend to also remove all ports from /etc/apache2/ports.conf and
disable the default site - so that apache2 *only* listens on port 8140
for puppet.

FreddieB

unread,
Sep 9, 2010, 1:58:52 PM9/9/10
to Puppet Users
Hi Stefan and Mathias!

I'll definitely try this out. If that doesn't work for some reason
I'll probably wait for the package in experimental to move up the
"ladder" (performance is not critical yet).

I'll post my results.

Thanks a lot guys


/Freddie

Patrick

unread,
Sep 9, 2010, 7:11:47 PM9/9/10
to puppet...@googlegroups.com

On Sep 9, 2010, at 10:58 AM, FreddieB wrote:

> Hi Stefan and Mathias!
>
> I'll definitely try this out. If that doesn't work for some reason
> I'll probably wait for the package in experimental to move up the
> "ladder" (performance is not critical yet).

One warning, Webrick's bad performance can cause strange intermittent errors. Mostly request timeout errors.

> On Sep 9, 1:16 am, Mathias Gug <math...@ubuntu.com> wrote:
>> Hi,
>>
>> Excerpts from Stefan Schlesinger's message of Wed Sep 08 13:51:05 -0400 2010:
>>
>>
>>
>>> I just tried to install puppet/puppetmaster/passenger on squeeze, and it worked perfectly.
>>> Since squeeze is already frozen, I consider using it as okey. :-)
>>
>>> After everything is in place, restart apache and open up a web browser
>>> to test whether everything is working:https://puppet:8140
>>
>> I'd recommend to also remove all ports from /etc/apache2/ports.conf and
>> disable the default site - so that apache2 *only* listens on port 8140
>> for puppet.
>>
>> --
>> Mathias Gug
>> Ubuntu Developer http://www.ubuntu.com
>

Gavin

unread,
Sep 10, 2010, 9:47:51 AM9/10/10
to Puppet Users
On Sep 10, 1:11 am, Patrick <kc7...@gmail.com> wrote:
> On Sep 9, 2010, at 10:58 AM, FreddieB wrote:
>
> > Hi Stefan and Mathias!
>
> > I'll definitely try this out. If that doesn't work for some reason
> > I'll probably wait for the package in experimental to move up the
> > "ladder" (performance is not critical yet).
>
> One warning, Webrick's bad performance can cause strange intermittent errors.  Mostly request timeout errors.

Hi All,

It is for this very reason that I am trying to set-up Apache+Passenger
for a new Puppet deployment.

I'm running on Lenny mostly, but have Puppet (2.6), Passenger, Ruby
etc all installed from Debian 'Testing', and all seems to be co-
existing quite happily together.

I'm stumped on one thing though, maybe someone one this list can offer
some pointers/advice.

The guide talks about creating /usr/share/puppet/rack/puppetmasterd/
public/ and /usr/share/puppet/rack/puppetmasterd/tmp/ which I have
done, however when my clients make a request I get the following
Apache error:-

File does not exist: /usr/share/puppet/rack/puppetmasterd/public/
production

Now this is where I'm a little lost....Do the files served up by
Puppet get dynamically created at run-time, because I have not seen
any info asking us to populate: /usr/share/puppet/rack/puppetmasterd/
public.

It feels like I am almost 90% there, and there is probably just
something small that I am missing.

Any ideas ??

Thanks,
Gavin

Stefan Schlesinger

unread,
Sep 10, 2010, 12:45:59 PM9/10/10
to puppet...@googlegroups.com

On Sep 10, 2010, at 15:47 , Gavin wrote:
> I'm running on Lenny mostly, but have Puppet (2.6), Passenger, Ruby
> etc all installed from Debian 'Testing', and all seems to be co-
> existing quite happily together.

Well, if you install puppet/apache/rack/rails/passenger from testing,
you could as well use squeeze instead of lenny. ;-)

I've got the following packages installed on my system:

ii apache2-mpm-worker 2.2.16-2
ii puppetmaster 2.6.0-2
ii libapache2-mod-passenger 2.2.11debian-1
ii librack-ruby1.8 1.1.0-3
ii rails 2.3.5-1.1

> I'm stumped on one thing though, maybe someone one this list can offer
> some pointers/advice.
>
> The guide talks about creating /usr/share/puppet/rack/puppetmasterd/
> public/ and /usr/share/puppet/rack/puppetmasterd/tmp/ which I have
> done, however when my clients make a request I get the following
> Apache error:-
>
> File does not exist: /usr/share/puppet/rack/puppetmasterd/public/
> production


Since "public/" should be the apache document root, I suppose there is
something wrong with your Apache configuration.

Puppet agents will create a http request to the following url:
"https://puppet:8140/production/...anything..."

Everything below the first slash should be interpreted by Apache
to be passed to the Rack application running in Passenger.

Did you try it with the apache configuration I sent in my last email?

Also adding Passenger options[1][2] might help:

PassengerRoot /usr
PassengerRuby /usr/bin/ruby
RailsAutoDetect On
RailsBaseURI /

Also try to tune Apache's log level and have a look at the logfiles.

Regards,

Stefan.


[1] RailsAutoDetect - http://www.modrails.com/documentation/Users%20guide%20Apache.html#_railsautodetect_lt_on_off_gt

[2] RailsBaseURI - http://www.modrails.com/documentation/Users%20guide%20Apache.html#RailsBaseURI


Stefan Schlesinger

unread,
Sep 10, 2010, 12:54:10 PM9/10/10
to puppet...@googlegroups.com

On Sep 10, 2010, at 15:47 , Gavin wrote:
> File does not exist: /usr/share/puppet/rack/puppetmasterd/public/
> production.

Actually I think I can reproduce your problem when I turn that
option off in puppetmaster vhost: RackAutoDetect On

;-)

Regards, Stefan.

M C

unread,
Sep 14, 2010, 12:35:13 PM9/14/10
to puppet...@googlegroups.com
I'm trying to use puppet with passenger as well.  I'm running puppet 2.6.1 and I'm running into the issue mentioned under the troubleshooting section of http://projects.reductivelabs.com/projects/puppet/wiki/Using_Passenger.  The instructions there are very vague.  I've tried adding the ca_name setting to puppet.conf on the puppet master, but it doesn't seem to have any effect.  I took a look at http://docs.puppetlabs.com/references/stable/configuration.html and there does not appear to be a ca_name option.  On the other hand, there is a certname option.  When I set this option to something like "ca-foo.bar.com" and restart the puppet master, I do see a new certificate generated, however, I get errors on the client side stating that the cert is incorrect "Could not retrieve catalog from remote server: hostname was not match with the server certificate".  Any suggestions?

Nan Liu

unread,
Sep 14, 2010, 2:02:54 PM9/14/10
to puppet...@googlegroups.com
On Tue, Sep 14, 2010 at 9:35 AM, M C <mae...@gmail.com> wrote:
I'm trying to use puppet with passenger as well.  I'm running puppet 2.6.1 and I'm running into the issue mentioned under the troubleshooting section of http://projects.reductivelabs.com/projects/puppet/wiki/Using_Passenger.  The instructions there are very vague.  I've tried adding the ca_name setting to puppet.conf on the puppet master, but it doesn't seem to have any effect.  I took a look at http://docs.puppetlabs.com/references/stable/configuration.html and there does not appear to be a ca_name option.  On the other hand, there is a certname option.  When I set this option to something like "ca-foo.bar.com" and restart the puppet master, I do see a new certificate generated, however, I get errors on the client side stating that the cert is incorrect "Could not retrieve catalog from remote server: hostname was not match with the server certificate".  Any suggestions?

What's the output of puppetd --genconfig | grep "server =" ? By default puppet agent connects to the puppet master named "puppet".

Try setting certdnsname=puppet:puppet.bar.com (include the output of server =... if it's not puppet). I'm guessing the client is is resolving puppet master through a DNS cname, puppet.bar.com => ca-foo.bar.com. The certificate X509v3 Subject Alternative Name should include all possible DNS cname for the puppet master.

You can examine the puppet master certificate using the command:
openssl x509 -text -in /var/lib/puppet/ssl/certs/${puppetmaster_fqdn}.pem

certname configures the certificate CN= and in your case should display:
Subject: CN=ca-foo.bar.com

certdnsname configures the following section:
X509v3 Subject Alternative Name:
                DNS:puppet, DNS:puppet.bar.com

Thanks,

Nan

M C

unread,
Sep 14, 2010, 2:53:57 PM9/14/10
to puppet...@googlegroups.com
Nan,

The puppet master is running on a machine called admin.  We have a cname that resolves puppet.bar.com to admin.baz.bar.com.  I've checked the certificate and it shows the following:

Subject: CN=admin.baz.bar.com

X509v3 Subject Alternative Name:
DNS:puppet, DNS:admin.baz.bar.com, DNS:puppet.baz.bar.com

I added the following line to /etc/puppet/puppet.conf and restarted the puppet master:

certdnsname = puppet:puppet.bar.com:admin.baz.bar.com

Restarting the puppet master with the certdnsname option set did not change the certificate in /var/lib/puppet/ssl/certs/admin.baz.bar.com at all.

My understanding from the documentation is that the issue was with ca.pem.  Is that not the case?  Is there some trick to get puppet to regenerate the certs properly?  From what I've been able to find, this seems to be at least partially related to Bug #4226.  Please let me know what I can do to get puppet to work with passenger as we're rapidly approaching the point where we'd like to roll this out, but WEBbrick isn't going to satisfy our needs.


--

Nan Liu

unread,
Sep 14, 2010, 5:03:15 PM9/14/10
to puppet...@googlegroups.com
On Tue, Sep 14, 2010 at 11:53 AM, M C <mae...@gmail.com> wrote:
Restarting the puppet master with the certdnsname option set did not change the certificate in /var/lib/puppet/ssl/certs/admin.baz.bar.com at all.

My understanding from the documentation is that the issue was with ca.pem. 

If that's the case, the options I provided wasn't addressing the right certificate.

Is that not the case?  Is there some trick to get puppet to regenerate the certs properly?  From what I've been able to find, this seems to be at least partially related to Bug #4226. 

If the problem is related to 4226, you just need to specify ca_name option when running puppetmaster for the first time. Once the ca.pem file is created it won't replace it:

puppetmasterd -v --ca_name="Puppet CA puppet.bar.com"

Issuer: CN=Puppet CA puppet.bar.com
...
X509v3 Key Usage:
                Certificate Sign, CRL Sign

I would backup the ssl directory first.

Thanks,

Nan

M C

unread,
Sep 15, 2010, 9:29:02 AM9/15/10
to puppet...@googlegroups.com
Nan,

Thanks so much for your help.  This was in fact the issue.  I shut down the puppet master, backed up the /var/lib/puppet/ssl directory, and ran "puppet master -v --ca_name="Puppet CA puppet.bar.com".  After that ran, I checked the SSL certs using the openssl command and things looked as expected.  I was then able to start the puppet master withing apache/passenger and after re-signing certificates for the clients, they're able to run against the passenger-enclosed puppet master.



Thanks,

Nan

--

Gavin

unread,
Sep 29, 2010, 7:58:43 AM9/29/10
to puppet...@googlegroups.com

Hi Stefan,

Thanks for the pointers however I am still not coming right with this.

I still get the 'File does not exist' error: File does not exist:
/usr/share/puppet/rack/puppetmasterd/public/production

My installed packages look almost identical to yours:-

ii apache2-mpm-worker 2.2.9-10+lenny8
ii libapache2-mod-passenger 2.2.11debian-1
ii puppetmaster 2.6.0-4
ii librack-ruby1.8 1.1.0-4
ii rails 2.1.0-7

My Apache vhost is confugured as follows:-

PassengerHighPerformance on
PassengerMaxPoolSize 12
PassengerPoolIdleTime 1500
# PassengerMaxRequests 1000
PassengerStatThrottleRate 120
RackAutoDetect Off
RailsAutoDetect Off


Listen 8140
<VirtualHost *:8140>

SSLEngine on
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP
SSLCertificateFile
/var/lib/puppet/ssl/certs/puppet.issecurity.co.za.pem
SSLCertificateKeyFile
/var/lib/puppet/ssl/private_keys/puppet.issecurity.co.za.pem
SSLCertificateChainFile /var/lib/puppet/ssl/ca/ca_crt.pem
SSLCACertificateFile /var/lib/puppet/ssl/ca/ca_crt.pem
# CRL checking should be enabled; if you have problems with Apache


complaining about the CRL, disable the next line
SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
SSLVerifyClient optional
SSLVerifyDepth 1
SSLOptions +StdEnvVars

# The following client headers allow the same configuration to


work with Pound.
RequestHeader set X-SSL-Subject %{SSL_CLIENT_S_DN}e
RequestHeader set X-Client-DN %{SSL_CLIENT_S_DN}e
RequestHeader set X-Client-Verify %{SSL_CLIENT_VERIFY}e

PassengerRoot /usr
PassengerRuby /usr/bin/ruby
RailsAutoDetect On

#RackAutoDetect On
DocumentRoot /usr/share/puppet/rack/puppetmasterd/public/
RackBaseURI /


<Directory /usr/share/puppet/rack/puppetmasterd/>
Options None
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>

~
Here is what my config.ru looks like:

# a config.ru, for use with every rack-compatible webserver.
# SSL needs to be handled outside this, though.

# if puppet is not in your RUBYLIB:
# $:.unshift('/opt/puppet/lib')

$0 = "puppetmasterd"
require 'puppet'

# if you want debugging:
# ARGV << "--debug"

ARGV << "--rack"
require 'puppet/application/puppetmasterd'


# we're usually running inside a Rack::Builder.new {} block,
# therefore we need to call run *here*.

run Puppet::Application[:puppetmasterd].run

And here are the file permissions:-

puppet:~# ls -lah /usr/share/puppet/rack/puppetmasterd/
total 20K
drwxr-xr-x 4 puppet puppet 4.0K Sep 29 13:54 .
drwxr-xr-x 3 root root 4.0K Sep 1 10:58 ..
-rw-r--r-- 1 puppet puppet 470 Sep 22 16:38 config.ru
drwxr-xr-x 2 puppet puppet 4.0K Jul 28 21:02 public
drwxr-xr-x 2 puppet puppet 4.0K Jul 28 21:02 tmp

I tried to play around with all of the options in the apache config,
ie: On/Off, doc root, etc, and no matter what I do I still get the
same error.

I upped the log level of Apache and can see all the debug logs but the
only useful line in the logs tells me about the error as described
above.

I'm trying to deploy Puppet here in our DC and we have hundreds of
servers to manage, so Passenger is our only option.

Do you or anyone else perhaps have any other pointers that may assist
me in getting to the bottom of this ??

Thanks again for your help so far.

Regards,
Gavin

Patrick

unread,
Sep 29, 2010, 11:35:16 AM9/29/10
to puppet...@googlegroups.com

On Sep 29, 2010, at 4:58 AM, Gavin wrote:

> On 10 September 2010 18:54, Stefan Schlesinger <s...@ono.at> wrote:
>>
>> On Sep 10, 2010, at 15:47 , Gavin wrote:
>>> File does not exist: /usr/share/puppet/rack/puppetmasterd/public/
>>> production.
>>
>> Actually I think I can reproduce your problem when I turn that
>> option off in puppetmaster vhost: RackAutoDetect On
>
> Hi Stefan,
>
> Thanks for the pointers however I am still not coming right with this.
>
> I still get the 'File does not exist' error: File does not exist:
> /usr/share/puppet/rack/puppetmasterd/public/production
>
> My installed packages look almost identical to yours:-
>
> ii apache2-mpm-worker 2.2.9-10+lenny8
> ii libapache2-mod-passenger 2.2.11debian-1
> ii puppetmaster 2.6.0-4
> ii librack-ruby1.8 1.1.0-4
> ii rails 2.1.0-7
>

> Here is what my config.ru looks like:
>
> # a config.ru, for use with every rack-compatible webserver.
> # SSL needs to be handled outside this, though.
>
> # if puppet is not in your RUBYLIB:
> # $:.unshift('/opt/puppet/lib')
>
> $0 = "puppetmasterd"
> require 'puppet'
>
> # if you want debugging:
> # ARGV << "--debug"
>
> ARGV << "--rack"
> require 'puppet/application/puppetmasterd'
> # we're usually running inside a Rack::Builder.new {} block,
> # therefore we need to call run *here*.
> run Puppet::Application[:puppetmasterd].run
>

> Do you or anyone else perhaps have any other pointers that may assist


> me in getting to the bottom of this ??

Looks like it might be http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=593557

Gavin

unread,
Sep 29, 2010, 11:41:05 AM9/29/10
to puppet...@googlegroups.com
On 29 September 2010 17:35, Patrick <kc7...@gmail.com> wrote:
>
> On Sep 29, 2010, at 4:58 AM, Gavin wrote:
>
>> On 10 September 2010 18:54, Stefan Schlesinger <s...@ono.at> wrote:
>>>
>>> On Sep 10, 2010, at 15:47 , Gavin wrote:
>>>> File does not exist: /usr/share/puppet/rack/puppetmasterd/public/
>>>> production.
>

Ok, so I have managed to resolve the issue that I was having by
totally un-installing Puppet, rack, rails and passenger, and upgrading
my entire Debian server to 'testing' and reinstalling.

I can't say exactly what the issue was but it seems to have been a
conflicting/older package.

Thanks to all for the help and pointers!! Now to get back to this
installation!!

Regards,
Gavin

Jeff McCune

unread,
Sep 29, 2010, 3:33:14 PM9/29/10
to puppet...@googlegroups.com
On Wed, Sep 29, 2010 at 4:58 AM, Gavin <netma...@gmail.com> wrote:
[snip]

> Here is what my config.ru looks like:
>
> # a config.ru, for use with every rack-compatible webserver.
> # SSL needs to be handled outside this, though.
>
> # if puppet is not in your RUBYLIB:
> # $:.unshift('/opt/puppet/lib')
>
> $0 = "puppetmasterd"
> require 'puppet'
>
> # if you want debugging:
> # ARGV << "--debug"
>
> ARGV << "--rack"
> require 'puppet/application/puppetmasterd'
> # we're usually running inside a Rack::Builder.new {} block,
> # therefore we need to call run *here*.
> run Puppet::Application[:puppetmasterd].run

I notice you're using Puppet 2.6 and the config.ru you pasted does not
work with puppet 2.6 but did work with puppet 0.25.x.

The config.ru file contents have changed for version 2.6. This is a
result of the change in Application controller names and the shift to
a single executable.

Take a look at the config.ru file that ships with the puppet 2.6.1
source code for information about how it's changed. If you have any
questions, I'm happy to help.

The file you're looking for is in ext/rack/files/config.ru

--
Jeff McCune
http://www.puppetlabs.com/

Nigel Kersten

unread,
Sep 29, 2010, 11:26:24 PM9/29/10
to puppet...@googlegroups.com

We should be shipping the correct config.ru for you in the 2.6.x
Debian packages. Did that not work?


>
> Regards,
> Gavin

Gavin

unread,
Sep 30, 2010, 4:46:54 AM9/30/10
to puppet...@googlegroups.com
On 30 September 2010 05:26, Nigel Kersten <ni...@explanatorygap.net> wrote:
>
> We should be shipping the correct config.ru for you in the 2.6.x
> Debian packages. Did that not work?

Hi Nigel,

Yes, I got the new config.ru file with the Debian package, my mistake
was starting off with the Lenny packages then trying to selectively
install puppet and it's dependencies from the 'testing' branch.

I got fed up and uninstalled puppet and it's dependencies completely,
upgraded the entire server to testing, and installed puppet again.

All started working perfectly after that.

Thanks to all for the help and advice!!

Regards,
Gavin

Reply all
Reply to author
Forward
0 new messages