Puppet Class: redmine::install

Defined in:
manifests/install.pp

Overview

Class redmine::install



2
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'manifests/install.pp', line 2

class redmine::install {
  # Install dependencies
  $generic_packages = ['make', 'gcc']
  $debian_packages  = ['libmysql++-dev', 'libmysqlclient-dev', 'libmagickcore-dev', 'libmagickwand-dev', 'ruby-dev', 'libpq-dev',
  'imagemagick']
  $redhat_packages  = ['postgresql-devel', 'sqlite-devel', 'ImageMagick-devel', 'ruby-devel', 'mariadb-devel']

  case $facts['os']['family'] {
    'Debian':   {
      $packages = concat($generic_packages, $debian_packages)
      $packages_require = undef
    }
    'RedHat':   {
      $packages = concat($generic_packages, $redhat_packages)

      if $facts['os']['name'] == 'CentOS' {
        # Required for ImageMagick-devel dependencies
        file_line { 'CentOS-Powertools-enabled':
          path  => '/etc/yum.repos.d/CentOS-PowerTools.repo',
          line  => 'enabled=1',
          match => '^enabled=(0|1)$',
        }

        $packages_require = File_line['CentOS-Powertools-enabled']
      } else {
        $packages_require = undef
      }
    }
    default:    { $packages = concat($generic_packages, $redhat_packages) }
  }

  ensure_packages($packages, { 'require' => $packages_require })

  case $redmine::database_adapter {
    'postgresql' : {
      $without_gems = 'development test sqlite mysql'
    }
    default: {
      $without_gems = 'development test sqlite postgresql'
    }
  }

  Exec {
    cwd  => '/usr/src',
    path => ['/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/', '/usr/local/bin/'],
  }

  package { 'bundler':
    ensure   => present,
    provider => gem,
  }

  exec { 'bundle_redmine':
    command => "${redmine::bundle} install --gemfile ${redmine::install_dir}/Gemfile --without ${without_gems}",
    creates => "${redmine::install_dir}/Gemfile.lock",
    require => [Package['bundler'], Package['make'], Package['gcc'], Package[$packages]],
    notify  => Exec['rails_migrations'],
  }

  create_resources('redmine::plugin', $redmine::plugins)

  if $redmine::provider != 'wget' {
    exec { 'bundle_update':
      cwd         => $redmine::install_dir,
      command     => "${redmine::bundle} update",
      refreshonly => true,
      subscribe   => Vcsrepo['redmine_source'],
      notify      => Exec['rails_migrations'],
      require     => Exec['bundle_redmine'],
    }
  }
}