puppet post install launchd osx

318 views
Skip to first unread message

Rudy McComb

unread,
Feb 10, 2014, 6:55:49 PM2/10/14
to puppet...@googlegroups.com
I'm having a an issue with running puppet as launchd. I'm using this http://docs.puppetlabs.com/guides/files/com.puppetlabs.puppet.plist and on some macs it will run and start at reboot and on others it doesnt.

According to the logs puppet is exiting with a code of 1.  What can i due to ensure that the puppet launchd mod runs uninhibited.


I've also tried using a modified version of this 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>EnvironmentVariables</key>
        <dict>
                <key>PATH</key>
                <string>/sbin:/usr/sbin:/bin:/usr/bin</string>
                <key>RUBYLIB</key>
                <string>/usr/lib/ruby/site_ruby/1.8/</string>
        </dict>
        <key>Label</key>
        <string>com.puppetlabs.puppet</string>
        <key>KeepAlive</key>
        <true/>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/bin/puppet</string>
                <string>agent</string>
                <string>--verbose</string>
                <string>--no-daemonize</string>
                <string>--logdest</string>
                <string>console</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>ServiceDescription</key>
        <string>Puppet Daemon</string>
        <key>ServiceIPC</key>
        <false/>
        <key>StandardErrorPath</key>
        <string>/var/log/puppet/puppet.err</string>
        <key>StandardOutPath</key>
        <string>/var/log/puppet/puppet.out</string>
</dict>
</plist> 

Moses Mendoza

unread,
Feb 10, 2014, 7:49:54 PM2/10/14
to puppet...@googlegroups.com
> --
> 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...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/puppet-users/0b798c59-e87c-4dde-886f-885b1a2045ea%40googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.

Hi Ryan,

Unfortunately the plist at that link is a little out of date. The
ServiceIPC and ServiceDescription keys aren't supported in recent
versions of OSX. You can just remove them, really. Also, how did you
install puppet, which version of puppet did you install, and on what
version of OSX? Puppet >= 3.4.0 installed via dmg lives in
/Library/Ruby/Site, to make it compatible with ruby 2 on Mavericks, so
you may want to update the plist to reflect this. Puppet < 3.4.0
installed via dmg is installed to the "RUBYLIB" in your plist.
Finally, if you're using mavericks and installing from dmg, you'll
need facter 1.7.5-rc1 or later (I believe we are shipping the final
version of facter 1.7.5 very soon).

--
Moses Mendoza
Puppet Labs

Join us at PuppetConf 2014, September 23-24 in San Francisco -
http://bit.ly/pupconf14

Rudy McComb

unread,
Feb 10, 2014, 8:14:57 PM2/10/14
to puppet...@googlegroups.com
Hi Moses,

I'm on Puppet 3.4.2, Facter 1.7.4, Mavericks 10.9.1 and installed with the dmg. I also keep puppet updated 
using gem update puppet. 

ill install puppet and facter with the dmg and then gem install puppet so that it creates the nec users groups etc for puppet.

I have updated the plist to point to the newer version of ruby since upgraded macs keep both directories.

Moses Mendoza

unread,
Feb 11, 2014, 4:42:31 PM2/11/14
to puppet...@googlegroups.com
Hi Rudy,

Installing puppet,facter via dmg and also via gem is almost certainly
a contributing factor to your issues. The dmg installs to ruby's
sitedir (in the load path) and the gem installs to rubygems' gem dir
(also in the load path). This means you have two installs of puppet at
separate versions in the same ruby load path. This will break things!
Charlie explains briefly why this won't work, here:
https://projects.puppetlabs.com/issues/19670. You should install from
gem or dmg, but not both:) Also, just to be clear, the dmg creates the
puppet user, but the gem does not. Finally, facter 1.7.5 was released
yesterday, which has mavericks compatibility when installed via dmg.
Also, my apologies for calling you 'Ryan'!

cheers
Moses
> https://groups.google.com/d/msgid/puppet-users/091b78d2-561c-409c-984c-175fca39211b%40googlegroups.com.
>
> For more options, visit https://groups.google.com/groups/opt_out.



Rudy McComb

unread,
Feb 11, 2014, 5:23:20 PM2/11/14
to puppet...@googlegroups.com

Moses, 

can i rm puppet facter and hiera from the gem dir (usr/lib/ruby/site_ruby) w/o breaking puppet dmg installed in correct location?

or is there another remedy you propose?

thanks

Moses Mendoza

unread,
Feb 11, 2014, 8:21:59 PM2/11/14
to puppet...@googlegroups.com
Hi Rudy,

To uninstall a gem, just do `gem uninstall <gem name(s)>`, e.g. `gem uninstall puppet.`.

Just to clarify, the directory you pointed out isn't the gem dir, it's the Mavericks system ruby site dir.

As you discovered, OSX, the path "/usr/lib/ruby/site_ruby" is actually a symlink to the directory "/Library/Ruby/Site."  This directory is where the dmg's of puppet, hiera, and facter install to (as shown in your image). Prior to Puppet 3.4.0 and Facter 1.7.5, the dmgs would install in the ruby-version-specific subdirectory, "/Library/Ruby/Site/1.8", but we've moved away from that, as "/Library/Ruby/Site" is in the load path in OSX versions going awhile back and won't break when ruby versions change.

The gem dir is actually a separate location, where rubygems stores information about itself, including all of your installed gems. To see the system gem dir, do `/usr/bin/ruby -e 'puts Gem::dir'`. This should show you "/Library/Ruby/Gems/2.0.0/", which contains a subdirectory ("gems") with all of your installed gems. Hope that helps.

Moses



For more options, visit https://groups.google.com/groups/opt_out.

Rudy McComb

unread,
Feb 12, 2014, 5:19:49 PM2/12/14
to puppet...@googlegroups.com
Hi Moses,

I was able to successfully uninstall the previous versions of gem installed 'puppet'.

i did reinstall with dmg but and still having puppetd exit with a code of 1.

what am i doing wrong?

here is my updated plist and manifest to start launchctl

Rudy McComb

unread,
Feb 13, 2014, 8:14:24 PM2/13/14
to puppet...@googlegroups.com
Hi Moses,

I was able to successfully uninstall the previous versions of gem installed 'puppet'.

i did reinstall with dmg but and still having puppetd exit with a code of 1.

what am i doing wrong?

here is my updated plist and manifest to start launchctl


--
You received this message because you are subscribed to a topic in the Google Groups "Puppet Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/puppet-users/Du5xrfZR9V0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to puppet-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/93eb709f-dd2a-4626-bcb2-f7b96e44cd87%40googlegroups.com.

Matthaus Owens

unread,
Feb 13, 2014, 10:05:11 PM2/13/14
to Puppet Users
Rudy,

You also need to uninstall the facter and hiera gems, as they may be contributing to your issues. Aside from that, what happens if you run `puppet agent --no-daemonize --verbose --logdest console`? Does it also error out? If so, how?



For more options, visit https://groups.google.com/groups/opt_out.



--
Matthaus Owens
Release Manager, Puppet Labs

Rudy McComb

unread,
Mar 4, 2014, 12:58:34 AM3/4/14
to puppet...@googlegroups.com
Matthaus,

Here is my output from that run

cabimd011032:~ madmin$ sudo puppet agent --no-daemonize --verbose --logdest console
Notice: Starting Puppet client version 3.4.3
Error: Could not run: Could not create PID file: /var/lib/puppet/run/agent.pid
cabimd011032:~ madmin$

Rudy McComb

unread,
Mar 5, 2014, 9:19:25 PM3/5/14
to puppet...@googlegroups.com
Hi Moses,

I was able to successfully uninstall the previous versions of gem installed 'puppet'.

i did reinstall with dmg but and still having puppetd exit with a code of 1.

what am i doing wrong?

here is my updated plist and manifest to start launchctl


Matthaus Owens

unread,
Mar 5, 2014, 9:37:25 PM3/5/14
to Puppet Users
Rudy,
So this error seems to be your trouble:

Error: Could not run: Could not create PID file: /var/lib/puppet/run/agent.pid

Does the directory /var/lib/puppet/run exist (or /var/lib/puppet)? What are the permissions, who owns it?



For more options, visit https://groups.google.com/groups/opt_out.



--
Matthaus Owens
Release Manager, Puppet Labs

Join us at PuppetConf 2014, September 23-24 in San Francisco - http://bit.ly/pupconf14
Register now and save $350!
Reply all
Reply to author
Forward
0 new messages