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
# 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' ]
  $default_packages = ['postgresql-devel', 'sqlite-devel', 'ImageMagick-devel', 'ruby-devel', 'mysql-devel' ]

  case $::osfamily {
    'Debian':   { $packages = concat($generic_packages, $debian_packages) }
    'RedHat':   {
      case $::operatingsystem {
        'Fedora': {
          if is_integer($::operatingsystemrelease) and $::operatingsystemrelease >= 19 or $::operatingsystemrelease == 'Rawhide' {
              $provider = 'mariadb-devel'
            } else {
              $provider = 'mysql-devel'
            }
        }
        /^(RedHat|CentOS|Scientific)$/: {
          if $::operatingsystemmajrelease >= 7 {
              $provider = 'mariadb-devel'
            } else {
              $provider = 'mysql-devel'
            }
        }
        default: {
          $provider = 'mysql-devel'
        }
      }
      $redhat_packages = ['postgresql-devel', 'sqlite-devel', 'ImageMagick-devel', 'ruby-devel', $provider ]
      $packages = concat($generic_packages, $redhat_packages)
    }
    default:    { $packages = concat($generic_packages, $default_packages) }
  }

  ensure_packages($packages)

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

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

  exec { 'bundle_redmine':
    command => "bundle install --gemfile ${redmine::install_dir}/Gemfile --without development test postgresql sqlite",
    creates => "${redmine::install_dir}/Gemfile.lock",
    require => [ Package['bundler'], Package['make'], Package['gcc'] ],
  }

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