On Fri, Jul 17, 2015 at 6:51 PM, Felix Frank <
felix.fr...@alumni.tu-berlin.de> wrote:

>  Hey Ramin and Michael,
>
> thanks for your replies.
>
> On 07/17/2015 11:53 PM, Ramin K wrote:
>
> I wrote a how-to on using different Rubies for your Puppet master and am
> using it to run a Ruby 2.1.6/Puppet 3.7.x master. I would attempt something
> similar in your case.
>
>
> http://ask.puppetlabs.com/question/16983/performance-improvements-without-updating-to-puppet-server/
>
> Install Passenger 4.x via packages. Doesn't need to be built on the Ruby
> you plan to use.
> Point to /opt/puppetlabs ruby via PassengerRuby vhost directive.
>
> Other than those two steps, it sounds like you're pretty close.
>
>
> Yes, this does look pretty similar to what I attempted. Thanks for this
> guide!
> Things I learend:
> 1. Use the rack gem (as in your Gemfile) - this actually enabled
> nginx/passenger to load Puppet for me.
> 2. Passenger 5 may have issues.
>
> The latter is a little tough to solve with nginx, because I rely on
> packages from Phusion themselves. Those currently come with Passenger 5.
> However, I can reproduce the problems with Passenger 4 on an older Debian 7
> installation. So I'm ruling out Passenger 5 as the immediate issue at this
> time.
>

I had it working with passenger-5.0.7 last time I tested, so I don't think
it's passenger.

>
>
> On 07/18/2015 12:32 AM, Michael Stahnke wrote:
>
> For the AIO, you can certainly get passenger working. (Although we'd love
> to hear why PuppetServer isn't working or what you want).
>
>
> Oh, puppetserver is working like a charm. I'm putting together alternative
> instructions for nginx/passenger though, for those who have reservations
> against the JVM.
>
> This worked great with Puppet 3.x, so I hoped I could repeat with Puppet
> 4, but it proves more challenging.
>
>
>  Config files on a gist:
>
>  https://gist.github.com/stahnma/cf89dfa79b053f138eb1
>
>  This should get you most of the way there. You might have to sub out
> passenger versions or something.
>
>  export PATH=/opt/puppetlabs/puppet/bin:$PATH
> # install passenger
>  gem install --no-rdoc --no-ri passenger
> # you need gcc, apr or build-essential installed
>  # this command is different if using nginx
> passenger-install-apache2-module --languages ruby -a
>
>
> I went for nginx packages from Phusion. From what I understand, regular
> nginx cannot just load Passenger as a module. But I may look into
> alternative ways of installation if this doesn't work.
>
>  # create a puppet user
>  # Add our user and group
> if getent group 'puppet' &> /dev/null; then
>   /usr/sbin/groupmod  --system 'puppet'
> else
>   /usr/sbin/groupadd  --system 'puppet'
> fi
> if getent passwd 'puppet' &> /dev/null; then
>   /usr/sbin/usermod  --system --gid 'puppet' --home
> '/opt/puppetlabs/server/data/puppetmaster' --shell '/usr/sbin/nologin'
> 'puppet'
> else
>  /usr/sbin/useradd  --system --gid 'puppet' --home
> '/opt/puppetlabs/server/data/puppetmaster' --shell '/usr/sbin/nologin'
> 'puppet'
> fi
>
>
> Is it a design decision that the puppet-agent AIO package doesn't handle
> this?
>

Yes. In the most typical use cases the Puppet User isn't required on the
endpoint. Some people didn't like a new user everywhere, so we now put it
in only when something needs it (e.g. puppetserver).

>
> I realize that WEBrick is deprecated, but support is still there. It
> strikes me as odd that the standalone master cannot operate after AIO
> installation without the user performing the above steps manually.
>

Well, it technically doesn't have to run as puppet, obviously it could be
whatever, that's just the example we gave.

>
> As an aside - as far as I know, the Puppet master runs a catalog on
> startup (before dropping privileges?) so should it not be able to take care
> of this by itself?
>
>  # create public dir
> mkdir -p /opt/puppetlabs/server/data/puppetmaster/public
>  mkdir -p /opt/puppetlabs/server/data/puppetmaster
>  mkdir -p /var/log/puppetlabs/puppetmaster
>
>
> Done.
>
>  chown puppet:puppet /opt/puppetlabs/server/data/puppetmaster/public 
> /opt/puppetlabs/server/data/puppetmaster
> /var/log/puppetlabs/puppetmaster /opt/puppetlabs/server/data/puppetmaster/
> config.ru
>  cp -p ./config.ru /opt/puppetlabs/server/data/puppetmaster/config.ru
>
>
> Where exactly is this config.ru from? Again, it is quite definitely not
> part of the PC1 packages for Debian.
>

This was from a repo I had where I tested that passenger support still
worked again puppet 4. It probably has some deltas from the one on master.
I should probably submit a PR :)

>
>
>   cp -p ./passenger-apache.conf
> /etc/apache2/sites-available/puppet-passenger
>  sed -i 's/__PASSENGER_VERSION__/5.0.16/g
> /etc/apache2/sites-available/puppet-passenger
>
>
> Eh, sure...for nginx there is not much by way of configuration templates.
> I managed to compile one for the original Puppet Essentials book that
> worked with Puppet 3.
>

I honestly know much less about nginx, so I might be less helpful here.

>
> It pretty much works for Puppet 4, but now I get the most informative
> stack ever.
>
> [ 2015-07-18 02:40:57.4131 3254/7fc55d886700 App/Implementation.cpp:303 ]:
> Could not spawn process for application /etc/puppetlabs/puppet/rack: An
> error occured while starting up the preloader.
>   Error ID: 8013a2ba
>   Error details saved to: /tmp/passenger-error-dMKrUn.html
>   Message from application: exit (SystemExit)
>   /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:452:in `exit'
>   /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:452:in
> `rescue in exit_on_fail'
>   /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:438:in
> `exit_on_fail'
>
> /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:66:in
> `execute'
>   config.ru:44:in `block in <main>'
>

That's ruby-speak for "it broke" :)

That pretty much means something isn't right, but difficult to say what.
Does the nginx log have any more details?

>
> (/etc/puppetlabs/puppet/rack is indeed where I created the rack root.)
>
> What I did to get this far without loading errors:
> * change passenger_ruby to /opt/puppetlabs/...
> * created puppet user/group
> * get config.ru from github (current master)
> * install 'rack' gem in /opt/puppetlabs/...
>
> I'm using PC1. Above error gets produced on
> 1. Debian 7 w/ nginx 1.6.1 and Passenger 4.0.52 and
> 2. Debian 8 w/ nginx 1.8.0 and Passenger 5.0.14
>
> Thanks and regards,
> Felix
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to puppet-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/puppet-users/55A9B120.3050409%40Alumni.TU-Berlin.de
> <https://groups.google.com/d/msgid/puppet-users/55A9B120.3050409%40Alumni.TU-Berlin.de?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/CAMto7LLapm%3DR9mE_ip8axfmoN4xqsPHKShkODaUbrazAKqV25Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to