Puppet Class: confluence::install

Defined in:
manifests/install.pp

Overview

Class: confluence::install

Install confluence, See README.md for more.



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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'manifests/install.pp', line 5

class confluence::install {

  group { $confluence::group: ensure => present, gid => $confluence::gid } ->

  user { $confluence::user:
    comment          => 'Confluence daemon account',
    shell            => $confluence::shell,
    home             => $confluence::homedir,
    password         => '*',
    password_min_age => '0',
    password_max_age => '99999',
    managehome       => true,
    system           => true,
    uid              => $confluence::uid,
    gid              => $confluence::gid,
  }

  if ! defined(File[$confluence::installdir]) {
    file { $confluence::installdir:
      ensure => 'directory',
      owner  => $confluence::user,
      group  => $confluence::group,
    }
  }

  $file = "atlassian-${confluence::product}-${confluence::version}.${confluence::format}"

  if $confluence::staging_or_deploy == 'staging' {

    require staging

    if ! defined(File[$confluence::webappdir]) {
      file { $confluence::webappdir:
        ensure => 'directory',
        owner  => $confluence::user,
        group  => $confluence::group,
      }
    }

    staging::file { $file:
      source  => "${confluence::downloadURL}/${file}",
      timeout => 1800,
    } ->

    staging::extract { $file:
      target  => $confluence::webappdir,
      creates => "${confluence::webappdir}/conf",
      strip   => 1,
      user    => $confluence::user,
      group   => $confluence::group,
      notify  => Exec["chown_${confluence::webappdir}"],
      before  => File[$confluence::homedir],
      require => [
        File[$confluence::installdir],
        User[$confluence::user],
        File[$confluence::webappdir] ],
    }

  } elsif $confluence::staging_or_deploy == 'deploy' {

    require deploy

    deploy::file { $file:
      target          => $confluence::webappdir,
      url             => $confluence::downloadURL,
      strip           => true,
      download_timout => 1800,
      owner           => $confluence::user,
      group           => $confluence::group,
      notify          => Exec["chown_${confluence::webappdir}"],
      before          => File[$confluence::homedir],
      require         => [ File[$confluence::installdir], User[$confluence::user] ],
    }

  } else {
    fail('staging_or_deploy must equal "staging" or "deploy"')
  }

  file { $confluence::homedir:
    ensure => 'directory',
    owner  => $confluence::user,
    group  => $confluence::group,
  } ->

  exec { "chown_${confluence::webappdir}":
    command     => "/bin/chown -R ${confluence::user}:${confluence::group} ${confluence::webappdir}",
    refreshonly => true,
    subscribe   => User[$confluence::user]
  } ->

  file { '/etc/init.d/confluence':
    content => template('confluence/confluence.initscript.erb'),
    mode    => '0755',
  }

}