puppet/nginx/manifests/init.pp

106 lines
2.3 KiB
Puppet

# Install and configure nginx.
#
class nginx {
case $operatingsystem {
"openbsd": {
$user = "_nginx"
$group = "_nginx"
}
default: {
$user = "nginx"
$group = "nginx"
}
}
package { "nginx":
ensure => installed,
}
service { "nginx":
ensure => running,
enable => true,
require => Package["nginx"],
}
file { "/etc/nginx/nginx.conf":
ensure => present,
mode => 0644,
owner => "root",
group => $operatingsystem ? {
"openbsd" => "wheel",
default => "root",
},
content => template("nginx/nginx.conf.erb"),
notify => Service["nginx"],
require => Package["nginx"],
}
file { "/etc/nginx/conf.d":
ensure => directory,
mode => 0644,
owner => "root",
group => $operatingsystem ? {
"openbsd" => "wheel",
default => "root",
},
purge => true,
force => true,
recurse => true,
source => "puppet:///modules/custom/empty",
require => Package["nginx"],
}
}
# Install and configure nginx with passenger.
#
class nginx::passenger inherits nginx {
case $operatingsystem {
"openbsd": {
Package["nginx"] {
flavor => "passenger",
}
nginx::configfile { "passenger.conf":
source => "puppet:///modules/nginx/passenger.conf",
}
}
default: {
fail("Not supported on ${operatingsystem}")
}
}
}
# Add nginx configuration file.
#
define nginx::configfile($source="", $content="") {
file { "/etc/nginx/conf.d/${name}":
ensure => present,
mode => 0644,
owner => "root",
group => $operatingsystem ? {
"openbsd" => "wheel",
default => "root",
},
notify => Service["nginx"],
require => File["/etc/nginx/conf.d"],
}
if $source {
File["/etc/nginx/conf.d/${name}"] {
source => $source,
}
}
if $content {
File["/etc/nginx/conf.d/${name}"] {
content => $content,
}
}
}