init.pp
2.33 KB
1
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
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
# Class: nginx
#
# Install nginx.
#
# Parameters:
# * $user. Defaults to 'www-data'.
# * $worker_processes. Defaults to '1'.
# * $worker_connections. Defaults to '1024'.
# * $error_log. Default to undef
# * $pid_file. Default to undef
# * $access_log. Default to undef
#
# Create config directories :
# * /etc/nginx/conf.d for http config snippet
# * /etc/nginx/includes for sites includes
#
# Provide 3 definitions :
# * nginx::config (http config snippet)
# * nginx::site (http site)
# * nginx::site_include (site includes)
#
# Templates:
# - nginx.conf.erb => /etc/nginx/nginx.conf
#
class nginx (
$user = 'www-data',
$worker_processes = '1',
$worker_connections = '1024',
$error_log = undef,
$pid_file = undef,
$access_log = undef
){
$nginx_includes = '/etc/nginx/includes'
$nginx_conf = '/etc/nginx/conf.d'
case $::operatingsystem {
centos,fedora,rhel: {
$nginx_packages = ['nginx', 'GeoIP', 'gd', 'libXpm', 'libxslt']
}
debian,ubuntu: {
$nginx_packages = 'nginx-extras'
}
}
if ! defined(Package[$nginx_packages]) {
package { $nginx_packages:
ensure => latest
}
}
#restart-command is a quick-fix here, until http://projects.puppetlabs.com/issues/1014 is solved
service { 'nginx':
ensure => running,
enable => true,
hasrestart => true,
require => File['/etc/nginx/nginx.conf'],
restart => '/etc/init.d/nginx reload'
}
file { '/etc/nginx/nginx.conf':
ensure => present,
mode => '0644',
owner => 'root',
group => 'root',
content => template('nginx/nginx.conf.erb'),
notify => Service['nginx'],
require => Package[$nginx_packages],
}
file { $nginx_conf:
ensure => directory,
mode => '0644',
owner => 'root',
group => 'root',
require => Package[$nginx_packages],
}
file { '/etc/nginx/ssl':
ensure => directory,
mode => '0644',
owner => 'root',
group => 'root',
require => Package[$nginx_packages],
}
file { $nginx_includes:
ensure => directory,
mode => '0644',
owner => 'root',
group => 'root',
require => Package[$nginx_packages],
}
# Nuke default files
file { '/etc/nginx/fastcgi_params':
ensure => absent,
require => Package[$nginx_packages],
}
file { '/etc/nginx/sites-enabled/default':
ensure => absent,
}
}