phpservermon/puphpet/puppet/modules/vcsrepo/README.GIT.markdown

2.4 KiB

Using vcsrepo with Git

To create a blank repository

Define a vcsrepo without a source or revision:

vcsrepo { "/path/to/repo":
  ensure => present,
  provider => git
}

If you're defining this for a central/"official" repository, you'll probably want to make it a "bare" repository. Do this by setting ensure to bare instead of present:

vcsrepo { "/path/to/repo":
    ensure => bare,
    provider => git
}

To clone/pull a repository

To get the current [master] HEAD:

vcsrepo { "/path/to/repo":
    ensure => present,
    provider => git,
    source => "git://example.com/repo.git"
}

For a specific revision or branch (can be a commit SHA, tag or branch name):

vcsrepo { "/path/to/repo":
    ensure => present,
    provider => git,
    source => 'git://example.com/repo.git',
    revision => '0c466b8a5a45f6cd7de82c08df2fb4ce1e920a31'
}

vcsrepo { "/path/to/repo":
    ensure => present,
    provider => git,
    source => 'git://example.com/repo.git',
    revision => '1.1.2rc1'
}

vcsrepo { "/path/to/repo":
    ensure => present,
    provider => git,
    source => 'git://example.com/repo.git',
    revision => 'development'
}

Check out as a user:

vcsrepo { "/path/to/repo":
    ensure => present,
    provider => git,
    source => 'git://example.com/repo.git',
    revision => '0c466b8a5a45f6cd7de82c08df2fb4ce1e920a31',
    user => 'someUser'
}

Keep the repository at the latest revision (note: this will always overwrite local changes to the repository):

vcsrepo { "/path/to/repo":
    ensure => latest,
    provider => git,
    source => 'git://example.com/repo.git',
    revision => 'master',
}

For sources that use SSH (eg, username@server:...)

If your SSH key is associated with a user, simply fill the user parameter to use his keys.

Example:

user => 'toto'  # will use toto's $HOME/.ssh setup

Otherwise, manage your SSH keys with Puppet and use require in your vcsrepo to ensure they are present. For more information, see the require metaparameter documentation1.

More Examples

For examples you can run, see examples/git/