puppet #2

Supports: oneiric
Add to new model

Description

This charm deploys the startup script and compatbility scripts for
the puppet agent, which is the process responsible for configuring the
local node. Puppet lets you centrally manage every important aspect
of your system using a cross-platform specification language that
manages all the separate elements normally aggregated in different
files, like users, cron jobs, and hosts, along with obviously discrete
elements like packages, services, and files. Puppet's simple
declarative specification language provides powerful classing
abilities for drawing out the similarities between hosts while
allowing them to be as specific as necessary, and it handles
dependency and prerequisite relationships between objects clearly and
explicitly.


This subordinate charm can be used to apply system level policy on top
of any juju charms deployed, using puppet.

In order to deploy on top of the wordpress+mysql example:

This should give you wordpress:

juju deploy wordpress
juju deploy mysql
juju add-relation mysql wordpress

Now add puppet to wordpress and mysql

juju deploy puppet
juju add-relation puppet wordpress
juju add-relation puppet mysql

If you have an external puppet master, note that you will have to use

some method to classify nodes automatically. The yaml from 'juju status'

should be parsable into an external node classifier.

juju set puppet external-puppetmaster=puppet.yourdomain.com

If you need puppet set up:

juju deploy puppetmaster

... setup puppet classes 'mysql' and 'wordpress'

juju ssh puppetmaster/0

This next command will result in all nodes being put into a class

that is named after their primary service, so the example will have,

as suggested, two classes, mysql and wordpress.

juju add-relation puppetmaster:puppetmaster puppet:puppetmaster

That should end up with puppet agent running on the wordpress and
mysql nodes, pointed at either your external puppetmaster, or the
newly deployed puppetmaster.


Configuration

external-puppetmaster
(string) This will be the external puppet master server string. If a puppet master is related, this will be ignored.