106 lines
2.3 KiB
Puppet
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,
|
|
}
|
|
}
|
|
|
|
}
|