|
1 # Define puppi::project |
|
2 # |
|
3 # This define creates and configures a Puppi project |
|
4 # You must use different puppi::deploy and puppi::rollback defines |
|
5 # to to build up the commands list |
|
6 # |
|
7 define puppi::project ( |
|
8 $enable = true ) { |
|
9 |
|
10 require puppi::params |
|
11 |
|
12 $ensure = any2bool($enable) ? { |
|
13 false => 'absent', |
|
14 default => 'directory', |
|
15 } |
|
16 |
|
17 $ensurefile = bool2ensure($enable) |
|
18 |
|
19 # Create Project subdirs |
|
20 file { |
|
21 "${puppi::params::projectsdir}/${name}": |
|
22 ensure => $ensure, |
|
23 mode => '0755', |
|
24 owner => $puppi::params::configfile_owner, |
|
25 group => $puppi::params::configfile_group, |
|
26 force => true; |
|
27 |
|
28 "${puppi::params::projectsdir}/${name}/check": |
|
29 ensure => $ensure, |
|
30 mode => '0755', |
|
31 owner => $puppi::params::configfile_owner, |
|
32 group => $puppi::params::configfile_group, |
|
33 force => true, |
|
34 recurse => true, |
|
35 purge => true, |
|
36 require => File["${puppi::params::projectsdir}/${name}"]; |
|
37 |
|
38 "${puppi::params::projectsdir}/${name}/rollback": |
|
39 ensure => $ensure, |
|
40 mode => '0755', |
|
41 owner => $puppi::params::configfile_owner, |
|
42 group => $puppi::params::configfile_group, |
|
43 force => true, |
|
44 recurse => true, |
|
45 purge => true, |
|
46 require => File["${puppi::params::projectsdir}/${name}"]; |
|
47 |
|
48 "${puppi::params::projectsdir}/${name}/deploy": |
|
49 ensure => $ensure, |
|
50 mode => '0755', |
|
51 owner => $puppi::params::configfile_owner, |
|
52 group => $puppi::params::configfile_group, |
|
53 force => true, |
|
54 recurse => true, |
|
55 purge => true, |
|
56 require => File["${puppi::params::projectsdir}/${name}"]; |
|
57 |
|
58 "${puppi::params::projectsdir}/${name}/initialize": |
|
59 ensure => $ensure, |
|
60 mode => '0755', |
|
61 owner => $puppi::params::configfile_owner, |
|
62 group => $puppi::params::configfile_group, |
|
63 force => true, |
|
64 recurse => true, |
|
65 purge => true, |
|
66 require => File["${puppi::params::projectsdir}/${name}"]; |
|
67 |
|
68 "${puppi::params::projectsdir}/${name}/configure": |
|
69 ensure => $ensure, |
|
70 mode => '0755', |
|
71 owner => $puppi::params::configfile_owner, |
|
72 group => $puppi::params::configfile_group, |
|
73 force => true, |
|
74 recurse => true, |
|
75 purge => true, |
|
76 require => File["${puppi::params::projectsdir}/${name}"]; |
|
77 |
|
78 "${puppi::params::projectsdir}/${name}/report": |
|
79 ensure => $ensure, |
|
80 mode => '0755', |
|
81 owner => $puppi::params::configfile_owner, |
|
82 group => $puppi::params::configfile_group, |
|
83 force => true, |
|
84 recurse => true, |
|
85 purge => true, |
|
86 require => File["${puppi::params::projectsdir}/${name}"]; |
|
87 } |
|
88 |
|
89 # Create Project configuration file |
|
90 file { |
|
91 "${puppi::params::projectsdir}/${name}/config": |
|
92 ensure => $ensurefile, |
|
93 content => template('puppi/project/config.erb'), |
|
94 mode => '0644', |
|
95 owner => $puppi::params::configfile_owner, |
|
96 group => $puppi::params::configfile_group, |
|
97 require => File["${puppi::params::projectsdir}/${name}"]; |
|
98 } |
|
99 |
|
100 } |