Forge Home


Deploys VCS repos


9,884 latest version

1.5 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 0.0.2 (latest)
  • 0.0.1
released Jun 24th 2014

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'gbrown-vcs_deploy', '0.0.2'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add gbrown-vcs_deploy
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install gbrown-vcs_deploy --version 0.0.2

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



gbrown/vcs_deploy — version 0.0.2 Jun 24th 2014

VCS Deploy puppet module

A puppet module to deploy vcs repos onto a server.


The config class takes $repos as a parameter which should be a hash of vscrepo types. This is done as the class wraps this with create_resources function to allow for creation of an arbitrary number of git repos. Note for the vcsrepo type the namevar is the location of where the repo will be checked out.


Deploy two git repos from

  • The foo repo is deployed to /opt/code_foo from origin/master

  • The bar repo is deployed to /opt/code_bar from the 2.0 tag

include vcs_deploy

$repos =  {
            '/opt/code_foo' => {
              source  => 'git://',
            '/opt/code_bar' => {
              source    => 'git://',
              revision  => '2.0',

As this module is essentially just wrapping vcsrepo it is probably a good idea to check out for more details.


By default the provider for vcsrepo is git. This can be overridden in the $repos parameter to use SVN for example. Ensure also defaults to latest as the revision provider is intended to be used to specify a branch or commit. The default revision is origin/master. Finally there is also a require metaparameter to ensure the git package is present so vcsrepo has a provider. This is defined in the $vcs parameter, which of course can be changed to an array to ensure both SVN and git are present for example.


This requires the puppetlabs-vcsrepo module as well as puppetlabs-stdlib.