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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
# File 'manifests/install.pp', line 16
class jira::install {
group { $jira::group:
ensure => present,
gid => $jira::gid
} ->
user { $jira::user:
comment => 'Jira daemon account',
shell => $jira::shell,
home => $jira::homedir,
password => '*',
password_min_age => '0',
password_max_age => '99999',
managehome => true,
uid => $jira::uid,
gid => $jira::gid,
}
if ! defined(File[$jira::installdir]) {
file { $jira::installdir:
ensure => 'directory',
owner => $jira::user,
group => $jira::group,
}
}
$file = "atlassian-${jira::product}-${jira::version}.${jira::format}"
if $jira::staging_or_deploy == 'staging' {
require staging
if ! defined(File[$jira::webappdir]) {
file { $jira::webappdir:
ensure => 'directory',
owner => $jira::user,
group => $jira::group,
}
}
staging::file { $file:
source => "${jira::downloadURL}/${file}",
timeout => 1800,
} ->
staging::extract { $file:
target => $jira::webappdir,
creates => "${jira::webappdir}/conf",
strip => 1,
user => $jira::user,
group => $jira::group,
notify => Exec["chown_${jira::webappdir}"],
before => File[$jira::homedir],
require => [
File[$jira::installdir],
User[$jira::user],
File[$jira::webappdir] ],
}
} elsif $jira::staging_or_deploy == 'deploy' {
deploy::file { $file:
target => $jira::webappdir,
url => $jira::downloadURL,
strip => true,
download_timout => 1800,
owner => $jira::user,
group => $jira::group,
notify => Exec["chown_${jira::webappdir}"],
before => File[$jira::homedir],
require => [ File[$jira::installdir], User[$jira::user] ],
}
} else {
fail('staging_or_deploy must equal "staging" or "deploy"')
}
file { $jira::homedir:
ensure => 'directory',
owner => $jira::user,
group => $jira::group,
} ->
exec { "chown_${jira::webappdir}":
command => "/bin/chown -R ${jira::user}:${jira::group} ${jira::webappdir}",
refreshonly => true,
subscribe => User[$jira::user]
}
if $jira::db == 'mysql' and $jira::mysql_connector_manage {
if $jira::staging_or_deploy == 'staging' {
class { 'jira::mysql_connector':
require => Staging::Extract[$file],
}
} elsif $jira::staging_or_deploy == 'deploy' {
class { 'jira::mysql_connector':
require => Deploy::File[$file],
}
}
}
}
|