048001e859
Only include ::apt when $manage_repo is true, it's not needed otherwise.
72 lines
1.8 KiB
Puppet
72 lines
1.8 KiB
Puppet
# Class: nginx::package::debian
|
|
#
|
|
# This module manages NGINX package installation on debian 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::debian(
|
|
$manage_repo = true,
|
|
$package_name = 'nginx',
|
|
$package_source = 'nginx',
|
|
$package_ensure = 'present'
|
|
) {
|
|
|
|
$distro = downcase($::operatingsystem)
|
|
|
|
package { $package_name:
|
|
ensure => $package_ensure,
|
|
require => Anchor['nginx::apt_repo'],
|
|
}
|
|
|
|
anchor { 'nginx::apt_repo' : }
|
|
|
|
if $manage_repo {
|
|
include '::apt'
|
|
|
|
case $package_source {
|
|
'nginx': {
|
|
apt::source { 'nginx':
|
|
location => "http://nginx.org/packages/${distro}",
|
|
repos => 'nginx',
|
|
key => '7BD9BF62',
|
|
key_source => 'http://nginx.org/keys/nginx_signing.key',
|
|
notify => Exec['apt_get_update_for_nginx'],
|
|
}
|
|
}
|
|
'passenger': {
|
|
ensure_resource('package', 'apt-transport-https', {'ensure' => 'present' })
|
|
|
|
apt::source { 'nginx':
|
|
location => 'https://oss-binaries.phusionpassenger.com/apt/passenger',
|
|
repos => "main",
|
|
key => '561F9B9CAC40B2F7',
|
|
key_source => 'https://oss-binaries.phusionpassenger.com/auto-software-signing-gpg-key.txt',
|
|
notify => Exec['apt_get_update_for_nginx'],
|
|
}
|
|
|
|
package { 'passenger':
|
|
ensure => 'present',
|
|
require => Anchor['nginx::apt_repo'],
|
|
}
|
|
}
|
|
default: {}
|
|
}
|
|
|
|
exec { 'apt_get_update_for_nginx':
|
|
command => '/usr/bin/apt-get update',
|
|
timeout => 240,
|
|
returns => [ 0, 100 ],
|
|
refreshonly => true,
|
|
before => Anchor['nginx::apt_repo'],
|
|
}
|
|
}
|
|
}
|