distributing updates to multiple puppet masters (Subversion)

288 views
Skip to first unread message

Scott Merrill

unread,
May 2, 2012, 10:18:28 AM5/2/12
to puppet...@googlegroups.com
For folks with multiple Puppet Masters, how are you pushing out
manifest and module updates to them?

We intend to use Subversion for our version control. Obviously one
option would be to have each Puppet Master perform a checkout of the
svn repo. We could schedule periodic updates via cron. Or we could use
a post-commit hook to rsync the updates out from the repo to each
Puppet Master.

What are you doing? What works well, and what headaches have you experienced?

Thanks,
Scott

Luke Tislow

unread,
May 2, 2012, 10:31:21 AM5/2/12
to puppet...@googlegroups.com
I use a combination of git and puppet itself to push to productions, but git for dev/qa puppet masters. Puppet Pro has nice examples of git with environments but here is a link also. 


--
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.


Gary Larizza

unread,
May 2, 2012, 11:13:17 AM5/2/12
to puppet...@googlegroups.com
Many people I talk to prefer postcommit hooks to do this work.  We had an on-site engagement where we wrote an MCollective agent that would do all the heavy Git lifting, and the postcommit would call the MCollective agent.  This also let you quickly move your Masters to different commits as-needed (so long as you had privileges to access the message queue with MCollective).

--
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.




--

Gary Larizza
Professional Services Engineer
Puppet Labs

Aaron Grewell

unread,
May 2, 2012, 12:05:21 PM5/2/12
to puppet...@googlegroups.com
Our SVN repo box is shared with some other projects so I haven't
implemented a post-commit hook at this point. We used to have Puppet
perform the checkouts, but since a commit may break Puppet's ability to
run it didn't seem like the best way. For now we're doing it via
MCollective.

Bernd Adamowicz

unread,
May 3, 2012, 7:56:04 AM5/3/12
to puppet...@googlegroups.com
Yes, actually each of my masters has its own SVN-URL checked out with the appropriate configuration. A cron job is doing updates in 5 minute intervals. Quite easy and works very reliable.

Bernd

> -----Ursprüngliche Nachricht-----
> Von: puppet...@googlegroups.com [mailto:puppet-
> us...@googlegroups.com] Im Auftrag von Scott Merrill
> Gesendet: Mittwoch, 2. Mai 2012 16:18
> An: puppet...@googlegroups.com
> Betreff: [Puppet Users] distributing updates to multiple puppet masters
> (Subversion)
> --
> 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+un...@googlegroups.com.

davidem...@gmail.com

unread,
Feb 26, 2013, 9:04:03 AM2/26/13
to puppet...@googlegroups.com
We use puppet and a module called vcsdeploy to deploy our modules to the puppet masters using a puppet run on the puppetmaster.  We insist that all modules are tagged and so our nodes file fotr the puppetmaster node looks like this: -

node 'puppetmaster' {

  # ONLY DEPLOY tagged versions to TEST!!!
  Vcsdeploy {
    path      => '/etc/puppet/environments/test/modules/%%NAME%%',
    provider  => 'svn',
    user      => 'user',
    pass      => '######',
    templates => 'off',
  }
  vcsdeploy {  'centrify':
    version => '1.7',
  }
  vcsdeploy {  'wamps_repository':
    version => '1.1',
  }
  vcsdeploy { 'weblogic':
    version => '4.5',
  }
  vcsdeploy { 'motd':
    version => '1.0',
  }
  vcsdeploy { 'ntp_client':
    version => '1.0',
  }

You can find out more about vcsdeploy either on the puppet forge http://forge.puppetlabs.com/pclouds/vcsdeploy or here http://www.practicalclouds.com/content/guide/pclouds-vcsdeploy-deploy-stuff

regards



Dave
Reply all
Reply to author
Forward
0 new messages