Merge pull request #316 from edvinasme/archlinux

Add Archlinux support
This commit is contained in:
James Fryman 2014-05-16 13:14:49 +02:00
commit 5cb8ea8fa8
7 changed files with 60 additions and 22 deletions

View file

@ -74,7 +74,7 @@ To create only a HTTPS vhost, set `ssl => true` and also set `listen_port` to th
Locations require specific settings depending on whether they should be included in the HTTP, HTTPS or both vhosts. Locations require specific settings depending on whether they should be included in the HTTP, HTTPS or both vhosts.
#### HTTP only vhost (default) #### HTTP only vhost (default)
If you only have a HTTP vhost (i.e. `ssl => false` on the vhost) maks sure you don't set `ssl => true` on any location you associate with the vhost. If you only have a HTTP vhost (i.e. `ssl => false` on the vhost) make sure you don't set `ssl => true` on any location you associate with the vhost.
#### HTTP and HTTPS vhost #### HTTP and HTTPS vhost
If you set `ssl => true` and also set `listen_port` and `ssl_port` to different values on the vhost you will need to be specific with the location settings since you will have a HTTP vhost listening on `listen_port` and a HTTPS vhost listening on `ssl_port`: If you set `ssl => true` and also set `listen_port` and `ssl_port` to different values on the vhost you will need to be specific with the location settings since you will have a HTTP vhost listening on `listen_port` and a HTTPS vhost listening on `ssl_port`:
@ -211,8 +211,8 @@ define web::nginx_ssl_with_redirect (
location_cfg_append => $location_cfg_append, location_cfg_append => $location_cfg_append,
index_files => [ 'index.php' ], index_files => [ 'index.php' ],
ssl => true, ssl => true,
ssl_cert => 'puppet:///modules/sslkey/whildcard_mydomain.crt', ssl_cert => 'puppet:///modules/sslkey/wildcard_mydomain.crt',
ssl_key => 'puppet:///modules/sslkey/whildcard_mydomain.key', ssl_key => 'puppet:///modules/sslkey/wildcard_mydomain.key',
} }

View file

@ -49,6 +49,12 @@ class nginx::package(
before => Anchor['nginx::package::end'], before => Anchor['nginx::package::end'],
} }
} }
'archlinux': {
class { 'nginx::package::archlinux':
require => Anchor['nginx::package::begin'],
before => Anchor['nginx::package::end'],
}
}
'Solaris': { 'Solaris': {
class { 'nginx::package::solaris': class { 'nginx::package::solaris':
package_name => $package_name, package_name => $package_name,

View file

@ -0,0 +1,25 @@
# Class: nginx::package::archlinux
#
# This module manages NGINX package installation on Archlinux based systems
#
# Parameters:
#
# There are no default parameters for this class.
#
# Actions:
#
# Requires:
#
# Sample Usage:
#
# This class file is not called directly
class nginx::package::archlinux(
$package_name = 'nginx',
$package_ensure = 'present'
) {
package { $package_name:
ensure => $package_ensure,
}
}

View file

@ -78,7 +78,12 @@ class nginx::params {
} }
$nx_pid = $::kernel ? { $nx_pid = $::kernel ? {
/(?i-mx:linux)/ => '/var/run/nginx.pid', /(?i-mx:linux)/ => $::osfamily ? {
# archlinux has hardcoded pid in service file to /run/nginx.pid, setting
# it will prevent nginx from starting
/(?i-mx:archlinux)/ => false,
default => '/var/run/nginx.pid',
},
/(?i-mx:sunos)/ => '/var/run/nginx.pid', /(?i-mx:sunos)/ => '/var/run/nginx.pid',
} }
@ -93,14 +98,16 @@ class nginx::params {
default => 'webservd', default => 'webservd',
} }
$nx_daemon_user = $::osfamily ? { $nx_daemon_user = $::osfamily ? {
/(?i-mx:archlinux)/ => 'http',
/(?i-mx:redhat|suse|gentoo|linux)/ => 'nginx', /(?i-mx:redhat|suse|gentoo|linux)/ => 'nginx',
/(?i-mx:debian)/ => 'www-data', /(?i-mx:debian)/ => 'www-data',
/(?i-mx:solaris)/ => $solaris_nx_daemon_user, /(?i-mx:solaris)/ => $solaris_nx_daemon_user,
} }
} else { } else {
warning('$::osfamily not defined. Support for $::operatingsystem is deprecated') warning('$::osfamily not defined. Support for $::operatingsystem is deprecated')
warning("Please upgrade from factor ${::facterversion} to >= 1.7.2") warning("Please upgrade from facter ${::facterversion} to >= 1.7.2")
$nx_daemon_user = $::operatingsystem ? { $nx_daemon_user = $::operatingsystem ? {
/(?i-mx:archlinux)/ => 'http',
/(?i-mx:debian|ubuntu)/ => 'www-data', /(?i-mx:debian|ubuntu)/ => 'www-data',
/(?i-mx:fedora|rhel|redhat|centos|scientific|suse|opensuse|amazon|gentoo|oraclelinux)/ => 'nginx', /(?i-mx:fedora|rhel|redhat|centos|scientific|suse|opensuse|amazon|gentoo|oraclelinux)/ => 'nginx',
/(?i-mx:solaris)/ => 'webservd', /(?i-mx:solaris)/ => 'webservd',

View file

@ -3,7 +3,7 @@ worker_processes <%= @worker_processes %>;
worker_rlimit_nofile <%= @worker_rlimit_nofile %>; worker_rlimit_nofile <%= @worker_rlimit_nofile %>;
error_log <%= @nginx_error_log %>; error_log <%= @nginx_error_log %>;
pid <%= scope.lookupvar('nginx::params::nx_pid')%>; <% if scope.lookupvar('nginx::params::nx_pid') != false %>pid <%= scope.lookupvar('nginx::params::nx_pid')%>;<% end -%>
events { events {
worker_connections <%= @worker_connections -%>; worker_connections <%= @worker_connections -%>;