Forge Home


10,316 latest version

2.6 quality score

Version information

  • 0.0.3 (latest)
  • 0.0.2
  • 0.0.1
released Dec 7th 2012

Start using this module

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

Add this module to your Puppetfile:

mod 'yguenane-git', '0.0.3'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add yguenane-git
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install yguenane-git --version 0.0.3

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.



yguenane/git — version 0.0.3 Dec 7th 2012


The purpose of this puppet-git module is to manage git installation on a server.

This module allows one to setup git over two different protocols :

  • SSH
  • GIT
  • HTTP (Hopefully coming soon)


One can install git either from the package repository one have set up on his server or from source for a specific version


include git

This example will install the latest version of git from the repositories


class {'git':
  provider  => 'source',
  version   => '1.8.0',

This example will download / compile and install the version 1.8.0 from the source code



The module creates the git user/group and manages the content of the authorized_keys file of the git $ssh_user

There is two line commented on the ssh.pp file, configure correctly a hiera.yml to use anything but hiera_puppet as a backend (known issue with definition) and uncomment those two lines to manager your SSH authorized keys dynamically

git::ssh {'git' :
  user      => 'git',
  base_path => '/opt/git',


The module create a public_git user/group, create a folder that will be the base repo and sets the git daemon as a xinetd service.

git daemon arguments can be found in /etc/xinetd.d/git

Note : Even though it is a definition - it can have multiple instances - this would require knowledge on how inetd works and /etc/services works. It is recommended to use it as a class - singleton.

git::git {'public_git' :
  user      =>  'public_git',
  base_path =>  '/opt/public_git',


Hopefully coming soon