5 Reasons to Attend Puppet Camp



As I tore off the first month of my over-sized school-year calendar I was reminded of my first week at Puppet Labs. I woke up early, made breakfast, and caught a bus into downtown arriving 30 minutes early only to be reminded that I didn’t yet have a key to the office. I plopped down in front of the door to wait for someone else to arrive, and opened my notebook to review the topics for my first official meeting with my new boss. Scrawled in my notebook are limited, and partially illegible jottings I

[ Read more... ]

Puppet Tips&Tricks: Variable variables

Sometimes you want to use variable variables, for instance when you want to iterate over all the ipaddress_* facts that facter found. Using something like ${ipaddress_$if} doesn’t work, though. Inline_template to the rescue! Volcane on IRC suggested the following solution, which works great:

$ifs = split($interfaces,",")

define do_this {
	$mule = "ipaddress_${name}"
	$donkey = inline_template("<%= scope.lookupvar(mule) %>")

	notify { "Found interface $donkey":; }
}

do_this { $ifs:; }

This

[ Read more... ]

- Whats going with Foreman development?

For those of you who think that Foreman development has slowed down a bit, you are probably right....

  • I started a new job last week.
  • I moved a country.
  • I didn't have more than 10" display for a month and a half.

But not to worry, I'll be up to speed in no time (ok.. Maybe a few more weeks :))

Keep on the bugs / feature requests coming, we'll cut out a new version soon.

Thanks,
Ohad

Using puppet’s logging facility

When I am writing code that works together with puppet, I often want to just use Puppet’s logging facility.

I can use puppet’s logging to log to syslog with the following code.

require puppet
Puppet.parse_config
Puppet::Util::Log.level = :info
Puppet::Util::Log.newdestination(:syslog)
Puppet.warning('dude!!!')
Puppet.warning('sweet!!)'

Puppet Camp 2010 – San Francisco now open

Tickets for Puppet Camp in San Francisco are now available here!

Rapid Puppet runs with MCollective

The typical Puppet use case is to run the daemon every 30 minutes or so and just let it manage your machines. Sometimes though you want to be able to run it on all your machines as quick as your puppet master can handle.

This is tricky as you generally do not have a way to cap the concurrency and it’s hard to orchestrate that. I’ve extended the MCollective Puppet Agent to do this for you so you can do a rapid run at roll out time and then go back to the more conservative slow pace once your

[ Read more... ]

GlassFish 3.0.1 on Debian Lenny, Puppet style

Recently, I found a way to make the GlassFish supplied pkg(5) tool run using Debian’s python interpreter and associated libs. I also spent a while trying to package it in a sane way, but I’m afraid I lack the knowledge of Java and Debian package internals to do this properly (I’ve requested the package, though). But in the meantime we still need a nice way to setup GlassFish on a Debian Lenny machine. So I’ve turned to puppet, as usual.

You can find the module here:

[ Read more... ]

Case Studies: Clickability & MorphLabs

We are always eager to share the experiences our customers have using Puppet to automate their infrastructure. We recently added two more case studies.

  • Clickability: Puppet helps Clickability dramatically increase their speed of deployment and ensure consistency across all servers. Download the case study
  • MorphLabs: MorphLabs uses Puppet for configuration management automation and to quickly deliver custom cloud services. Download the case study

From the start, we saw Puppet as a key enabler of the

[ Read more... ]

Puppet Camp – San Francisco 2010

Making machine metadata visible

I’m quite the fan of data, metadata and querying these to interact with my infrastructure rather than interacting by hostnames and wanted to show how far I am down this route.

This is more an iterative ongoing process than a fully baked idea at this point since the concept of hostnames is so heavily embedded in our Sysadmin culture. Today I can’t yet fully break away from it due to tools like nagios etc still relying heavily on the hostname as the index but these are things that will

[ Read more... ]