Puppet Class: gitssh

Defined in:
manifests/init.pp

Overview

Class: gitssh

Parameters:

  • basedir (Any) (defaults to: '/var/git')
  • clients (Any) (defaults to: [])
  • package_ensure (Any) (defaults to: present)
  • package_name (Any) (defaults to: 'git')
  • purge_ssh_keys (Any) (defaults to: true)
  • repos (Any) (defaults to: [])


3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'manifests/init.pp', line 3

class gitssh(
  $basedir        = '/var/git',
  $clients        = [],
  $package_ensure = present,
  $package_name   = 'git',
  $purge_ssh_keys = true,
  $repos          = []
  ) {
  package { $package_name:
    ensure => $package_ensure,
  }

  exec { '/bin/echo /usr/bin/git-shell >> /etc/shells':
    unless => '/bin/grep -q \'^/usr/bin/git-shell$\' /etc/shells',
    before => User['git']
  }

  if versioncmp($::puppetversion,'3.6.0') >= 0 {
    User {
      purge_ssh_keys => $purge_ssh_keys,
    }
  } elsif $purge_ssh_keys {
    warning('gitssh::purge_ssh_keys is ignored in Puppet < 3.6.0.')
    warning('To disable this warning, set gitssh::purge_ssh_keys to false.')
  }

  user { 'git':
    ensure     => present,
    home       => $basedir,
    shell      => '/usr/bin/git-shell',
    managehome => true,
    require    => Package[$package_name],
  }

  if size($clients) > 0 {
    create_resources(gitssh::client, $clients)
  }

  if size($repos) > 0 {
    create_resources(gitssh::repo, $repos)
  }
}