falkorlib 0.3.6 → 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,151 @@
1
+ # File:: <tt><%= config[:name] %>-params.pp</tt>
2
+ # Author:: <%= config[:author] %> (<%= config[:email] %>)
3
+ # Copyright:: Copyright (c) <%= Time.now.year %> <%= config[:author] %>
4
+ # License:: <%= config[:license] %>
5
+ #
6
+ # ------------------------------------------------------------------------------
7
+ # = Class: <%= config[:name] %>::params
8
+ #
9
+ # In this class are defined as variables values that are used in other
10
+ # <%= config[:name] %> classes.
11
+ # This class should be included, where necessary, and eventually be enhanced
12
+ # with support for more OS
13
+ #
14
+ # == Warnings
15
+ #
16
+ # /!\ Always respect the style guide available
17
+ # here[http://docs.puppetlabs.com/guides/style_guide]
18
+ #
19
+ # The usage of a dedicated param classe is advised to better deal with
20
+ # parametrized classes, see
21
+ # http://docs.puppetlabs.com/guides/parameterized_classes.html
22
+ #
23
+ # [Remember: No empty lines between comments and class definition]
24
+ #
25
+ class <%= config[:name] %>::params {
26
+
27
+ ######## DEFAULTS FOR VARIABLES USERS CAN SET ##########################
28
+ # (Here are set the defaults, provide your custom variables externally)
29
+ # (The default used is in the line with '')
30
+ ###########################################
31
+
32
+ # ensure the presence (or absence) of <%= config[:name] %>
33
+ $ensure = $<%= config[:name] %>_ensure ? {
34
+ '' => 'present',
35
+ default => "${<%= config[:name] %>_ensure}"
36
+ }
37
+
38
+ # The Protocol used. Used by monitor and firewall class. Default is 'tcp'
39
+ $protocol = $<%= config[:name] %>_protocol ? {
40
+ '' => 'tcp',
41
+ default => "${<%= config[:name] %>_protocol}",
42
+ }
43
+ # The port number. Used by monitor and firewall class. The default is 22.
44
+ $port = $<%= config[:name] %>_port ? {
45
+ '' => 22,
46
+ default => "${<%= config[:name] %>_port}",
47
+ }
48
+ # example of an array variable
49
+ $array_variable = $<%= config[:name] %>_array_variable ? {
50
+ '' => [],
51
+ default => $<%= config[:name] %>_array_variable,
52
+ }
53
+
54
+
55
+ #### MODULE INTERNAL VARIABLES #########
56
+ # (Modify to adapt to unsupported OSes)
57
+ #######################################
58
+ # <%= config[:name] %> packages
59
+ $packagename = $::operatingsystem ? {
60
+ default => '<%= config[:name] %>',
61
+ }
62
+ # $extra_packages = $::operatingsystem ? {
63
+ # /(?i-mx:ubuntu|debian)/ => [],
64
+ # /(?i-mx:centos|fedora|redhat)/ => [],
65
+ # default => []
66
+ # }
67
+
68
+ # Log directory
69
+ $logdir = $::operatingsystem ? {
70
+ default => '/var/log/<%= config[:name] %>'
71
+ }
72
+ $logdir_mode = $::operatingsystem ? {
73
+ default => '750',
74
+ }
75
+ $logdir_owner = $::operatingsystem ? {
76
+ default => 'root',
77
+ }
78
+ $logdir_group = $::operatingsystem ? {
79
+ default => 'adm',
80
+ }
81
+
82
+ # PID for daemons
83
+ # $piddir = $::operatingsystem ? {
84
+ # default => "/var/run/<%= config[:name] %>",
85
+ # }
86
+ # $piddir_mode = $::operatingsystem ? {
87
+ # default => '750',
88
+ # }
89
+ # $piddir_owner = $::operatingsystem ? {
90
+ # default => '<%= config[:name] %>',
91
+ # }
92
+ # $piddir_group = $::operatingsystem ? {
93
+ # default => 'adm',
94
+ # }
95
+ # $pidfile = $::operatingsystem ? {
96
+ # default => '/var/run/<%= config[:name] %>/<%= config[:name] %>.pid'
97
+ # }
98
+
99
+ # <%= config[:name] %> associated services
100
+ $servicename = $::operatingsystem ? {
101
+ /(?i-mx:ubuntu|debian)/ => '<%= config[:name] %>',
102
+ default => '<%= config[:name] %>'
103
+ }
104
+ # used for pattern in a service ressource
105
+ $processname = $::operatingsystem ? {
106
+ /(?i-mx:ubuntu|debian)/ => '<%= config[:name] %>',
107
+ default => '<%= config[:name] %>'
108
+ }
109
+ $hasstatus = $::operatingsystem ? {
110
+ /(?i-mx:ubuntu|debian)/ => false,
111
+ /(?i-mx:centos|fedora|redhat)/ => true,
112
+ default => true,
113
+ }
114
+ $hasrestart = $::operatingsystem ? {
115
+ default => true,
116
+ }
117
+
118
+ # Configuration directory & file
119
+ # $configdir = $::operatingsystem ? {
120
+ # default => "/etc/<%= config[:name] %>",
121
+ # }
122
+ # $configdir_mode = $::operatingsystem ? {
123
+ # default => '0755',
124
+ # }
125
+ # $configdir_owner = $::operatingsystem ? {
126
+ # default => 'root',
127
+ # }
128
+ # $configdir_group = $::operatingsystem ? {
129
+ # default => 'root',
130
+ # }
131
+
132
+ $configfile = $::operatingsystem ? {
133
+ default => '/etc/<%= config[:name] %>.conf',
134
+ }
135
+ $configfile_init = $::operatingsystem ? {
136
+ /(?i-mx:ubuntu|debian)/ => '/etc/default/<%= config[:name] %>',
137
+ default => '/etc/sysconfig/<%= config[:name] %>'
138
+ }
139
+ $configfile_mode = $::operatingsystem ? {
140
+ default => '0600',
141
+ }
142
+ $configfile_owner = $::operatingsystem ? {
143
+ default => 'root',
144
+ }
145
+ $configfile_group = $::operatingsystem ? {
146
+ default => 'root',
147
+ }
148
+
149
+
150
+ }
151
+
@@ -0,0 +1,197 @@
1
+ # File:: <tt><%= config[:name] %>.pp</tt>
2
+ # Author:: <%= config[:author] %> (<%= config[:email] %>)
3
+ # Copyright:: Copyright (c) <%= Time.now.year %> <%= config[:author] %>
4
+ # License:: <%= config[:license] %>
5
+ #
6
+ # ------------------------------------------------------------------------------
7
+ # = Class: <%= config[:name] %>
8
+ #
9
+ # <%= config[:summary] %>
10
+ #
11
+ # == Parameters:
12
+ #
13
+ # $ensure:: *Default*: 'present'. Ensure the presence (or absence) of <%= config[:name] %>
14
+ #
15
+ # == Actions:
16
+ #
17
+ # Install and configure <%= config[:name] %>
18
+ #
19
+ # == Requires:
20
+ #
21
+ # n/a
22
+ #
23
+ # == Sample Usage:
24
+ #
25
+ # import <%= config[:name] %>
26
+ #
27
+ # You can then specialize the various aspects of the configuration,
28
+ # for instance:
29
+ #
30
+ # class { '<%= config[:name] %>':
31
+ # ensure => 'present'
32
+ # }
33
+ #
34
+ # == Warnings
35
+ #
36
+ # /!\ Always respect the style guide available
37
+ # here[http://docs.puppetlabs.com/guides/style_guide]
38
+ #
39
+ #
40
+ # [Remember: No empty lines between comments and class definition]
41
+ #
42
+ class <%= config[:name] %>(
43
+ $ensure = $<%= config[:name] %>::params::ensure
44
+ )
45
+ inherits <%= config[:name] %>::params
46
+ {
47
+ info ("Configuring <%= config[:name] %> (with ensure = ${ensure})")
48
+
49
+ if ! ($ensure in [ 'present', 'absent' ]) {
50
+ fail("<%= config[:name] %> 'ensure' parameter must be set to either 'absent' or 'present'")
51
+ }
52
+
53
+ case $::operatingsystem {
54
+ debian, ubuntu: { include <%= config[:name] %>::debian }
55
+ redhat, fedora, centos: { include <%= config[:name] %>::redhat }
56
+ default: {
57
+ fail("Module $module_name is not supported on $operatingsystem")
58
+ }
59
+ }
60
+ }
61
+
62
+ # ------------------------------------------------------------------------------
63
+ # = Class: <%= config[:name] %>::common
64
+ #
65
+ # Base class to be inherited by the other <%= config[:name] %> classes
66
+ #
67
+ # Note: respect the Naming standard provided here[http://projects.puppetlabs.com/projects/puppet/wiki/Module_Standards]
68
+ class <%= config[:name] %>::common {
69
+
70
+ # Load the variables used in this module. Check the <%= config[:name] %>-params.pp file
71
+ require <%= config[:name] %>::params
72
+
73
+ package { '<%= config[:name] %>':
74
+ name => "${<%= config[:name] %>::params::packagename}",
75
+ ensure => "${<%= config[:name] %>::ensure}",
76
+ }
77
+ # package { $<%= config[:name] %>::params::extra_packages:
78
+ # ensure => 'present'
79
+ # }
80
+
81
+ if $<%= config[:name] %>::ensure == 'present' {
82
+
83
+ # Prepare the log directory
84
+ file { "${<%= config[:name] %>::params::logdir}":
85
+ ensure => 'directory',
86
+ owner => "${<%= config[:name] %>::params::logdir_owner}",
87
+ group => "${<%= config[:name] %>::params::logdir_group}",
88
+ mode => "${<%= config[:name] %>::params::logdir_mode}",
89
+ require => Package['<%= config[:name] %>'],
90
+ }
91
+
92
+ # Configuration file
93
+ # file { "${<%= config[:name] %>::params::configdir}":
94
+ # ensure => 'directory',
95
+ # owner => "${<%= config[:name] %>::params::configdir_owner}",
96
+ # group => "${<%= config[:name] %>::params::configdir_group}",
97
+ # mode => "${<%= config[:name] %>::params::configdir_mode}",
98
+ # require => Package['<%= config[:name] %>'],
99
+ # }
100
+ # Regular version using file resource
101
+ file { '<%= config[:name] %>.conf':
102
+ path => "${<%= config[:name] %>::params::configfile}",
103
+ owner => "${<%= config[:name] %>::params::configfile_owner}",
104
+ group => "${<%= config[:name] %>::params::configfile_group}",
105
+ mode => "${<%= config[:name] %>::params::configfile_mode}",
106
+ ensure => "${<%= config[:name] %>::ensure}",
107
+ #content => template("<%= config[:name] %>/<%= config[:name] %>conf.erb"),
108
+ #source => "puppet:///modules/<%= config[:name] %>/<%= config[:name] %>.conf",
109
+ #notify => Service['<%= config[:name] %>'],
110
+ require => [
111
+ #File["${<%= config[:name] %>::params::configdir}"],
112
+ Package['<%= config[:name] %>']
113
+ ],
114
+ }
115
+
116
+ # # Concat version
117
+ # include concat::setup
118
+ # concat { "${<%= config[:name] %>::params::configfile}":
119
+ # warn => false,
120
+ # owner => "${<%= config[:name] %>::params::configfile_owner}",
121
+ # group => "${<%= config[:name] %>::params::configfile_group}",
122
+ # mode => "${<%= config[:name] %>::params::configfile_mode}",
123
+ # #notify => Service['<%= config[:name] %>'],
124
+ # require => Package['<%= config[:name] %>'],
125
+ # }
126
+ # # Populate the configuration file
127
+ # concat::fragment { "${<%= config[:name] %>::params::configfile}_header":
128
+ # target => "${<%= config[:name] %>::params::configfile}",
129
+ # ensure => "${<%= config[:name] %>::ensure}",
130
+ # content => template("<%= config[:name] %>/<%= config[:name] %>_header.conf.erb"),
131
+ # #source => "puppet:///modules/<%= config[:name] %>/<%= config[:name] %>_header.conf",
132
+ # order => '01',
133
+ # }
134
+ # concat::fragment { "${<%= config[:name] %>::params::configfile}_footer":
135
+ # target => "${<%= config[:name] %>::params::configfile}",
136
+ # ensure => "${<%= config[:name] %>::ensure}",
137
+ # content => template("<%= config[:name] %>/<%= config[:name] %>_footer.conf.erb"),
138
+ # #source => "puppet:///modules/<%= config[:name] %>/<%= config[:name] %>_footer.conf",
139
+ # order => '99',
140
+ # }
141
+
142
+ # PID file directory
143
+ # file { "${<%= config[:name] %>::params::piddir}":
144
+ # ensure => 'directory',
145
+ # owner => "${<%= config[:name] %>::params::piddir_user}",
146
+ # group => "${<%= config[:name] %>::params::piddir_group}",
147
+ # mode => "${<%= config[:name] %>::params::piddir_mode}",
148
+ # }
149
+
150
+ file { "${<%= config[:name] %>::params::configfile_init}":
151
+ owner => "${<%= config[:name] %>::params::configfile_owner}",
152
+ group => "${<%= config[:name] %>::params::configfile_group}",
153
+ mode => "${<%= config[:name] %>::params::configfile_mode}",
154
+ ensure => "${<%= config[:name] %>::ensure}",
155
+ #content => template("<%= config[:name] %>/default/<%= config[:name] %>.erb"),
156
+ #source => "puppet:///modules/<%= config[:name] %>/default/<%= config[:name] %>.conf",
157
+ notify => Service['<%= config[:name] %>'],
158
+ require => Package['<%= config[:name] %>']
159
+ }
160
+
161
+ service { '<%= config[:name] %>':
162
+ name => "${<%= config[:name] %>::params::servicename}",
163
+ enable => true,
164
+ ensure => running,
165
+ hasrestart => "${<%= config[:name] %>::params::hasrestart}",
166
+ pattern => "${<%= config[:name] %>::params::processname}",
167
+ hasstatus => "${<%= config[:name] %>::params::hasstatus}",
168
+ require => [
169
+ Package['<%= config[:name] %>'],
170
+ File["${<%= config[:name] %>::params::configfile_init}"]
171
+ ],
172
+ subscribe => File['<%= config[:name] %>.conf'],
173
+ }
174
+ }
175
+ else
176
+ {
177
+ # Here $<%= config[:name] %>::ensure is 'absent'
178
+
179
+ }
180
+
181
+ }
182
+
183
+
184
+ # ------------------------------------------------------------------------------
185
+ # = Class: <%= config[:name] %>::debian
186
+ #
187
+ # Specialization class for Debian systems
188
+ class <%= config[:name] %>::debian inherits <%= config[:name] %>::common { }
189
+
190
+ # ------------------------------------------------------------------------------
191
+ # = Class: <%= config[:name] %>::redhat
192
+ #
193
+ # Specialization class for Redhat systems
194
+ class <%= config[:name] %>::redhat inherits <%= config[:name] %>::common { }
195
+
196
+
197
+
@@ -0,0 +1,111 @@
1
+ # File:: <tt><%= config[:name] %>-mydef.pp</tt>
2
+ # Author:: <%= config[:author] %> (<%= config[:email] %>)
3
+ # Copyright:: Copyright (c) <%= Time.now.year %> <%= config[:author] %>
4
+ # License:: <%= config[:license] %>
5
+ #
6
+ # ------------------------------------------------------------------------------
7
+ # = Defines: <%= config[:name] %>::mydef
8
+ #
9
+ # <%= config[:summary] %>
10
+ #
11
+ # == Pre-requisites
12
+ #
13
+ # * The class '<%= config[:name] %>' should have been instanciated
14
+ #
15
+ # == Parameters:
16
+ #
17
+ # [*ensure*]
18
+ # default to 'present', can be 'absent'.
19
+ # Default: 'present'
20
+ #
21
+ # [*content*]
22
+ # Specify the contents of the mydef entry as a string. Newlines, tabs,
23
+ # and spaces can be specified using the escaped syntax (e.g., \n for a newline)
24
+ #
25
+ # [*source*]
26
+ # Copy a file as the content of the mydef entry.
27
+ # Uses checksum to determine when a file should be copied.
28
+ # Valid values are either fully qualified paths to files, or URIs. Currently
29
+ # supported URI types are puppet and file.
30
+ # In neither the 'source' or 'content' parameter is specified, then the
31
+ # following parameters can be used to set the console entry.
32
+ #
33
+ # == Sample usage:
34
+ #
35
+ # include "<%= config[:name] %>"
36
+ #
37
+ # You can then add a mydef specification as follows:
38
+ #
39
+ # <%= config[:name] %>::mydef {
40
+ #
41
+ # }
42
+ #
43
+ # == Warnings
44
+ #
45
+ # /!\ Always respect the style guide available
46
+ # here[http://docs.puppetlabs.com/guides/style_guide]
47
+ #
48
+ # [Remember: No empty lines between comments and class definition]
49
+ #
50
+ define <%= config[:name] %>::mydef(
51
+ $ensure = 'present',
52
+ $content = '',
53
+ $source = ''
54
+ )
55
+ {
56
+ include <%= config[:name] %>::params
57
+
58
+ # $name is provided at define invocation
59
+ $basename = $name
60
+
61
+ if ! ($ensure in [ 'present', 'absent' ]) {
62
+ fail("<%= config[:name] %>::mydef 'ensure' parameter must be set to either 'absent' or 'present'")
63
+ }
64
+
65
+ if ($<%= config[:name] %>::ensure != $ensure) {
66
+ if ($<%= config[:name] %>::ensure != 'present') {
67
+ fail("Cannot configure a <%= config[:name] %> '${basename}' as <%= config[:name] %>::ensure is NOT set to present (but ${<%= config[:name] %>::ensure})")
68
+ }
69
+ }
70
+
71
+ # if content is passed, use that, else if source is passed use that
72
+ $real_content = $content ? {
73
+ '' => $source ? {
74
+ '' => template('<%= config[:name] %>/<%= config[:name] %>_entry.erb'),
75
+ default => ''
76
+ },
77
+ default => $content
78
+ }
79
+ $real_source = $source ? {
80
+ '' => '',
81
+ default => $content ? {
82
+ '' => $source,
83
+ default => ''
84
+ }
85
+ }
86
+
87
+ # concat::fragment { "${<%= config[:name] %>::params::configfile}_${basename}":
88
+ # target => "${<%= config[:name] %>::params::configfile}",
89
+ # ensure => "${ensure}",
90
+ # content => $real_content,
91
+ # source => $real_source,
92
+ # order => '50',
93
+ # }
94
+
95
+ # case $ensure {
96
+ # present: {
97
+
98
+ # }
99
+ # absent: {
100
+
101
+ # }
102
+ # disabled: {
103
+
104
+ # }
105
+ # default: { err ( "Unknown ensure value: '${ensure}'" ) }
106
+ # }
107
+
108
+ }
109
+
110
+
111
+