mirror of
https://github.com/cliffe/SecGen.git
synced 2026-02-21 19:28:02 +00:00
Relates to SG-11 : Pushes code to repo for Tom to branch from
This commit is contained in:
21
Gemfile.lock
Normal file
21
Gemfile.lock
Normal file
@@ -0,0 +1,21 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
mini_portile2 (2.0.0)
|
||||
minitest (5.8.4)
|
||||
nokogiri (1.6.7.2)
|
||||
mini_portile2 (~> 2.0.0.rc2)
|
||||
rake (10.5.0)
|
||||
xml-simple (1.1.5)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
minitest
|
||||
nokogiri
|
||||
rake
|
||||
xml-simple
|
||||
|
||||
BUNDLED WITH
|
||||
1.10.4
|
||||
@@ -6,7 +6,7 @@
|
||||
</vulnerabilities>
|
||||
<!-- secure services will be provided, if matching insecure ones have not been selected -->
|
||||
<services>
|
||||
<service type="http" name="example42-apache-2.1.12"></service>
|
||||
<service type="http" name="apache"></service>
|
||||
</services>-->
|
||||
<networks>
|
||||
<network name="homeonly"></network>
|
||||
|
||||
@@ -35,83 +35,64 @@ class Bootstrap
|
||||
|
||||
def move_vulnerability_puppet_files
|
||||
puts 'Moving vulnerability manifests'
|
||||
Dir.glob("#{ROOT_DIR}/modules/vulnerabilities/**/**/**/*.pp").each do |puppet_file|
|
||||
Dir.glob("#{ROOT_DIR}/modules/vulnerabilities/*/*/*/*.pp").each do |puppet_file|
|
||||
puts "Moving #{puppet_file} to mount/puppet/manifest/"
|
||||
FileUtils.copy(puppet_file, "#{ROOT_DIR}/mount/puppet/manifest/")
|
||||
end
|
||||
|
||||
puts 'Moving vulnerability modules'
|
||||
Dir.glob("#{ROOT_DIR}/modules/vulnerabilities/**/**/**/module/**").each do |puppet_module_directory|
|
||||
root_directory_length = ROOT_DIR.split('/').count
|
||||
module_name = puppet_module_directory.split('/')[root_directory_length + 4]
|
||||
module_path = "#{ROOT_DIR}/mount/puppet/module/#{module_name}"
|
||||
|
||||
if(Dir.exists?(module_path))
|
||||
puts "Moving #{puppet_module_directory} to #{module_path}"
|
||||
FileUtils.cp_r(puppet_module_directory, module_path)
|
||||
else
|
||||
Dir.mkdir("#{ROOT_DIR}/mount/puppet/module/#{module_name}")
|
||||
puts "Moving #{puppet_module_directory} to #{module_path}"
|
||||
FileUtils.cp_r(puppet_module_directory, module_path)
|
||||
end
|
||||
|
||||
puts 'Moving vulnerability templates'
|
||||
|
||||
Dir.glob("#{ROOT_DIR}/modules/vulnerabilities/*/*/*/*/").each do |puppet_module_directory|
|
||||
module_path = "#{ROOT_DIR}/mount/puppet/module/"
|
||||
puts "Moving #{puppet_module_directory} to #{module_path}"
|
||||
FileUtils.cp_r(puppet_module_directory, module_path)
|
||||
end
|
||||
end
|
||||
|
||||
def move_secure_service_puppet_files
|
||||
puts 'Moving Service manifests'
|
||||
Dir.glob("#{ROOT_DIR}/modules/services/**/**/**/*.pp").each do |puppet_file|
|
||||
Dir.glob("#{ROOT_DIR}/modules/services/*/*/*/*.pp").each do |puppet_file|
|
||||
puts "Moving #{puppet_file} to mount/puppet/manifest/"
|
||||
FileUtils.copy(puppet_file, "#{ROOT_DIR}/mount/puppet/manifest/")
|
||||
end
|
||||
|
||||
puts 'Moving Service modules'
|
||||
Dir.glob("#{ROOT_DIR}/modules/services/**/**/**/module/**/**").each do |puppet_module_directory|
|
||||
root_directory_length = ROOT_DIR.split('/').count
|
||||
module_name = puppet_module_directory.split('/')[root_directory_length + 6]
|
||||
module_path = "#{ROOT_DIR}/mount/puppet/module/#{module_name}"
|
||||
Dir.glob("#{ROOT_DIR}/modules/services/*/*/*/module/**").each do |puppet_module_directory|
|
||||
|
||||
module_path = "#{ROOT_DIR}/mount/puppet/module/"
|
||||
puts "Moving #{puppet_module_directory} to #{module_path}"
|
||||
FileUtils.cp_r(puppet_module_directory, module_path)
|
||||
|
||||
if(Dir.exists?(module_path))
|
||||
puts "Moving #{puppet_module_directory} to #{module_path}"
|
||||
FileUtils.cp_r(puppet_module_directory, module_path)
|
||||
else
|
||||
Dir.mkdir("#{ROOT_DIR}/mount/puppet/module/#{module_name}")
|
||||
puts "Moving #{puppet_module_directory} to #{module_path}"
|
||||
FileUtils.cp_r(puppet_module_directory, module_path)
|
||||
end
|
||||
|
||||
puts 'Moving vulnerability templates'
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def move_build_puppet_files
|
||||
|
||||
puts 'Moving build puppet module files'
|
||||
Dir.glob("#{ROOT_DIR}/modules/build/puppet/**/module/*.pp").each do |puppet_file|
|
||||
root_directory_length = ROOT_DIR.split('/').count
|
||||
module_name = puppet_file.split('/')[root_directory_length + 3]
|
||||
module_path = "#{ROOT_DIR}/mount/puppet/module/#{module_name}"
|
||||
if(Dir.exists?(module_path))
|
||||
Dir.mkdir("#{module_path}/manifests")
|
||||
puts "Moving #{puppet_file} to #{module_path}"
|
||||
FileUtils.copy(puppet_file, "#{module_path}/manifests")
|
||||
else
|
||||
Dir.mkdir("#{ROOT_DIR}/mount/puppet/module/#{module_name}")
|
||||
Dir.mkdir("#{ROOT_DIR}/mount/puppet/module/#{module_name}/manifests")
|
||||
puts "Moving #{puppet_file} to #{module_path}"
|
||||
FileUtils.copy(puppet_file, "#{module_path}/manifests")
|
||||
end
|
||||
end
|
||||
Dir.glob("#{ROOT_DIR}/modules/build/puppet/**/manifest/*.pp").each do |puppet_file|
|
||||
puts "Moving #{puppet_file} to mount/puppet/manifest."
|
||||
FileUtils.copy(puppet_file, "#{ROOT_DIR}/mount/puppet/manifest")
|
||||
end
|
||||
end
|
||||
puts 'Moving Dependency modules'
|
||||
Dir.glob("#{ROOT_DIR}/modules/dependencies/**").each do |puppet_module_directory|
|
||||
|
||||
module_path = "#{ROOT_DIR}/mount/puppet/module/"
|
||||
puts "Moving #{puppet_module_directory} to #{module_path}"
|
||||
FileUtils.cp_r(puppet_module_directory, module_path)
|
||||
end
|
||||
|
||||
puts 'Moving build manifests'
|
||||
|
||||
Dir.glob("#{ROOT_DIR}/modules/build/*/*/*.pp").each do |puppet_file|
|
||||
puts "Moving #{puppet_file} to mount/puppet/manifest/"
|
||||
FileUtils.copy(puppet_file, "#{ROOT_DIR}/mount/puppet/manifest/")
|
||||
end
|
||||
|
||||
puts 'Moving build modules'
|
||||
|
||||
Dir.glob("#{ROOT_DIR}/modules/build/*/*/module/**").each do |puppet_module_directory|
|
||||
|
||||
module_path = "#{ROOT_DIR}/mount/puppet/module/"
|
||||
puts "Moving #{puppet_module_directory} to #{module_path}"
|
||||
FileUtils.cp_r(puppet_module_directory, module_path)
|
||||
end
|
||||
|
||||
def move_files
|
||||
|
||||
end
|
||||
|
||||
|
||||
@@ -24,13 +24,13 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||
# Add secure services
|
||||
<% systems.services.each do |service| %>
|
||||
|
||||
<% service_name = service.name.gsub!('-', '_').gsub!('.', '_') %>
|
||||
<% service_name = service.name%>
|
||||
|
||||
config.vm.provision "puppet" do | <%=service_name%> |
|
||||
|
||||
<%=service_name%>.module_path = "<%="#{ROOT_DIR}/mount/puppet/module/#{service_name}"%>"
|
||||
<%=service_name%>.module_path = "<%="#{ROOT_DIR}/mount/puppet/module"%>"
|
||||
<%=service_name%>.manifests_path = "<%="#{ROOT_DIR}/mount/puppet/manifest"%>"
|
||||
<%=service_name%>.manifest_file = "init.pp"
|
||||
<%=service_name%>.manifest_file = "<%=service_name%>.pp"
|
||||
end
|
||||
|
||||
<% end %>
|
||||
@@ -43,7 +43,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||
<% vulnerability_name = vulnerability.name %>
|
||||
config.vm.provision "puppet" do | <%=vulnerability_name%> |
|
||||
|
||||
<%=vulnerability_name%>.module_path = "<%="#{ROOT_DIR}/mount/puppet/module/#{vulnerability_name}"%>"
|
||||
<%=vulnerability_name%>.module_path = "<%="#{ROOT_DIR}/mount/puppet/module"%>"
|
||||
<%=vulnerability_name%>.manifests_path = "<%="#{ROOT_DIR}/mount/puppet/manifest"%>"
|
||||
<%=vulnerability_name%>.manifest_file = "<%=vulnerability_name%>.pp"
|
||||
end
|
||||
@@ -52,8 +52,8 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||
|
||||
# clean up script which clears history from the VMs and clobs files together
|
||||
config.vm.provision "puppet" do |cleanup|
|
||||
cleanup.module_path = "<%="#{ROOT_DIR}/modules/build/puppet/cleanup/module"%>"
|
||||
cleanup.manifests_path = "<%="#{ROOT_DIR}/modules/build/puppet/cleanup"%>"
|
||||
cleanup.module_path = "<%="#{ROOT_DIR}/mount/puppet/module"%>"
|
||||
cleanup.manifests_path = "<%="#{ROOT_DIR}/mount/puppet/manifest"%>"
|
||||
cleanup.manifest_file = "cleanup.pp"
|
||||
end
|
||||
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEowIBAAKCAQEArvBoa+yz0D6dHtssTftgC6vy1TdwoBqXcGEPGHdv7BnsXAo7
|
||||
cCCTDkDk+/2yAAEd/1EDFo11fqxrbA4KhHLchAQRCHr8xNQpmNladd7ElhSsQ1bx
|
||||
AQbTAzu1Hb7IcxevE0VTDFmVlThsw6GWXe5lTYI8+pZXUpyrb/K8eUi/7hykI2vU
|
||||
shrkfSaCmtnjRs6xdCkWS18MJR1zeRsJiSwPMCG40DPetiGBoQw4xtcUhXxjtecY
|
||||
2mwoe2x7TZN0G+VkTQQUZkxL5SRunjKJCLFuruh//drCms3psfDGHPqkvPBHmGbM
|
||||
vn1vDMgE9KHdJvbLq2o3/rZmIpvUab5/4Lt0+wIDAQABAoIBAHZt/FMr8GNHMDkm
|
||||
aWz1g4UDSCa+HHnW5rTGkGCg4t00g4Wfy7NR6hwZJKvPiMRl/TfOUUfgRi2Wbja9
|
||||
nrMhy1V4J0vVbu+VLf/zDUGEqRNtNV11KzzlsM6cijVz5eG8o+Jo6RsQPqrBgyhB
|
||||
aTl33Y7GX5/JTZ54v7rO2ndFH+IC1Gzb8UFj5bIcAD8MAvXdazIpSuEzpMKaHVY/
|
||||
cLGli/vIGKAcc9I5gCA4iTxNEc0n736gAJYD06SSAcxaK7VHBYwld5fMpeT7pBfT
|
||||
o5FmWGdiNDOFr50acOfNHmMevJAO6KhmIU7XEohweeFaNiq9K6Nf/8k+1Vn1SQL3
|
||||
0CcYodECgYEA4/LorHCJVbAaQOzf+BwXjkhrXv6R5iFO7hvlxBkYfuOVr1u2lY0s
|
||||
TD/otK2S335n59ptfcmNf2n+mfLGjtDRkJGDEl/aSL6xZ3dKctXStpV6dih3AH52
|
||||
4JtZdWQSWVaPN1CVoUDcezxYlv//3wtm4bAAfQ9yFQuCWaEMg3Qt3HMCgYEAxHeH
|
||||
LaYyjC/lfEqhuSoOLx+BeHv92o72vo4GJz+VX+0/k1o002mQM6H6ka6uI5Pk2Sfm
|
||||
/MgbZGhtJTbXcWeoeHALB3QI3FBn9GtwZud8F71TIRge+nlLlPbp0IEphWPgxKCo
|
||||
6fXc6ClYko5YtENGhzxqLenAvR/JGlp1mgoTq1kCgYAp2W7eOcr88Ffhk5uK8Z1h
|
||||
geo0hohCt9rF3FlSp0jYAvB4QV5EFqcLWLBge317irmI15FChr5zpgIYQXoyviO7
|
||||
ZvupY++va1Mmq7//VUJaQxc4mjU+4fjxQ5Qo+TZlMH8aqLDP6hiQh4O8NUPEr1M0
|
||||
HBv62dsYAgTsb6TcfXfuAQKBgQC1BnWVyEdXCGLpTVMKbAe5v8vqGkVjdss/9VkS
|
||||
HPIj+1TTDxERo3jtOljIly15NrJsrOmXDULAF8BJw+hrY9nFb2eaLH5lkejXO4/M
|
||||
IYsjzJymJ7WTkOPllEUIi5qYf9kBFA/P020CteYY0/RD1KFNxosHVxTyrjD8iVFG
|
||||
5/YLsQKBgG7G9lMbzbXsdTvlJJm5sId0Nxdc97PezpC3IAdDCiqRwushbGV00n9W
|
||||
tzg8udeocVh3KeL9btxIovSFKgGC1ONKbsYULuVQVGe0LMpqGr6IVjhoOEQzGaJA
|
||||
a9CvKv9Qk2UPgtNBVpP4fhEhyTaHY8sWCSYXvKRhFlL4gH47P0tl
|
||||
-----END RSA PRIVATE KEY-----
|
||||
@@ -1 +0,0 @@
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCu8Ghr7LPQPp0e2yxN+2ALq/LVN3CgGpdwYQ8Yd2/sGexcCjtwIJMOQOT7/bIAAR3/UQMWjXV+rGtsDgqEctyEBBEIevzE1CmY2Vp13sSWFKxDVvEBBtMDO7UdvshzF68TRVMMWZWVOGzDoZZd7mVNgjz6lldSnKtv8rx5SL/uHKQja9SyGuR9JoKa2eNGzrF0KRZLXwwlHXN5GwmJLA8wIbjQM962IYGhDDjG1xSFfGO15xjabCh7bHtNk3Qb5WRNBBRmTEvlJG6eMokIsW6u6H/92sKazemx8MYc+qS88EeYZsy+fW8MyAT0od0m9surajf+tmYim9Rpvn/gu3T7 sliim@S70wN
|
||||
@@ -0,0 +1,5 @@
|
||||
<service
|
||||
type="http"
|
||||
name="apache"
|
||||
description="A secure Apache service"
|
||||
</service>
|
||||
3
modules/services/unix/http/apache/apache.pp
Normal file
3
modules/services/unix/http/apache/apache.pp
Normal file
@@ -0,0 +1,3 @@
|
||||
class { 'apache':
|
||||
mpm_module => 'prefork'
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
include apache
|
||||
48
modules/services/unix/http/apache/module/apache/Gemfile
Normal file
48
modules/services/unix/http/apache/module/apache/Gemfile
Normal file
@@ -0,0 +1,48 @@
|
||||
source ENV['GEM_SOURCE'] || "https://rubygems.org"
|
||||
|
||||
def location_for(place, fake_version = nil)
|
||||
if place =~ /^(git:[^#]*)#(.*)/
|
||||
[fake_version, { :git => $1, :branch => $2, :require => false }].compact
|
||||
elsif place =~ /^file:\/\/(.*)/
|
||||
['>= 0', { :path => File.expand_path($1), :require => false }]
|
||||
else
|
||||
[place, { :require => false }]
|
||||
end
|
||||
end
|
||||
|
||||
group :development, :unit_tests do
|
||||
gem 'rspec-core', '3.1.7', :require => false
|
||||
gem 'puppetlabs_spec_helper', :require => false
|
||||
gem 'simplecov', :require => false
|
||||
gem 'puppet_facts', :require => false
|
||||
gem 'json', :require => false
|
||||
end
|
||||
|
||||
group :system_tests do
|
||||
if beaker_version = ENV['BEAKER_VERSION']
|
||||
gem 'beaker', *location_for(beaker_version)
|
||||
end
|
||||
if beaker_rspec_version = ENV['BEAKER_RSPEC_VERSION']
|
||||
gem 'beaker-rspec', *location_for(beaker_rspec_version)
|
||||
else
|
||||
gem 'beaker-rspec', :require => false
|
||||
end
|
||||
gem 'serverspec', :require => false
|
||||
gem 'beaker-puppet_install_helper', :require => false
|
||||
end
|
||||
|
||||
|
||||
|
||||
if facterversion = ENV['FACTER_GEM_VERSION']
|
||||
gem 'facter', facterversion, :require => false
|
||||
else
|
||||
gem 'facter', :require => false
|
||||
end
|
||||
|
||||
if puppetversion = ENV['PUPPET_GEM_VERSION']
|
||||
gem 'puppet', puppetversion, :require => false
|
||||
else
|
||||
gem 'puppet', :require => false
|
||||
end
|
||||
|
||||
# vim:ft=ruby
|
||||
@@ -1,8 +1,6 @@
|
||||
Copyright (C) 2013 Alessandro Franceschi / Lab42
|
||||
Copyright (C) 2012 Puppet Labs Inc
|
||||
|
||||
for the relevant commits Copyright (C) by the respective authors.
|
||||
|
||||
Contact Lab42 at: info@lab42.it
|
||||
Puppet Labs can be contacted at: info@puppetlabs.com
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
3478
modules/services/unix/http/apache/module/apache/README.md
Normal file
3478
modules/services/unix/http/apache/module/apache/README.md
Normal file
File diff suppressed because it is too large
Load Diff
11
modules/services/unix/http/apache/module/apache/Rakefile
Normal file
11
modules/services/unix/http/apache/module/apache/Rakefile
Normal file
@@ -0,0 +1,11 @@
|
||||
require 'puppetlabs_spec_helper/rake_tasks'
|
||||
require 'puppet-lint/tasks/puppet-lint'
|
||||
|
||||
PuppetLint.configuration.fail_on_warnings = true
|
||||
PuppetLint.configuration.send('relative')
|
||||
PuppetLint.configuration.send('disable_80chars')
|
||||
PuppetLint.configuration.send('disable_class_inherits_from_params_class')
|
||||
PuppetLint.configuration.send('disable_documentation')
|
||||
PuppetLint.configuration.send('disable_single_quote_string_with_variables')
|
||||
PuppetLint.configuration.send('disable_only_variable_string')
|
||||
PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp"]
|
||||
310
modules/services/unix/http/apache/module/apache/checksums.json
Normal file
310
modules/services/unix/http/apache/module/apache/checksums.json
Normal file
@@ -0,0 +1,310 @@
|
||||
{
|
||||
"CHANGELOG.md": "b430057266b6271f5fb6d43d655b8039",
|
||||
"CONTRIBUTING.md": "e2b8e8e433fc76b3798b7fe435f49375",
|
||||
"Gemfile": "e6e6eb07f0bfc9bb1e328895ca49b3f5",
|
||||
"LICENSE": "b3f8a01d8699078d82e8c3c992307517",
|
||||
"README.md": "0c47aec304ff374bceed885f7a7cb164",
|
||||
"Rakefile": "ed3db0e49f5fcb381a19542c08ec473f",
|
||||
"examples/apache.pp": "819cf9116ffd349e6757e1926d11ca2f",
|
||||
"examples/dev.pp": "9f5727f69f536538f8d840fad0852308",
|
||||
"examples/init.pp": "4eac4a7ef68499854c54a78879e25535",
|
||||
"examples/mod_load_params.pp": "5981af4d625a906fce1cedeb3f70cb90",
|
||||
"examples/mods.pp": "0085911ba562b7e56ad8d793099c9240",
|
||||
"examples/mods_custom.pp": "9afd068edce0538b5c55a3bc19f9c24a",
|
||||
"examples/php.pp": "60e7939034d531dd6b95af35338bcbe7",
|
||||
"examples/vhost.pp": "bd91438534d12511b01f31fe8d10cd35",
|
||||
"examples/vhost_directories.pp": "b4e6b5a596e5bae122233652b9a33e32",
|
||||
"examples/vhost_filter.pp": "cd8ec7303f3bb508c88a473c43d31f0a",
|
||||
"examples/vhost_ip_based.pp": "7d9f7b6976de7488ab6ff0a6e647fc73",
|
||||
"examples/vhost_proxypass.pp": "59b87f88943aa809578288e26b41aade",
|
||||
"examples/vhost_ssl.pp": "9f3716bc15a9a6760f1d6cc3bf8ce8ac",
|
||||
"examples/vhosts_without_listen.pp": "a6692104056a56517b4365bcc816e7f4",
|
||||
"files/httpd": "295f5e924afe6f752d29327e73fe6d0a",
|
||||
"lib/puppet/parser/functions/bool2httpd.rb": "05d5deeb6e0c31acee7c55b249ec8e06",
|
||||
"lib/puppet/parser/functions/enclose_ipv6.rb": "581bc163291824909d1700909db96512",
|
||||
"lib/puppet/parser/functions/validate_apache_log_level.rb": "d75bc4ef17ff5c9a1f94dd3948e733d1",
|
||||
"lib/puppet/provider/a2mod/a2mod.rb": "d986d8e8373f3f31c97359381c180628",
|
||||
"lib/puppet/provider/a2mod/gentoo.rb": "2492d446adbb68f678e86a75eb7ff3bd",
|
||||
"lib/puppet/provider/a2mod/modfix.rb": "b689a1c83c9ccd8590399c67f3e588e5",
|
||||
"lib/puppet/provider/a2mod/redhat.rb": "c39b80e75e7d0666def31c2a6cdedb0b",
|
||||
"lib/puppet/provider/a2mod.rb": "03ed73d680787dd126ea37a03be0b236",
|
||||
"lib/puppet/type/a2mod.rb": "9042ccc045bfeecca28bebb834114f05",
|
||||
"manifests/balancer.pp": "5c20fa17545bd49375ee6687deb6b6fd",
|
||||
"manifests/balancermember.pp": "8f44f65124330b7e9b49a7100f86fe6d",
|
||||
"manifests/confd/no_accf.pp": "406d0ca41c3b90f83740ca218dc3f484",
|
||||
"manifests/custom_config.pp": "9c27b865b50e815352acbc286cd255fd",
|
||||
"manifests/default_confd_files.pp": "86fdbe5773abb7c2da26db096973865c",
|
||||
"manifests/default_mods/load.pp": "bc0b3b65edd1ba6178c09672352f9bce",
|
||||
"manifests/default_mods.pp": "f6f6ecfaaca79a7eec50335daa9eaf40",
|
||||
"manifests/dev.pp": "9285af7f4e3b343a8695af3897dfdb07",
|
||||
"manifests/fastcgi/server.pp": "47549cf3028f78281bcbee5d8492c8ea",
|
||||
"manifests/init.pp": "9bc0834ae827f8bdb62192926adda0d9",
|
||||
"manifests/listen.pp": "f7e224cba3b8021f90511af4f43d8b1f",
|
||||
"manifests/mod/actions.pp": "ec2a5d1cf54790204750f9b67938d230",
|
||||
"manifests/mod/alias.pp": "b920887e67857a09252c10e30949c85c",
|
||||
"manifests/mod/auth_basic.pp": "dffef6ff10145393cb78fcaa27220c53",
|
||||
"manifests/mod/auth_cas.pp": "a20c718cc3ffab32f7c72f42160a5602",
|
||||
"manifests/mod/auth_kerb.pp": "08d536cb13281db3b9ed9a966ad431fd",
|
||||
"manifests/mod/auth_mellon.pp": "85e7085a44b3039e4a2c7b463ca8bdb2",
|
||||
"manifests/mod/authn_core.pp": "4db773ddbc0d875230085782d4521951",
|
||||
"manifests/mod/authn_file.pp": "eeb11513490beee901574746faaeabdf",
|
||||
"manifests/mod/authnz_ldap.pp": "e3f91908be35306a488b44c55608b2a0",
|
||||
"manifests/mod/authz_default.pp": "b7c94cfa4e008155fffd241d35834064",
|
||||
"manifests/mod/authz_user.pp": "d446c90c44304594206bd2a0112be625",
|
||||
"manifests/mod/autoindex.pp": "05112ccb06dc218f9a7b937767a6ea2d",
|
||||
"manifests/mod/cache.pp": "b56d68b9401ba3e02a1f2fe55cdfbcca",
|
||||
"manifests/mod/cgi.pp": "558a0350d1e8634a706543e0c6e28687",
|
||||
"manifests/mod/cgid.pp": "f9cea0ad9269bf134637c7c667469842",
|
||||
"manifests/mod/dav.pp": "9df80d36dd609be9032a8260aa9d10c1",
|
||||
"manifests/mod/dav_fs.pp": "4528673b6e8d0af6935d9d630028b9f0",
|
||||
"manifests/mod/dav_svn.pp": "f021fe8048deaa06759cd0b96b450363",
|
||||
"manifests/mod/deflate.pp": "324c867212f6d9e4593cc4aba392f590",
|
||||
"manifests/mod/dev.pp": "42673bab60b6fc0f3aa6e2357ec0a27c",
|
||||
"manifests/mod/dir.pp": "8e577c570ba5e835c4f82232a1c01a4e",
|
||||
"manifests/mod/disk_cache.pp": "e5b39902f6198d9e0851e551b7a5bf40",
|
||||
"manifests/mod/event.pp": "d0d35e0fb01aa64c211cbc4afbda7c49",
|
||||
"manifests/mod/expires.pp": "069783635a7a4f97af535cc149da6589",
|
||||
"manifests/mod/ext_filter.pp": "ba8f2bb429a0ed12880b80294430ae7e",
|
||||
"manifests/mod/fastcgi.pp": "237ff6ebc17c35ee2e3c82d2e19cd442",
|
||||
"manifests/mod/fcgid.pp": "1e57a267408ca82fc258a244299ee15f",
|
||||
"manifests/mod/filter.pp": "b0039f3ae932b1204994ef2180dd76d2",
|
||||
"manifests/mod/geoip.pp": "2a963d07231897e8d6928df6dc913676",
|
||||
"manifests/mod/headers.pp": "ef3de538a0a4c9406236faf43eb89710",
|
||||
"manifests/mod/include.pp": "a3b66eda88e38d90825c16b834bacd8d",
|
||||
"manifests/mod/info.pp": "bad325232ff8038449dcafc11ff37ca1",
|
||||
"manifests/mod/itk.pp": "d1039a503a112a1636659e474070e1f3",
|
||||
"manifests/mod/ldap.pp": "5b1c9afe7b7048a479f780f57e2f8cd2",
|
||||
"manifests/mod/mime.pp": "7177378907202b89c88b81f7783e791e",
|
||||
"manifests/mod/mime_magic.pp": "481e016b74b0649bfdcbb32104a62054",
|
||||
"manifests/mod/negotiation.pp": "6860ed514001b9f3f6945c78d250fd32",
|
||||
"manifests/mod/nss.pp": "2ac2830eef417bcd5248dd7553d2fef6",
|
||||
"manifests/mod/pagespeed.pp": "2638c14081f8065bc8940b8d47782cc3",
|
||||
"manifests/mod/passenger.pp": "d094fc200d72c46ba11b583eda530a44",
|
||||
"manifests/mod/perl.pp": "0bc488e1ac33e4e8987e0b07aa909682",
|
||||
"manifests/mod/peruser.pp": "4bb5f57d14382016f8b7f086046ad8f1",
|
||||
"manifests/mod/php.pp": "71812033b362bc749be00beaca5f3d5f",
|
||||
"manifests/mod/prefork.pp": "2a32998b2ecea3a272c9a31631885d0b",
|
||||
"manifests/mod/proxy.pp": "39e224390d43ffe082ff60fba2b97fc4",
|
||||
"manifests/mod/proxy_ajp.pp": "073e2406aea7822750d4c21f02d8ac80",
|
||||
"manifests/mod/proxy_balancer.pp": "6d16440ba6bed5427b331b6c6abf4063",
|
||||
"manifests/mod/proxy_connect.pp": "574df18a67e478a3be903238ade3d334",
|
||||
"manifests/mod/proxy_html.pp": "1a8ef7d17e65954aab303e3547e02f22",
|
||||
"manifests/mod/proxy_http.pp": "0db1b26f8b4036b0d46ba86b7eaac561",
|
||||
"manifests/mod/python.pp": "15f03d79e45737fdf0afca9665706b88",
|
||||
"manifests/mod/remoteip.pp": "7fa5b92322df550f58421b24a53dbb01",
|
||||
"manifests/mod/reqtimeout.pp": "aee3d869e6ca6eed18071c8d2aa97aff",
|
||||
"manifests/mod/rewrite.pp": "292f2d6ce2078fa9df7f686105ea7b95",
|
||||
"manifests/mod/rpaf.pp": "4844d717d6577aee8a788a7fbdc5e8dd",
|
||||
"manifests/mod/security.pp": "10125c8c07389f75a4e5e22bf8c2e7aa",
|
||||
"manifests/mod/setenvif.pp": "b2ae43541bf1df5374187339e50a081f",
|
||||
"manifests/mod/shib.pp": "3e2d3b5bf864fd292fa30f7c98d449f6",
|
||||
"manifests/mod/speling.pp": "fa89a82933d30d2ebfe11e3ad9966bd1",
|
||||
"manifests/mod/ssl.pp": "3d733329e9f568f68229617cf806b0c1",
|
||||
"manifests/mod/status.pp": "0b24de931fd8d54b2db0e3d16f0d0d8c",
|
||||
"manifests/mod/suexec.pp": "2a8671856a0ece597e9b57867dc35e76",
|
||||
"manifests/mod/suphp.pp": "6905059571fa21b7de957fd90540acff",
|
||||
"manifests/mod/userdir.pp": "bbe716e8ff38815a51cc4eaaa0c1e4df",
|
||||
"manifests/mod/version.pp": "6cb31057ebffa796f95642cc95f9499d",
|
||||
"manifests/mod/vhost_alias.pp": "ee1225a748daaf50aca39a6d93fb8470",
|
||||
"manifests/mod/worker.pp": "f6ec99efec5fcdf49bf22f98351884a5",
|
||||
"manifests/mod/wsgi.pp": "0377fe287e51f4a396bd15b47f2628cc",
|
||||
"manifests/mod/xsendfile.pp": "fba06f05a19c466654aca5ecaa705bf0",
|
||||
"manifests/mod.pp": "aa769aad02f4af7cdfbbf9e356111a4d",
|
||||
"manifests/mpm.pp": "a68ddf7dd7ba745c0497bd755d971a4f",
|
||||
"manifests/namevirtualhost.pp": "67618d40112e4ddc1b46f64af2a5e875",
|
||||
"manifests/package.pp": "90f8e969c4f920a1e898ae2f6420e438",
|
||||
"manifests/params.pp": "920b932a31d65f05d71825fd0877461f",
|
||||
"manifests/peruser/multiplexer.pp": "0ea75341b7a93e55bcfb431a93b1a6c9",
|
||||
"manifests/peruser/processor.pp": "62f0ad5ed2ec36dadc7f40ad2a9e1bb9",
|
||||
"manifests/php.pp": "9c9d07e12bf5d112b0b54f5bd69046fc",
|
||||
"manifests/proxy.pp": "7c8515b88406922e148322ee15044b29",
|
||||
"manifests/python.pp": "ddef4cd73850fdc2dc126d4579c30adf",
|
||||
"manifests/security/rule_link.pp": "4635131018b0c5cd5f57ecea9f708b65",
|
||||
"manifests/service.pp": "e0821dac17ef2bc00068ceae06bc17d9",
|
||||
"manifests/ssl.pp": "173f3d6a7fd2b5f4100c4ff03d84e13b",
|
||||
"manifests/version.pp": "bcc947740e4357cbdc9a1d54f44305c7",
|
||||
"manifests/vhost/custom.pp": "cd51ccfa746809b18324a129d141ae39",
|
||||
"manifests/vhost.pp": "f8af2035fdd86328cf9026962a12589c",
|
||||
"metadata.json": "f3990d6a47bb183d80cb1bd86e063ba7",
|
||||
"spec/acceptance/apache_parameters_spec.rb": "5b95e67d474cc8a132c45f6e91714037",
|
||||
"spec/acceptance/apache_ssl_spec.rb": "d336538c230a6791746895e6624289c3",
|
||||
"spec/acceptance/class_spec.rb": "4c66cb0d877d636db1c362fb71982ca6",
|
||||
"spec/acceptance/custom_config_spec.rb": "61e03d814d0671d194dd40e6b1ad5c9b",
|
||||
"spec/acceptance/default_mods_spec.rb": "371aae3d37d8cce04e60a4c2534532b1",
|
||||
"spec/acceptance/itk_spec.rb": "812c855013c08ebb13e642dc5199b41a",
|
||||
"spec/acceptance/mod_dav_svn_spec.rb": "c70f239472813adcd5710c9b60ebc24c",
|
||||
"spec/acceptance/mod_deflate_spec.rb": "dd39bfb069e0233bf134caaeb1dc6fe6",
|
||||
"spec/acceptance/mod_fcgid_spec.rb": "ef0e3368ea14247c05ff43217b5856ee",
|
||||
"spec/acceptance/mod_mime_spec.rb": "0869792d98c1b2577f02d97c92f1765e",
|
||||
"spec/acceptance/mod_negotiation_spec.rb": "017f6b0cc1496c25aa9b8a33ef8dbbb3",
|
||||
"spec/acceptance/mod_pagespeed_spec.rb": "03a32f1018d01e8816f73f237c02cc08",
|
||||
"spec/acceptance/mod_passenger_spec.rb": "82092218b8346033b3e0c74d88213c43",
|
||||
"spec/acceptance/mod_php_spec.rb": "65d047d50bba4c17ab9dbdfa0dc4932b",
|
||||
"spec/acceptance/mod_proxy_html_spec.rb": "3b34027b521dcd06ddffdba7da1cd25d",
|
||||
"spec/acceptance/mod_security_spec.rb": "ea746c9837c1454a0c50005a989452c0",
|
||||
"spec/acceptance/mod_suphp_spec.rb": "390a6bcb3cfd120a69c0c1f4fbb78b4f",
|
||||
"spec/acceptance/nodesets/centos-70-x64.yml": "0ae796256280ca157abc98f7cb492ea4",
|
||||
"spec/acceptance/nodesets/debian-607-x64.yml": "52f42f3b8fc507a5fc825977d62665a3",
|
||||
"spec/acceptance/nodesets/debian-70rc1-x64.yml": "717aa92150ebe3fca718807c7c93126f",
|
||||
"spec/acceptance/nodesets/debian-73-i386.yml": "40aeb7ceab29148bb98a1e2bd51aba86",
|
||||
"spec/acceptance/nodesets/debian-73-x64.yml": "df78f357e1bd0f7f9818d552eeb35026",
|
||||
"spec/acceptance/nodesets/debian-82-x64.yml": "05b593024541be6972914aa2e84678f6",
|
||||
"spec/acceptance/nodesets/default.yml": "40a4f108ab83030fdfdcc230ecaaed9a",
|
||||
"spec/acceptance/nodesets/fedora-18-x64.yml": "9c907e4416a5fd487ff30a672a6b1c9e",
|
||||
"spec/acceptance/nodesets/ubuntu-server-10044-x64.yml": "75e86400b7889888dc0781c0ae1a1297",
|
||||
"spec/acceptance/nodesets/ubuntu-server-12042-x64.yml": "d30d73e34cd50b043c7d14e305955269",
|
||||
"spec/acceptance/nodesets/ubuntu-server-1310-x64.yml": "9deb39279e104d765179b471c6ebb3a2",
|
||||
"spec/acceptance/nodesets/ubuntu-server-1404-x64.yml": "5f0aed10098ac5b78e4217bb27c7aaf0",
|
||||
"spec/acceptance/prefork_worker_spec.rb": "1570eefe61d667a1b43824adc0b2bb78",
|
||||
"spec/acceptance/service_spec.rb": "341f157cb33fa48d5166d2274ad3bc65",
|
||||
"spec/acceptance/version.rb": "5a739645e123c5d10351ec5de4e68921",
|
||||
"spec/acceptance/vhost_spec.rb": "3a31e855eb237f6ad55415d711ef1bb2",
|
||||
"spec/classes/apache_spec.rb": "53c6ab619681fe83e39b985e27d8b8c9",
|
||||
"spec/classes/dev_spec.rb": "6bc9ff7cffb77aac52c5bd3acc157d2d",
|
||||
"spec/classes/mod/alias_spec.rb": "cb7fa1744b0624ec6d04d6dba80bccda",
|
||||
"spec/classes/mod/auth_cas_spec.rb": "34af1e2489fe7f805c760c40b2bc3f5b",
|
||||
"spec/classes/mod/auth_kerb_spec.rb": "56066a4060352f76efdad26fe51b2e20",
|
||||
"spec/classes/mod/auth_mellon_spec.rb": "7f2cfeb9221fc8eac02a2c18a9986bb0",
|
||||
"spec/classes/mod/authnz_ldap_spec.rb": "ce2f5fb517d4cc760c913fe131b1550f",
|
||||
"spec/classes/mod/dav_svn_spec.rb": "6cf5fbd5e73c455f0f5afa01561cc704",
|
||||
"spec/classes/mod/deflate_spec.rb": "a5b6afd416cbad17f21d5c86c83c3485",
|
||||
"spec/classes/mod/dev_spec.rb": "78d215d7ef3a8e2df3e8789eb75fc4ca",
|
||||
"spec/classes/mod/dir_spec.rb": "555e4b21a18422034b8b16560a1034a1",
|
||||
"spec/classes/mod/disk_cache.rb": "50f464d34fda0d1e07248b3f7ff0cfef",
|
||||
"spec/classes/mod/event_spec.rb": "d8d0bd5dee8a4bf2dcd709326dfdd4e2",
|
||||
"spec/classes/mod/expires_spec.rb": "a9ff97bcca20bb17102efd88ea0462e6",
|
||||
"spec/classes/mod/ext_filter_spec.rb": "00ca122b3f697a73f57f81ad9c67de7d",
|
||||
"spec/classes/mod/fastcgi_spec.rb": "76ac8328da6c2fe1e126d8dcdcdb5519",
|
||||
"spec/classes/mod/fcgid_spec.rb": "5baa913ba69842771fab4b58c8677544",
|
||||
"spec/classes/mod/info_spec.rb": "39a67732875c7e43bf1e45b3603d782c",
|
||||
"spec/classes/mod/itk_spec.rb": "622f23a1346383846cbc98e38388034d",
|
||||
"spec/classes/mod/ldap_spec.rb": "4c3546f9976ac25b63888fd62b136d5f",
|
||||
"spec/classes/mod/mime_magic_spec.rb": "8291c37b89f9d50f58fa94ab9cbb1bfe",
|
||||
"spec/classes/mod/mime_spec.rb": "5e527739b595f9b0638ce384648c3187",
|
||||
"spec/classes/mod/negotiation_spec.rb": "f1b10fe931b96f72f5d0eaf86354fce9",
|
||||
"spec/classes/mod/pagespeed_spec.rb": "afd7639e9acfaf1c22ba1149cf7dc763",
|
||||
"spec/classes/mod/passenger_spec.rb": "d24e6c252592a50ef4eb15a2092481cb",
|
||||
"spec/classes/mod/perl_spec.rb": "11fb2ae842e64d467ccf70813ef3de7d",
|
||||
"spec/classes/mod/peruser_spec.rb": "c379ce85a997789856b12c27957bf994",
|
||||
"spec/classes/mod/php_spec.rb": "4c02498c30a0f7fc77ef126288930acf",
|
||||
"spec/classes/mod/prefork_spec.rb": "d82f0f25691ba019b912cd000dbb845f",
|
||||
"spec/classes/mod/proxy_connect_spec.rb": "bc0d0d6328288cd91d84ac9de66e9019",
|
||||
"spec/classes/mod/proxy_html_spec.rb": "893bfa8dba37e63a24229e28cc74d073",
|
||||
"spec/classes/mod/python_spec.rb": "45736e6305ca541ba29f997b8e7dd0ef",
|
||||
"spec/classes/mod/remoteip_spec.rb": "e8840c791f3561c6d466040b888551ed",
|
||||
"spec/classes/mod/reqtimeout_spec.rb": "cee7de04531d3fb49d75f8f8a7c2b493",
|
||||
"spec/classes/mod/rpaf_spec.rb": "1845e640c44f8daeeffb13b29a26da84",
|
||||
"spec/classes/mod/security_spec.rb": "f5a8dcdd5057bc58fc4c2b5120428761",
|
||||
"spec/classes/mod/shib_spec.rb": "f80ed9a256a9b8f9cb3beaba4b93e32b",
|
||||
"spec/classes/mod/speling_spec.rb": "4727fbb92f074e0cf3911e6cffe3322f",
|
||||
"spec/classes/mod/ssl_spec.rb": "ce2114982774840242ab652f5fa985c3",
|
||||
"spec/classes/mod/status_spec.rb": "1c7520050c8bed47492acd51588be52d",
|
||||
"spec/classes/mod/suphp_spec.rb": "0c4d625a64124e7c9c14ea2b68dc7ebe",
|
||||
"spec/classes/mod/worker_spec.rb": "c326e36fbcfe9f0c59dc1db389a33926",
|
||||
"spec/classes/mod/wsgi_spec.rb": "532da8779e878372ff29b51dfaefceea",
|
||||
"spec/classes/params_spec.rb": "7bb6270f0338de41e1c34bd77cd844b7",
|
||||
"spec/classes/service_spec.rb": "d23f6cd3eac018e368e0ba32cbf95f11",
|
||||
"spec/defines/balancermember_spec.rb": "6071ddc9a56be6ecccfade6e233fb34b",
|
||||
"spec/defines/custom_config_spec.rb": "a7e3392933cabc8ed6bb57deaebb36d9",
|
||||
"spec/defines/fastcgi_server_spec.rb": "5798af8e6380d05f3ab38f4788b5c47c",
|
||||
"spec/defines/mod_spec.rb": "a10e5b2570419737c03cd0f6347cc985",
|
||||
"spec/defines/modsec_link_spec.rb": "3421b21f8234637dd1c32ebcf89e44c3",
|
||||
"spec/defines/vhost_custom_spec.rb": "d5596a7a0c239d4c0ed8bebbb6a124ab",
|
||||
"spec/defines/vhost_spec.rb": "b9b90663d227f504a6eefe4fed1399d9",
|
||||
"spec/spec.opts": "a600ded995d948e393fbe2320ba8e51c",
|
||||
"spec/spec_helper.rb": "86e537c02437cf6b6875ee65a10f5f98",
|
||||
"spec/spec_helper_acceptance.rb": "9f1a9850e558b22d4d2f8fa555cf582a",
|
||||
"spec/unit/provider/a2mod/gentoo_spec.rb": "4d46c6755d98216aacf8b5d0b8021140",
|
||||
"spec/unit/puppet/parser/functions/bool2httpd_spec.rb": "0c9bca53eb43b5fc888126514b2a174c",
|
||||
"spec/unit/puppet/parser/functions/enclose_ipv6_spec.rb": "0145a78254ea716e5e7600d9464318a8",
|
||||
"spec/unit/puppet/parser/functions/validate_apache_log_level.rb": "8f558fd81d1655e9ab20896152eca512",
|
||||
"templates/confd/no-accf.conf.erb": "a614f28c4b54370e4fa88403dfe93eb0",
|
||||
"templates/fastcgi/server.erb": "482ce7a72a08f21e3592e584178d5917",
|
||||
"templates/httpd.conf.erb": "93bd1cbfae5a922dc8dcb1ffc7c266ee",
|
||||
"templates/listen.erb": "6286aa08f9e28caee54b1e1ee031b9d6",
|
||||
"templates/mod/alias.conf.erb": "71028c659b7d1784c0e9f373846c8457",
|
||||
"templates/mod/auth_cas.conf.erb": "74595985c3b0f9df1aaa0ad5dd7a7906",
|
||||
"templates/mod/auth_mellon.conf.erb": "4e17d22a8f1bc312e976e8513199c945",
|
||||
"templates/mod/authnz_ldap.conf.erb": "12c9a1482694ddad3143e5eef03fb531",
|
||||
"templates/mod/autoindex.conf.erb": "2421a3c6df32c7e38c2a7a22afdf5728",
|
||||
"templates/mod/cgid.conf.erb": "f8ce27d60bc495bab16de2696ebb2fd0",
|
||||
"templates/mod/dav_fs.conf.erb": "10c1131168e35319e22b3fbfe51aebfd",
|
||||
"templates/mod/deflate.conf.erb": "e866ecf2bfe8e42ea984267f569723db",
|
||||
"templates/mod/dir.conf.erb": "2485da78a2506c14bf51dde38dd03360",
|
||||
"templates/mod/disk_cache.conf.erb": "48d1b54ec1dedea7f68451bc0774790e",
|
||||
"templates/mod/event.conf.erb": "469ef574b0ae1728203002a52f3d5a3b",
|
||||
"templates/mod/expires.conf.erb": "7a77f8b1d50c53ee77a6cb798c51a2b9",
|
||||
"templates/mod/ext_filter.conf.erb": "4e4e4143ab402a9f9d51301b1a192202",
|
||||
"templates/mod/fastcgi.conf.erb": "2404caa7d91dea083fc4f8b6f18acd24",
|
||||
"templates/mod/geoip.conf.erb": "93b95f44ec733ee8231be82381e02782",
|
||||
"templates/mod/info.conf.erb": "dd434aca2b3693c425a2c252a2c39f46",
|
||||
"templates/mod/itk.conf.erb": "eff84b78e4f2f8c5c3a2e9fc4b8aad16",
|
||||
"templates/mod/ldap.conf.erb": "72701fa36054b1d3c5333feb804fd2ba",
|
||||
"templates/mod/load.erb": "01132434e6101080c41548b0ba7e57d8",
|
||||
"templates/mod/mime.conf.erb": "785632ed912d7206098c10765c980858",
|
||||
"templates/mod/mime_magic.conf.erb": "db7ac6bbf365d016852744d339c12d16",
|
||||
"templates/mod/mpm_event.conf.erb": "80097a19d063a4f973465d9ef5c0c0bf",
|
||||
"templates/mod/negotiation.conf.erb": "a2f0fb40cd038cb17bedc2b84d9f48ea",
|
||||
"templates/mod/nss.conf.erb": "1470720436c1f1d3dddb79cb90355b2c",
|
||||
"templates/mod/pagespeed.conf.erb": "da52f6012cd513d2f9c1e410005187fb",
|
||||
"templates/mod/passenger.conf.erb": "e6d25300be83bd7658c4a100ecc493b5",
|
||||
"templates/mod/peruser.conf.erb": "c4f4054aee899249ea6fef5a9e5c14ff",
|
||||
"templates/mod/php5.conf.erb": "38abd949e9df2c4961cf400fd5ad928b",
|
||||
"templates/mod/prefork.conf.erb": "f9ec5a7eaea78a19b04fa69f8acd8a84",
|
||||
"templates/mod/proxy.conf.erb": "7eef34af57278ea572b267cff9fb6631",
|
||||
"templates/mod/proxy_html.conf.erb": "69c9ce9b7f24e1337065f1ce26b057a0",
|
||||
"templates/mod/remoteip.conf.erb": "5e3fae3bb4532d351d3860652215af92",
|
||||
"templates/mod/reqtimeout.conf.erb": "314ef068b786ae5afded290a8b6eab15",
|
||||
"templates/mod/rpaf.conf.erb": "5447539c083ae54f3a9e93c1ac8c988b",
|
||||
"templates/mod/security.conf.erb": "e708c110f4bfe2fe6fdb9fc61e8498e4",
|
||||
"templates/mod/security_crs.conf.erb": "0533f947d1d418774213bc9eb0444358",
|
||||
"templates/mod/setenvif.conf.erb": "c7ede4173da1915b7ec088201f030c28",
|
||||
"templates/mod/ssl.conf.erb": "5009e83ef1b9c626e04fe6e469f35a05",
|
||||
"templates/mod/status.conf.erb": "9e959900ac58c8de34783886efeebce7",
|
||||
"templates/mod/suphp.conf.erb": "05bb7b3ea23976b032ce405bfd4edd18",
|
||||
"templates/mod/unixd_fcgid.conf.erb": "1780c7808bb3811deaf0007c890df4dc",
|
||||
"templates/mod/userdir.conf.erb": "efd4cb18056690f2bddc4332c88bdd94",
|
||||
"templates/mod/worker.conf.erb": "923ce06f97c04e548a438025b81abf50",
|
||||
"templates/mod/wsgi.conf.erb": "9a416fa3b71be0795679069809686300",
|
||||
"templates/namevirtualhost.erb": "fbfca19a639e18e6c477e191344ac8ae",
|
||||
"templates/ports_header.erb": "afe35cb5747574b700ebaa0f0b3a626e",
|
||||
"templates/vhost/_access_log.erb": "a0c804cb6fc03e5c573f9bfbcf73d9c6",
|
||||
"templates/vhost/_action.erb": "a004dfcac2e63cef65cf8aa0e270b636",
|
||||
"templates/vhost/_additional_includes.erb": "10e9c0056e962c49459839a1576b082e",
|
||||
"templates/vhost/_aliases.erb": "6412f695e911feac18986da38f290dae",
|
||||
"templates/vhost/_allow_encoded_slashes.erb": "37dee0b6fe9287342a10b533955dff81",
|
||||
"templates/vhost/_auth_kerb.erb": "3d0de0c3066440dffcbc75215174705b",
|
||||
"templates/vhost/_block.erb": "cab4365316621b4e06cd1258abeb1d23",
|
||||
"templates/vhost/_charsets.erb": "d152b6a7815e9edc0fe9bf9acbe2f1ec",
|
||||
"templates/vhost/_custom_fragment.erb": "325ff48cefc06db035daa3491c391a88",
|
||||
"templates/vhost/_directories.erb": "36d90f161866bbdfde942c69279dafbc",
|
||||
"templates/vhost/_docroot.erb": "65d882a3c9d6b6bdd2f9b771f378035a",
|
||||
"templates/vhost/_error_document.erb": "81d3007c1301a5c5f244c082cfee9de2",
|
||||
"templates/vhost/_fallbackresource.erb": "e6c103bee7f6f76b10f244fc9fd1cd3b",
|
||||
"templates/vhost/_fastcgi.erb": "d07c41eae32671b38b5dba14724c14cc",
|
||||
"templates/vhost/_file_footer.erb": "e27b2525783e590ca1820f1e2118285d",
|
||||
"templates/vhost/_file_header.erb": "6bf5dd9f0cdf4e436ba4379d0ff246c9",
|
||||
"templates/vhost/_filters.erb": "597b9de5ae210af9182a1c95172115e7",
|
||||
"templates/vhost/_header.erb": "9eb9d4075f288183d8224ddec5b2f126",
|
||||
"templates/vhost/_itk.erb": "8bf90b9855a9277f7a665b10f6c57fe9",
|
||||
"templates/vhost/_logging.erb": "5bc4cbb1bc8a292acc0ba0420f96ca4e",
|
||||
"templates/vhost/_passenger.erb": "6b8f937fffe27e65f9aa72e950c4dbfc",
|
||||
"templates/vhost/_passenger_base_uris.erb": "c8d7f4da1434078e856c72671942dcd8",
|
||||
"templates/vhost/_php.erb": "0be13b20951791db0f09c328e13b7eaf",
|
||||
"templates/vhost/_php_admin.erb": "107a57e9e7b3f86d1abcf743f672a292",
|
||||
"templates/vhost/_proxy.erb": "5832dab1efcad5421a0cd4fe9a7f4f49",
|
||||
"templates/vhost/_rack.erb": "ebe187c1bdc81eec9c8e0d9026120b18",
|
||||
"templates/vhost/_redirect.erb": "639e170cafa9e703ab38797c8fc3030b",
|
||||
"templates/vhost/_requestheader.erb": "db1b0cdda069ae809b5b83b0871ef991",
|
||||
"templates/vhost/_rewrite.erb": "63a86545cd1c1a8e9e8518dd270deb3e",
|
||||
"templates/vhost/_scriptalias.erb": "98713f33cca15b22c749bd35ea9a7b41",
|
||||
"templates/vhost/_security.erb": "58cd0f606e104be456dea0b5d52212e8",
|
||||
"templates/vhost/_serveralias.erb": "95fed45853629924467aefc271d5b396",
|
||||
"templates/vhost/_serversignature.erb": "9bf5a458783ab459e5043e1cdf671fa7",
|
||||
"templates/vhost/_setenv.erb": "818f65d2936be12a24e59079e28f8f47",
|
||||
"templates/vhost/_ssl.erb": "cd872142f50ffd80a242346ee75111a3",
|
||||
"templates/vhost/_sslproxy.erb": "00843c237dcbc359b7c78512905baed5",
|
||||
"templates/vhost/_suexec.erb": "f2b3f9b9ff8fbac4e468e02cd824675a",
|
||||
"templates/vhost/_suphp.erb": "a1c4a5e4461adbfce870df0abd158b59",
|
||||
"templates/vhost/_wsgi.erb": "c4ea9a97580489edc6b589ac46816462"
|
||||
}
|
||||
@@ -0,0 +1,413 @@
|
||||
# Class: apache
|
||||
#
|
||||
# This class installs Apache
|
||||
#
|
||||
# Parameters:
|
||||
#
|
||||
# Actions:
|
||||
# - Install Apache
|
||||
# - Manage Apache service
|
||||
#
|
||||
# Requires:
|
||||
#
|
||||
# Sample Usage:
|
||||
#
|
||||
class apache (
|
||||
$apache_name = $::apache::params::apache_name,
|
||||
$service_name = $::apache::params::service_name,
|
||||
$default_mods = true,
|
||||
$default_vhost = true,
|
||||
$default_charset = undef,
|
||||
$default_confd_files = true,
|
||||
$default_ssl_vhost = false,
|
||||
$default_ssl_cert = $::apache::params::default_ssl_cert,
|
||||
$default_ssl_key = $::apache::params::default_ssl_key,
|
||||
$default_ssl_chain = undef,
|
||||
$default_ssl_ca = undef,
|
||||
$default_ssl_crl_path = undef,
|
||||
$default_ssl_crl = undef,
|
||||
$default_ssl_crl_check = undef,
|
||||
$default_type = 'none',
|
||||
$dev_packages = $::apache::params::dev_packages,
|
||||
$ip = undef,
|
||||
$service_enable = true,
|
||||
$service_manage = true,
|
||||
$service_ensure = 'running',
|
||||
$service_restart = undef,
|
||||
$purge_configs = true,
|
||||
$purge_vhost_dir = undef,
|
||||
$purge_vdir = false,
|
||||
$serveradmin = 'root@localhost',
|
||||
$sendfile = 'On',
|
||||
$error_documents = false,
|
||||
$timeout = '120',
|
||||
$httpd_dir = $::apache::params::httpd_dir,
|
||||
$server_root = $::apache::params::server_root,
|
||||
$conf_dir = $::apache::params::conf_dir,
|
||||
$confd_dir = $::apache::params::confd_dir,
|
||||
$vhost_dir = $::apache::params::vhost_dir,
|
||||
$vhost_enable_dir = $::apache::params::vhost_enable_dir,
|
||||
$vhost_include_pattern = $::apache::params::vhost_include_pattern,
|
||||
$mod_dir = $::apache::params::mod_dir,
|
||||
$mod_enable_dir = $::apache::params::mod_enable_dir,
|
||||
$mpm_module = $::apache::params::mpm_module,
|
||||
$lib_path = $::apache::params::lib_path,
|
||||
$conf_template = $::apache::params::conf_template,
|
||||
$servername = $::apache::params::servername,
|
||||
$pidfile = $::apache::params::pidfile,
|
||||
$rewrite_lock = undef,
|
||||
$manage_user = true,
|
||||
$manage_group = true,
|
||||
$user = $::apache::params::user,
|
||||
$group = $::apache::params::group,
|
||||
$keepalive = $::apache::params::keepalive,
|
||||
$keepalive_timeout = $::apache::params::keepalive_timeout,
|
||||
$max_keepalive_requests = $::apache::params::max_keepalive_requests,
|
||||
$limitreqfieldsize = '8190',
|
||||
$logroot = $::apache::params::logroot,
|
||||
$logroot_mode = $::apache::params::logroot_mode,
|
||||
$log_level = $::apache::params::log_level,
|
||||
$log_formats = {},
|
||||
$ports_file = $::apache::params::ports_file,
|
||||
$docroot = $::apache::params::docroot,
|
||||
$apache_version = $::apache::version::default,
|
||||
$server_tokens = 'OS',
|
||||
$server_signature = 'On',
|
||||
$trace_enable = 'On',
|
||||
$allow_encoded_slashes = undef,
|
||||
$package_ensure = 'installed',
|
||||
$use_optional_includes = $::apache::params::use_optional_includes,
|
||||
$use_systemd = $::apache::params::use_systemd,
|
||||
$mime_types_additional = $::apache::params::mime_types_additional,
|
||||
$file_mode = $::apache::params::file_mode,
|
||||
) inherits ::apache::params {
|
||||
validate_bool($default_vhost)
|
||||
validate_bool($default_ssl_vhost)
|
||||
validate_bool($default_confd_files)
|
||||
# true/false is sufficient for both ensure and enable
|
||||
validate_bool($service_enable)
|
||||
validate_bool($service_manage)
|
||||
validate_bool($use_optional_includes)
|
||||
|
||||
$valid_mpms_re = $apache_version ? {
|
||||
'2.4' => '(event|itk|peruser|prefork|worker)',
|
||||
default => '(event|itk|prefork|worker)'
|
||||
}
|
||||
|
||||
if $mpm_module and $mpm_module != 'false' { # lint:ignore:quoted_booleans
|
||||
validate_re($mpm_module, $valid_mpms_re)
|
||||
}
|
||||
|
||||
if $allow_encoded_slashes {
|
||||
validate_re($allow_encoded_slashes, '(^on$|^off$|^nodecode$)', "${allow_encoded_slashes} is not permitted for allow_encoded_slashes. Allowed values are 'on', 'off' or 'nodecode'.")
|
||||
}
|
||||
|
||||
# NOTE: on FreeBSD it's mpm module's responsibility to install httpd package.
|
||||
# NOTE: the same strategy may be introduced for other OSes. For this, you
|
||||
# should delete the 'if' block below and modify all MPM modules' manifests
|
||||
# such that they include apache::package class (currently event.pp, itk.pp,
|
||||
# peruser.pp, prefork.pp, worker.pp).
|
||||
if $::osfamily != 'FreeBSD' {
|
||||
package { 'httpd':
|
||||
ensure => $package_ensure,
|
||||
name => $apache_name,
|
||||
notify => Class['Apache::Service'],
|
||||
}
|
||||
}
|
||||
validate_re($sendfile, [ '^[oO]n$' , '^[oO]ff$' ])
|
||||
|
||||
# declare the web server user and group
|
||||
# Note: requiring the package means the package ought to create them and not puppet
|
||||
validate_bool($manage_user)
|
||||
if $manage_user {
|
||||
user { $user:
|
||||
ensure => present,
|
||||
gid => $group,
|
||||
require => Package['httpd'],
|
||||
}
|
||||
}
|
||||
validate_bool($manage_group)
|
||||
if $manage_group {
|
||||
group { $group:
|
||||
ensure => present,
|
||||
require => Package['httpd']
|
||||
}
|
||||
}
|
||||
|
||||
validate_apache_log_level($log_level)
|
||||
|
||||
class { '::apache::service':
|
||||
service_name => $service_name,
|
||||
service_enable => $service_enable,
|
||||
service_manage => $service_manage,
|
||||
service_ensure => $service_ensure,
|
||||
service_restart => $service_restart,
|
||||
}
|
||||
|
||||
# Deprecated backwards-compatibility
|
||||
if $purge_vdir {
|
||||
warning('Class[\'apache\'] parameter purge_vdir is deprecated in favor of purge_configs')
|
||||
$purge_confd = $purge_vdir
|
||||
} else {
|
||||
$purge_confd = $purge_configs
|
||||
}
|
||||
|
||||
# Set purge vhostd appropriately
|
||||
if $purge_vhost_dir == undef {
|
||||
$purge_vhostd = $purge_confd
|
||||
} else {
|
||||
$purge_vhostd = $purge_vhost_dir
|
||||
}
|
||||
|
||||
Exec {
|
||||
path => '/bin:/sbin:/usr/bin:/usr/sbin',
|
||||
}
|
||||
|
||||
exec { "mkdir ${confd_dir}":
|
||||
creates => $confd_dir,
|
||||
require => Package['httpd'],
|
||||
}
|
||||
file { $confd_dir:
|
||||
ensure => directory,
|
||||
recurse => true,
|
||||
purge => $purge_confd,
|
||||
notify => Class['Apache::Service'],
|
||||
require => Package['httpd'],
|
||||
}
|
||||
|
||||
if ! defined(File[$mod_dir]) {
|
||||
exec { "mkdir ${mod_dir}":
|
||||
creates => $mod_dir,
|
||||
require => Package['httpd'],
|
||||
}
|
||||
# Don't purge available modules if an enable dir is used
|
||||
$purge_mod_dir = $purge_configs and !$mod_enable_dir
|
||||
file { $mod_dir:
|
||||
ensure => directory,
|
||||
recurse => true,
|
||||
purge => $purge_mod_dir,
|
||||
notify => Class['Apache::Service'],
|
||||
require => Package['httpd'],
|
||||
}
|
||||
}
|
||||
|
||||
if $mod_enable_dir and ! defined(File[$mod_enable_dir]) {
|
||||
$mod_load_dir = $mod_enable_dir
|
||||
exec { "mkdir ${mod_enable_dir}":
|
||||
creates => $mod_enable_dir,
|
||||
require => Package['httpd'],
|
||||
}
|
||||
file { $mod_enable_dir:
|
||||
ensure => directory,
|
||||
recurse => true,
|
||||
purge => $purge_configs,
|
||||
notify => Class['Apache::Service'],
|
||||
require => Package['httpd'],
|
||||
}
|
||||
} else {
|
||||
$mod_load_dir = $mod_dir
|
||||
}
|
||||
|
||||
if ! defined(File[$vhost_dir]) {
|
||||
exec { "mkdir ${vhost_dir}":
|
||||
creates => $vhost_dir,
|
||||
require => Package['httpd'],
|
||||
}
|
||||
file { $vhost_dir:
|
||||
ensure => directory,
|
||||
recurse => true,
|
||||
purge => $purge_vhostd,
|
||||
notify => Class['Apache::Service'],
|
||||
require => Package['httpd'],
|
||||
}
|
||||
}
|
||||
|
||||
if $vhost_enable_dir and ! defined(File[$vhost_enable_dir]) {
|
||||
$vhost_load_dir = $vhost_enable_dir
|
||||
exec { "mkdir ${vhost_load_dir}":
|
||||
creates => $vhost_load_dir,
|
||||
require => Package['httpd'],
|
||||
}
|
||||
file { $vhost_enable_dir:
|
||||
ensure => directory,
|
||||
recurse => true,
|
||||
purge => $purge_vhostd,
|
||||
notify => Class['Apache::Service'],
|
||||
require => Package['httpd'],
|
||||
}
|
||||
} else {
|
||||
$vhost_load_dir = $vhost_dir
|
||||
}
|
||||
|
||||
concat { $ports_file:
|
||||
owner => 'root',
|
||||
group => $::apache::params::root_group,
|
||||
mode => $::apache::file_mode,
|
||||
notify => Class['Apache::Service'],
|
||||
require => Package['httpd'],
|
||||
}
|
||||
concat::fragment { 'Apache ports header':
|
||||
ensure => present,
|
||||
target => $ports_file,
|
||||
content => template('apache/ports_header.erb')
|
||||
}
|
||||
|
||||
if $::apache::conf_dir and $::apache::params::conf_file {
|
||||
case $::osfamily {
|
||||
'debian': {
|
||||
$error_log = 'error.log'
|
||||
$scriptalias = '/usr/lib/cgi-bin'
|
||||
$access_log_file = 'access.log'
|
||||
}
|
||||
'redhat': {
|
||||
$error_log = 'error_log'
|
||||
$scriptalias = '/var/www/cgi-bin'
|
||||
$access_log_file = 'access_log'
|
||||
}
|
||||
'freebsd': {
|
||||
$error_log = 'httpd-error.log'
|
||||
$scriptalias = '/usr/local/www/apache24/cgi-bin'
|
||||
$access_log_file = 'httpd-access.log'
|
||||
} 'gentoo': {
|
||||
$error_log = 'error.log'
|
||||
$error_documents_path = '/usr/share/apache2/error'
|
||||
$scriptalias = '/var/www/localhost/cgi-bin'
|
||||
$access_log_file = 'access.log'
|
||||
|
||||
if is_array($default_mods) {
|
||||
if versioncmp($apache_version, '2.4') >= 0 {
|
||||
if defined('apache::mod::ssl') {
|
||||
::portage::makeconf { 'apache2_modules':
|
||||
content => concat($default_mods, [ 'authz_core', 'socache_shmcb' ]),
|
||||
}
|
||||
} else {
|
||||
::portage::makeconf { 'apache2_modules':
|
||||
content => concat($default_mods, 'authz_core'),
|
||||
}
|
||||
}
|
||||
} else {
|
||||
::portage::makeconf { 'apache2_modules':
|
||||
content => $default_mods,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
file { [
|
||||
'/etc/apache2/modules.d/.keep_www-servers_apache-2',
|
||||
'/etc/apache2/vhosts.d/.keep_www-servers_apache-2'
|
||||
]:
|
||||
ensure => absent,
|
||||
require => Package['httpd'],
|
||||
}
|
||||
}
|
||||
'Suse': {
|
||||
$error_log = 'error.log'
|
||||
$scriptalias = '/usr/lib/cgi-bin'
|
||||
$access_log_file = 'access.log'
|
||||
}
|
||||
default: {
|
||||
fail("Unsupported osfamily ${::osfamily}")
|
||||
}
|
||||
}
|
||||
|
||||
$apxs_workaround = $::osfamily ? {
|
||||
'freebsd' => true,
|
||||
default => false
|
||||
}
|
||||
|
||||
if $rewrite_lock {
|
||||
validate_absolute_path($rewrite_lock)
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $pidfile
|
||||
# - $user
|
||||
# - $group
|
||||
# - $logroot
|
||||
# - $error_log
|
||||
# - $sendfile
|
||||
# - $mod_dir
|
||||
# - $ports_file
|
||||
# - $confd_dir
|
||||
# - $vhost_dir
|
||||
# - $error_documents
|
||||
# - $error_documents_path
|
||||
# - $apxs_workaround
|
||||
# - $keepalive
|
||||
# - $keepalive_timeout
|
||||
# - $max_keepalive_requests
|
||||
# - $server_root
|
||||
# - $server_tokens
|
||||
# - $server_signature
|
||||
# - $trace_enable
|
||||
# - $rewrite_lock
|
||||
file { "${::apache::conf_dir}/${::apache::params::conf_file}":
|
||||
ensure => file,
|
||||
content => template($conf_template),
|
||||
notify => Class['Apache::Service'],
|
||||
require => [Package['httpd'], Concat[$ports_file]],
|
||||
}
|
||||
|
||||
# preserve back-wards compatibility to the times when default_mods was
|
||||
# only a boolean value. Now it can be an array (too)
|
||||
if is_array($default_mods) {
|
||||
class { '::apache::default_mods':
|
||||
all => false,
|
||||
mods => $default_mods,
|
||||
}
|
||||
} else {
|
||||
class { '::apache::default_mods':
|
||||
all => $default_mods,
|
||||
}
|
||||
}
|
||||
class { '::apache::default_confd_files':
|
||||
all => $default_confd_files
|
||||
}
|
||||
if $mpm_module and $mpm_module != 'false' { # lint:ignore:quoted_booleans
|
||||
class { "::apache::mod::${mpm_module}": }
|
||||
}
|
||||
|
||||
$default_vhost_ensure = $default_vhost ? {
|
||||
true => 'present',
|
||||
false => 'absent'
|
||||
}
|
||||
$default_ssl_vhost_ensure = $default_ssl_vhost ? {
|
||||
true => 'present',
|
||||
false => 'absent'
|
||||
}
|
||||
|
||||
::apache::vhost { 'default':
|
||||
ensure => $default_vhost_ensure,
|
||||
port => 80,
|
||||
docroot => $docroot,
|
||||
scriptalias => $scriptalias,
|
||||
serveradmin => $serveradmin,
|
||||
access_log_file => $access_log_file,
|
||||
priority => '15',
|
||||
ip => $ip,
|
||||
logroot_mode => $logroot_mode,
|
||||
manage_docroot => $default_vhost,
|
||||
}
|
||||
$ssl_access_log_file = $::osfamily ? {
|
||||
'freebsd' => $access_log_file,
|
||||
default => "ssl_${access_log_file}",
|
||||
}
|
||||
::apache::vhost { 'default-ssl':
|
||||
ensure => $default_ssl_vhost_ensure,
|
||||
port => 443,
|
||||
ssl => true,
|
||||
docroot => $docroot,
|
||||
scriptalias => $scriptalias,
|
||||
serveradmin => $serveradmin,
|
||||
access_log_file => $ssl_access_log_file,
|
||||
priority => '15',
|
||||
ip => $ip,
|
||||
logroot_mode => $logroot_mode,
|
||||
manage_docroot => $default_ssl_vhost,
|
||||
}
|
||||
}
|
||||
|
||||
# This anchor can be used as a reference point for things that need to happen *after*
|
||||
# all modules have been put in place.
|
||||
anchor { '::apache::modules_set_up': }
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
define apache::listen {
|
||||
$listen_addr_port = $name
|
||||
|
||||
# Template uses: $listen_addr_port
|
||||
concat::fragment { "Listen ${listen_addr_port}":
|
||||
ensure => present,
|
||||
target => $::apache::ports_file,
|
||||
content => template('apache/listen.erb'),
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,545 @@
|
||||
# Class: apache::params
|
||||
#
|
||||
# This class manages Apache parameters
|
||||
#
|
||||
# Parameters:
|
||||
# - The $user that Apache runs as
|
||||
# - The $group that Apache runs as
|
||||
# - The $apache_name is the name of the package and service on the relevant
|
||||
# distribution
|
||||
# - The $php_package is the name of the package that provided PHP
|
||||
# - The $ssl_package is the name of the Apache SSL package
|
||||
# - The $apache_dev is the name of the Apache development libraries package
|
||||
# - The $conf_contents is the contents of the Apache configuration file
|
||||
#
|
||||
# Actions:
|
||||
#
|
||||
# Requires:
|
||||
#
|
||||
# Sample Usage:
|
||||
#
|
||||
class apache::params inherits ::apache::version {
|
||||
if($::fqdn) {
|
||||
$servername = $::fqdn
|
||||
} else {
|
||||
$servername = $::hostname
|
||||
}
|
||||
|
||||
# The default error log level
|
||||
$log_level = 'warn'
|
||||
$use_optional_includes = false
|
||||
|
||||
# Default mime types settings
|
||||
$mime_types_additional = {
|
||||
'AddHandler' => {
|
||||
'type-map' => 'var'
|
||||
},
|
||||
'AddType' => {
|
||||
'text/html' => '.shtml'
|
||||
},
|
||||
'AddOutputFilter' => {
|
||||
'INCLUDES' => '.shtml'
|
||||
},
|
||||
}
|
||||
|
||||
# should we use systemd module?
|
||||
$use_systemd = true
|
||||
|
||||
# Default mode for files
|
||||
$file_mode = '0644'
|
||||
|
||||
$vhost_include_pattern = '*'
|
||||
|
||||
if $::operatingsystem == 'Ubuntu' and $::lsbdistrelease == '10.04' {
|
||||
$verify_command = '/usr/sbin/apache2ctl -t'
|
||||
} else {
|
||||
$verify_command = '/usr/sbin/apachectl -t'
|
||||
}
|
||||
if $::osfamily == 'RedHat' or $::operatingsystem =~ /^[Aa]mazon$/ {
|
||||
$user = 'apache'
|
||||
$group = 'apache'
|
||||
$root_group = 'root'
|
||||
$apache_name = 'httpd'
|
||||
$service_name = 'httpd'
|
||||
$httpd_dir = '/etc/httpd'
|
||||
$server_root = '/etc/httpd'
|
||||
$conf_dir = "${httpd_dir}/conf"
|
||||
$confd_dir = "${httpd_dir}/conf.d"
|
||||
$mod_dir = $::apache::version::distrelease ? {
|
||||
'7' => "${httpd_dir}/conf.modules.d",
|
||||
default => "${httpd_dir}/conf.d",
|
||||
}
|
||||
$mod_enable_dir = undef
|
||||
$vhost_dir = "${httpd_dir}/conf.d"
|
||||
$vhost_enable_dir = undef
|
||||
$conf_file = 'httpd.conf'
|
||||
$ports_file = "${conf_dir}/ports.conf"
|
||||
$pidfile = 'run/httpd.pid'
|
||||
$logroot = '/var/log/httpd'
|
||||
$logroot_mode = undef
|
||||
$lib_path = 'modules'
|
||||
$mpm_module = 'prefork'
|
||||
$dev_packages = 'httpd-devel'
|
||||
$default_ssl_cert = '/etc/pki/tls/certs/localhost.crt'
|
||||
$default_ssl_key = '/etc/pki/tls/private/localhost.key'
|
||||
$ssl_certs_dir = '/etc/pki/tls/certs'
|
||||
$passenger_conf_file = 'passenger_extra.conf'
|
||||
$passenger_conf_package_file = 'passenger.conf'
|
||||
$passenger_root = undef
|
||||
$passenger_ruby = undef
|
||||
$passenger_default_ruby = undef
|
||||
$suphp_addhandler = 'php5-script'
|
||||
$suphp_engine = 'off'
|
||||
$suphp_configpath = undef
|
||||
# NOTE: The module for Shibboleth is not available to RH/CentOS without an additional repository. http://wiki.aaf.edu.au/tech-info/sp-install-guide
|
||||
# NOTE: The auth_cas module isn't available to RH/CentOS without enabling EPEL.
|
||||
$mod_packages = {
|
||||
'auth_cas' => 'mod_auth_cas',
|
||||
'auth_kerb' => 'mod_auth_kerb',
|
||||
'auth_mellon' => 'mod_auth_mellon',
|
||||
'authnz_ldap' => $::apache::version::distrelease ? {
|
||||
'7' => 'mod_ldap',
|
||||
default => 'mod_authz_ldap',
|
||||
},
|
||||
'fastcgi' => 'mod_fastcgi',
|
||||
'fcgid' => 'mod_fcgid',
|
||||
'geoip' => 'mod_geoip',
|
||||
'ldap' => $::apache::version::distrelease ? {
|
||||
'7' => 'mod_ldap',
|
||||
default => undef,
|
||||
},
|
||||
'pagespeed' => 'mod-pagespeed-stable',
|
||||
'passenger' => 'mod_passenger',
|
||||
'perl' => 'mod_perl',
|
||||
'php5' => $::apache::version::distrelease ? {
|
||||
'5' => 'php53',
|
||||
default => 'php',
|
||||
},
|
||||
'proxy_html' => 'mod_proxy_html',
|
||||
'python' => 'mod_python',
|
||||
'security' => 'mod_security',
|
||||
'shibboleth' => 'shibboleth',
|
||||
'ssl' => 'mod_ssl',
|
||||
'wsgi' => 'mod_wsgi',
|
||||
'dav_svn' => 'mod_dav_svn',
|
||||
'suphp' => 'mod_suphp',
|
||||
'xsendfile' => 'mod_xsendfile',
|
||||
'nss' => 'mod_nss',
|
||||
'shib2' => 'shibboleth',
|
||||
}
|
||||
$mod_libs = {
|
||||
'php5' => 'libphp5.so',
|
||||
'nss' => 'libmodnss.so',
|
||||
}
|
||||
$conf_template = 'apache/httpd.conf.erb'
|
||||
$keepalive = 'Off'
|
||||
$keepalive_timeout = 15
|
||||
$max_keepalive_requests = 100
|
||||
$fastcgi_lib_path = undef
|
||||
$mime_support_package = 'mailcap'
|
||||
$mime_types_config = '/etc/mime.types'
|
||||
$docroot = '/var/www/html'
|
||||
$alias_icons_path = $::apache::version::distrelease ? {
|
||||
'7' => '/usr/share/httpd/icons',
|
||||
default => '/var/www/icons',
|
||||
}
|
||||
$error_documents_path = $::apache::version::distrelease ? {
|
||||
'7' => '/usr/share/httpd/error',
|
||||
default => '/var/www/error'
|
||||
}
|
||||
if $::osfamily == 'RedHat' {
|
||||
$wsgi_socket_prefix = '/var/run/wsgi'
|
||||
} else {
|
||||
$wsgi_socket_prefix = undef
|
||||
}
|
||||
$cas_cookie_path = '/var/cache/mod_auth_cas/'
|
||||
$mellon_lock_file = '/run/mod_auth_mellon/lock'
|
||||
$mellon_cache_size = 100
|
||||
$mellon_post_directory = undef
|
||||
$modsec_crs_package = 'mod_security_crs'
|
||||
$modsec_crs_path = '/usr/lib/modsecurity.d'
|
||||
$modsec_dir = '/etc/httpd/modsecurity.d'
|
||||
$modsec_secruleengine = 'On'
|
||||
$modsec_default_rules = [
|
||||
'base_rules/modsecurity_35_bad_robots.data',
|
||||
'base_rules/modsecurity_35_scanners.data',
|
||||
'base_rules/modsecurity_40_generic_attacks.data',
|
||||
'base_rules/modsecurity_41_sql_injection_attacks.data',
|
||||
'base_rules/modsecurity_50_outbound.data',
|
||||
'base_rules/modsecurity_50_outbound_malware.data',
|
||||
'base_rules/modsecurity_crs_20_protocol_violations.conf',
|
||||
'base_rules/modsecurity_crs_21_protocol_anomalies.conf',
|
||||
'base_rules/modsecurity_crs_23_request_limits.conf',
|
||||
'base_rules/modsecurity_crs_30_http_policy.conf',
|
||||
'base_rules/modsecurity_crs_35_bad_robots.conf',
|
||||
'base_rules/modsecurity_crs_40_generic_attacks.conf',
|
||||
'base_rules/modsecurity_crs_41_sql_injection_attacks.conf',
|
||||
'base_rules/modsecurity_crs_41_xss_attacks.conf',
|
||||
'base_rules/modsecurity_crs_42_tight_security.conf',
|
||||
'base_rules/modsecurity_crs_45_trojans.conf',
|
||||
'base_rules/modsecurity_crs_47_common_exceptions.conf',
|
||||
'base_rules/modsecurity_crs_49_inbound_blocking.conf',
|
||||
'base_rules/modsecurity_crs_50_outbound.conf',
|
||||
'base_rules/modsecurity_crs_59_outbound_blocking.conf',
|
||||
'base_rules/modsecurity_crs_60_correlation.conf'
|
||||
]
|
||||
} elsif $::osfamily == 'Debian' {
|
||||
$user = 'www-data'
|
||||
$group = 'www-data'
|
||||
$root_group = 'root'
|
||||
$apache_name = 'apache2'
|
||||
$service_name = 'apache2'
|
||||
$httpd_dir = '/etc/apache2'
|
||||
$server_root = '/etc/apache2'
|
||||
$conf_dir = $httpd_dir
|
||||
$confd_dir = "${httpd_dir}/conf.d"
|
||||
$mod_dir = "${httpd_dir}/mods-available"
|
||||
$mod_enable_dir = "${httpd_dir}/mods-enabled"
|
||||
$vhost_dir = "${httpd_dir}/sites-available"
|
||||
$vhost_enable_dir = "${httpd_dir}/sites-enabled"
|
||||
$conf_file = 'apache2.conf'
|
||||
$ports_file = "${conf_dir}/ports.conf"
|
||||
$pidfile = "\${APACHE_PID_FILE}"
|
||||
$logroot = '/var/log/apache2'
|
||||
$logroot_mode = undef
|
||||
$lib_path = '/usr/lib/apache2/modules'
|
||||
$mpm_module = 'worker'
|
||||
$default_ssl_cert = '/etc/ssl/certs/ssl-cert-snakeoil.pem'
|
||||
$default_ssl_key = '/etc/ssl/private/ssl-cert-snakeoil.key'
|
||||
$ssl_certs_dir = '/etc/ssl/certs'
|
||||
$suphp_addhandler = 'x-httpd-php'
|
||||
$suphp_engine = 'off'
|
||||
$suphp_configpath = '/etc/php5/apache2'
|
||||
$mod_packages = {
|
||||
'auth_cas' => 'libapache2-mod-auth-cas',
|
||||
'auth_kerb' => 'libapache2-mod-auth-kerb',
|
||||
'auth_mellon' => 'libapache2-mod-auth-mellon',
|
||||
'dav_svn' => 'libapache2-svn',
|
||||
'fastcgi' => 'libapache2-mod-fastcgi',
|
||||
'fcgid' => 'libapache2-mod-fcgid',
|
||||
'geoip' => 'libapache2-mod-geoip',
|
||||
'nss' => 'libapache2-mod-nss',
|
||||
'pagespeed' => 'mod-pagespeed-stable',
|
||||
'passenger' => 'libapache2-mod-passenger',
|
||||
'perl' => 'libapache2-mod-perl2',
|
||||
'php5' => 'libapache2-mod-php5',
|
||||
'proxy_html' => 'libapache2-mod-proxy-html',
|
||||
'python' => 'libapache2-mod-python',
|
||||
'rpaf' => 'libapache2-mod-rpaf',
|
||||
'security' => 'libapache2-modsecurity',
|
||||
'shib2' => 'libapache2-mod-shib2',
|
||||
'suphp' => 'libapache2-mod-suphp',
|
||||
'wsgi' => 'libapache2-mod-wsgi',
|
||||
'xsendfile' => 'libapache2-mod-xsendfile',
|
||||
'shib2' => 'libapache2-mod-shib2',
|
||||
}
|
||||
if $::osfamily == 'Debian' and versioncmp($::operatingsystemrelease, '8') < 0 {
|
||||
$shib2_lib = 'mod_shib_22.so'
|
||||
} else {
|
||||
$shib2_lib = 'mod_shib2.so'
|
||||
}
|
||||
$mod_libs = {
|
||||
'php5' => 'libphp5.so',
|
||||
'shib2' => $shib2_lib
|
||||
}
|
||||
$conf_template = 'apache/httpd.conf.erb'
|
||||
$keepalive = 'Off'
|
||||
$keepalive_timeout = 15
|
||||
$max_keepalive_requests = 100
|
||||
$fastcgi_lib_path = '/var/lib/apache2/fastcgi'
|
||||
$mime_support_package = 'mime-support'
|
||||
$mime_types_config = '/etc/mime.types'
|
||||
if ($::operatingsystem == 'Ubuntu' and versioncmp($::operatingsystemrelease, '13.10') >= 0) or ($::operatingsystem == 'Debian' and versioncmp($::operatingsystemrelease, '8') >= 0) {
|
||||
$docroot = '/var/www/html'
|
||||
} else {
|
||||
$docroot = '/var/www'
|
||||
}
|
||||
$cas_cookie_path = '/var/cache/apache2/mod_auth_cas/'
|
||||
$mellon_lock_file = undef
|
||||
$mellon_cache_size = undef
|
||||
$mellon_post_directory = '/var/cache/apache2/mod_auth_mellon/'
|
||||
$modsec_crs_package = 'modsecurity-crs'
|
||||
$modsec_crs_path = '/usr/share/modsecurity-crs'
|
||||
$modsec_dir = '/etc/modsecurity'
|
||||
$modsec_secruleengine = 'On'
|
||||
$modsec_default_rules = [
|
||||
'base_rules/modsecurity_35_bad_robots.data',
|
||||
'base_rules/modsecurity_35_scanners.data',
|
||||
'base_rules/modsecurity_40_generic_attacks.data',
|
||||
'base_rules/modsecurity_41_sql_injection_attacks.data',
|
||||
'base_rules/modsecurity_50_outbound.data',
|
||||
'base_rules/modsecurity_50_outbound_malware.data',
|
||||
'base_rules/modsecurity_crs_20_protocol_violations.conf',
|
||||
'base_rules/modsecurity_crs_21_protocol_anomalies.conf',
|
||||
'base_rules/modsecurity_crs_23_request_limits.conf',
|
||||
'base_rules/modsecurity_crs_30_http_policy.conf',
|
||||
'base_rules/modsecurity_crs_35_bad_robots.conf',
|
||||
'base_rules/modsecurity_crs_40_generic_attacks.conf',
|
||||
'base_rules/modsecurity_crs_41_sql_injection_attacks.conf',
|
||||
'base_rules/modsecurity_crs_41_xss_attacks.conf',
|
||||
'base_rules/modsecurity_crs_42_tight_security.conf',
|
||||
'base_rules/modsecurity_crs_45_trojans.conf',
|
||||
'base_rules/modsecurity_crs_47_common_exceptions.conf',
|
||||
'base_rules/modsecurity_crs_49_inbound_blocking.conf',
|
||||
'base_rules/modsecurity_crs_50_outbound.conf',
|
||||
'base_rules/modsecurity_crs_59_outbound_blocking.conf',
|
||||
'base_rules/modsecurity_crs_60_correlation.conf'
|
||||
]
|
||||
$alias_icons_path = '/usr/share/apache2/icons'
|
||||
$error_documents_path = '/usr/share/apache2/error'
|
||||
if ($::operatingsystem == 'Ubuntu' and versioncmp($::operatingsystemrelease, '13.10') >= 0) or ($::operatingsystem == 'Debian' and versioncmp($::operatingsystemrelease, '8') >= 0) {
|
||||
$dev_packages = ['libaprutil1-dev', 'libapr1-dev', 'apache2-dev']
|
||||
} else {
|
||||
$dev_packages = ['libaprutil1-dev', 'libapr1-dev', 'apache2-prefork-dev']
|
||||
}
|
||||
|
||||
#
|
||||
# Passenger-specific settings
|
||||
#
|
||||
|
||||
$passenger_conf_file = 'passenger.conf'
|
||||
$passenger_conf_package_file = undef
|
||||
|
||||
case $::operatingsystem {
|
||||
'Ubuntu': {
|
||||
case $::lsbdistrelease {
|
||||
'12.04': {
|
||||
$passenger_root = '/usr'
|
||||
$passenger_ruby = '/usr/bin/ruby'
|
||||
$passenger_default_ruby = undef
|
||||
}
|
||||
'14.04': {
|
||||
$passenger_root = '/usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini'
|
||||
$passenger_ruby = undef
|
||||
$passenger_default_ruby = '/usr/bin/ruby'
|
||||
}
|
||||
default: {
|
||||
# The following settings may or may not work on Ubuntu releases not
|
||||
# supported by this module.
|
||||
$passenger_root = '/usr'
|
||||
$passenger_ruby = '/usr/bin/ruby'
|
||||
$passenger_default_ruby = undef
|
||||
}
|
||||
}
|
||||
}
|
||||
'Debian': {
|
||||
case $::lsbdistcodename {
|
||||
'wheezy': {
|
||||
$passenger_root = '/usr'
|
||||
$passenger_ruby = '/usr/bin/ruby'
|
||||
$passenger_default_ruby = undef
|
||||
}
|
||||
'jessie': {
|
||||
$passenger_root = '/usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini'
|
||||
$passenger_ruby = undef
|
||||
$passenger_default_ruby = '/usr/bin/ruby'
|
||||
}
|
||||
default: {
|
||||
# The following settings may or may not work on Debian releases not
|
||||
# supported by this module.
|
||||
$passenger_root = '/usr'
|
||||
$passenger_ruby = '/usr/bin/ruby'
|
||||
$passenger_default_ruby = undef
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$wsgi_socket_prefix = undef
|
||||
} elsif $::osfamily == 'FreeBSD' {
|
||||
$user = 'www'
|
||||
$group = 'www'
|
||||
$root_group = 'wheel'
|
||||
$apache_name = 'apache24'
|
||||
$service_name = 'apache24'
|
||||
$httpd_dir = '/usr/local/etc/apache24'
|
||||
$server_root = '/usr/local'
|
||||
$conf_dir = $httpd_dir
|
||||
$confd_dir = "${httpd_dir}/Includes"
|
||||
$mod_dir = "${httpd_dir}/Modules"
|
||||
$mod_enable_dir = undef
|
||||
$vhost_dir = "${httpd_dir}/Vhosts"
|
||||
$vhost_enable_dir = undef
|
||||
$conf_file = 'httpd.conf'
|
||||
$ports_file = "${conf_dir}/ports.conf"
|
||||
$pidfile = '/var/run/httpd.pid'
|
||||
$logroot = '/var/log/apache24'
|
||||
$logroot_mode = undef
|
||||
$lib_path = '/usr/local/libexec/apache24'
|
||||
$mpm_module = 'prefork'
|
||||
$dev_packages = undef
|
||||
$default_ssl_cert = '/usr/local/etc/apache24/server.crt'
|
||||
$default_ssl_key = '/usr/local/etc/apache24/server.key'
|
||||
$ssl_certs_dir = '/usr/local/etc/apache24'
|
||||
$passenger_conf_file = 'passenger.conf'
|
||||
$passenger_conf_package_file = undef
|
||||
$passenger_root = '/usr/local/lib/ruby/gems/2.0/gems/passenger-4.0.58'
|
||||
$passenger_ruby = '/usr/local/bin/ruby'
|
||||
$passenger_default_ruby = undef
|
||||
$suphp_addhandler = 'php5-script'
|
||||
$suphp_engine = 'off'
|
||||
$suphp_configpath = undef
|
||||
$mod_packages = {
|
||||
# NOTE: I list here only modules that are not included in www/apache24
|
||||
# NOTE: 'passenger' needs to enable APACHE_SUPPORT in make config
|
||||
# NOTE: 'php' needs to enable APACHE option in make config
|
||||
# NOTE: 'dav_svn' needs to enable MOD_DAV_SVN make config
|
||||
# NOTE: not sure where the shibboleth should come from
|
||||
'auth_kerb' => 'www/mod_auth_kerb2',
|
||||
'fcgid' => 'www/mod_fcgid',
|
||||
'passenger' => 'www/rubygem-passenger',
|
||||
'perl' => 'www/mod_perl2',
|
||||
'php5' => 'www/mod_php5',
|
||||
'proxy_html' => 'www/mod_proxy_html',
|
||||
'python' => 'www/mod_python3',
|
||||
'wsgi' => 'www/mod_wsgi',
|
||||
'dav_svn' => 'devel/subversion',
|
||||
'xsendfile' => 'www/mod_xsendfile',
|
||||
'rpaf' => 'www/mod_rpaf2',
|
||||
'shib2' => 'security/shibboleth2-sp',
|
||||
}
|
||||
$mod_libs = {
|
||||
'php5' => 'libphp5.so',
|
||||
}
|
||||
$conf_template = 'apache/httpd.conf.erb'
|
||||
$keepalive = 'Off'
|
||||
$keepalive_timeout = 15
|
||||
$max_keepalive_requests = 100
|
||||
$fastcgi_lib_path = undef # TODO: revisit
|
||||
$mime_support_package = 'misc/mime-support'
|
||||
$mime_types_config = '/usr/local/etc/mime.types'
|
||||
$wsgi_socket_prefix = undef
|
||||
$docroot = '/usr/local/www/apache24/data'
|
||||
$alias_icons_path = '/usr/local/www/apache24/icons'
|
||||
$error_documents_path = '/usr/local/www/apache24/error'
|
||||
} elsif $::osfamily == 'Gentoo' {
|
||||
$user = 'apache'
|
||||
$group = 'apache'
|
||||
$root_group = 'wheel'
|
||||
$apache_name = 'www-servers/apache'
|
||||
$service_name = 'apache2'
|
||||
$httpd_dir = '/etc/apache2'
|
||||
$server_root = '/var/www'
|
||||
$conf_dir = $httpd_dir
|
||||
$confd_dir = "${httpd_dir}/conf.d"
|
||||
$mod_dir = "${httpd_dir}/modules.d"
|
||||
$mod_enable_dir = undef
|
||||
$vhost_dir = "${httpd_dir}/vhosts.d"
|
||||
$vhost_enable_dir = undef
|
||||
$conf_file = 'httpd.conf'
|
||||
$ports_file = "${conf_dir}/ports.conf"
|
||||
$logroot = '/var/log/apache2'
|
||||
$logroot_mode = undef
|
||||
$lib_path = '/usr/lib/apache2/modules'
|
||||
$mpm_module = 'prefork'
|
||||
$dev_packages = undef
|
||||
$default_ssl_cert = '/etc/ssl/apache2/server.crt'
|
||||
$default_ssl_key = '/etc/ssl/apache2/server.key'
|
||||
$ssl_certs_dir = '/etc/ssl/apache2'
|
||||
$passenger_root = '/usr'
|
||||
$passenger_ruby = '/usr/bin/ruby'
|
||||
$passenger_conf_file = 'passenger.conf'
|
||||
$passenger_conf_package_file = undef
|
||||
$passenger_default_ruby = undef
|
||||
$suphp_addhandler = 'x-httpd-php'
|
||||
$suphp_engine = 'off'
|
||||
$suphp_configpath = '/etc/php5/apache2'
|
||||
$mod_packages = {
|
||||
# NOTE: I list here only modules that are not included in www-servers/apache
|
||||
'auth_kerb' => 'www-apache/mod_auth_kerb',
|
||||
'authnz_external' => 'www-apache/mod_authnz_external',
|
||||
'fcgid' => 'www-apache/mod_fcgid',
|
||||
'passenger' => 'www-apache/passenger',
|
||||
'perl' => 'www-apache/mod_perl',
|
||||
'php5' => 'dev-lang/php',
|
||||
'proxy_html' => 'www-apache/mod_proxy_html',
|
||||
'proxy_fcgi' => 'www-apache/mod_proxy_fcgi',
|
||||
'python' => 'www-apache/mod_python',
|
||||
'wsgi' => 'www-apache/mod_wsgi',
|
||||
'dav_svn' => 'dev-vcs/subversion',
|
||||
'xsendfile' => 'www-apache/mod_xsendfile',
|
||||
'rpaf' => 'www-apache/mod_rpaf',
|
||||
'xml2enc' => 'www-apache/mod_xml2enc',
|
||||
}
|
||||
$mod_libs = {
|
||||
'php5' => 'libphp5.so',
|
||||
}
|
||||
$conf_template = 'apache/httpd.conf.erb'
|
||||
$keepalive = 'Off'
|
||||
$keepalive_timeout = 15
|
||||
$max_keepalive_requests = 100
|
||||
$fastcgi_lib_path = undef # TODO: revisit
|
||||
$mime_support_package = 'app-misc/mime-types'
|
||||
$mime_types_config = '/etc/mime.types'
|
||||
$wsgi_socket_prefix = undef
|
||||
$docroot = '/var/www/localhost/htdocs'
|
||||
$alias_icons_path = '/usr/share/apache2/icons'
|
||||
$error_documents_path = '/usr/share/apache2/error'
|
||||
} elsif $::osfamily == 'Suse' {
|
||||
$user = 'wwwrun'
|
||||
$group = 'wwwrun'
|
||||
$root_group = 'root'
|
||||
$apache_name = 'apache2'
|
||||
$service_name = 'apache2'
|
||||
$httpd_dir = '/etc/apache2'
|
||||
$server_root = '/etc/apache2'
|
||||
$conf_dir = $httpd_dir
|
||||
$confd_dir = "${httpd_dir}/conf.d"
|
||||
$mod_dir = "${httpd_dir}/mods-available"
|
||||
$mod_enable_dir = "${httpd_dir}/mods-enabled"
|
||||
$vhost_dir = "${httpd_dir}/sites-available"
|
||||
$vhost_enable_dir = "${httpd_dir}/sites-enabled"
|
||||
$conf_file = 'httpd.conf'
|
||||
$ports_file = "${conf_dir}/ports.conf"
|
||||
$pidfile = '/var/run/httpd2.pid'
|
||||
$logroot = '/var/log/apache2'
|
||||
$logroot_mode = undef
|
||||
$lib_path = '/usr/lib64/apache2-prefork/'
|
||||
$mpm_module = 'prefork'
|
||||
$default_ssl_cert = '/etc/ssl/certs/ssl-cert-snakeoil.pem'
|
||||
$default_ssl_key = '/etc/ssl/private/ssl-cert-snakeoil.key'
|
||||
$ssl_certs_dir = '/etc/ssl/certs'
|
||||
$suphp_addhandler = 'x-httpd-php'
|
||||
$suphp_engine = 'off'
|
||||
$suphp_configpath = '/etc/php5/apache2'
|
||||
$mod_packages = {
|
||||
'auth_kerb' => 'apache2-mod_auth_kerb',
|
||||
'fcgid' => 'apache2-mod_fcgid',
|
||||
'perl' => 'apache2-mod_perl',
|
||||
'php5' => 'apache2-mod_php53',
|
||||
'python' => 'apache2-mod_python',
|
||||
}
|
||||
$mod_libs = {
|
||||
'php5' => 'libphp5.so',
|
||||
}
|
||||
$conf_template = 'apache/httpd.conf.erb'
|
||||
$keepalive = 'Off'
|
||||
$keepalive_timeout = 15
|
||||
$max_keepalive_requests = 100
|
||||
$fastcgi_lib_path = '/var/lib/apache2/fastcgi'
|
||||
$mime_support_package = 'aaa_base'
|
||||
$mime_types_config = '/etc/mime.types'
|
||||
$docroot = '/srv/www'
|
||||
$cas_cookie_path = '/var/cache/apache2/mod_auth_cas/'
|
||||
$mellon_lock_file = undef
|
||||
$mellon_cache_size = undef
|
||||
$mellon_post_directory = undef
|
||||
$alias_icons_path = '/usr/share/apache2/icons'
|
||||
$error_documents_path = '/usr/share/apache2/error'
|
||||
$dev_packages = ['libapr-util1-devel', 'libapr1-devel']
|
||||
|
||||
#
|
||||
# Passenger-specific settings
|
||||
#
|
||||
|
||||
$passenger_conf_file = 'passenger.conf'
|
||||
$passenger_conf_package_file = undef
|
||||
|
||||
$passenger_root = '/usr'
|
||||
$passenger_ruby = '/usr/bin/ruby'
|
||||
$passenger_default_ruby = undef
|
||||
$wsgi_socket_prefix = undef
|
||||
|
||||
} else {
|
||||
fail("Class['apache::params']: Unsupported osfamily: ${::osfamily}")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
# Class: apache::ssl
|
||||
#
|
||||
# This class installs Apache SSL capabilities
|
||||
#
|
||||
# Parameters:
|
||||
# - The $ssl_package name from the apache::params class
|
||||
#
|
||||
# Actions:
|
||||
# - Install Apache SSL capabilities
|
||||
#
|
||||
# Requires:
|
||||
#
|
||||
# Sample Usage:
|
||||
#
|
||||
class apache::ssl {
|
||||
warning('apache::ssl is deprecated; please use apache::mod::ssl')
|
||||
include ::apache::mod::ssl
|
||||
}
|
||||
@@ -0,0 +1,999 @@
|
||||
# See README.md for usage information
|
||||
define apache::vhost(
|
||||
$docroot,
|
||||
$manage_docroot = true,
|
||||
$virtual_docroot = false,
|
||||
$port = undef,
|
||||
$ip = undef,
|
||||
$ip_based = false,
|
||||
$add_listen = true,
|
||||
$docroot_owner = 'root',
|
||||
$docroot_group = $::apache::params::root_group,
|
||||
$docroot_mode = undef,
|
||||
$serveradmin = undef,
|
||||
$ssl = false,
|
||||
$ssl_cert = $::apache::default_ssl_cert,
|
||||
$ssl_key = $::apache::default_ssl_key,
|
||||
$ssl_chain = $::apache::default_ssl_chain,
|
||||
$ssl_ca = $::apache::default_ssl_ca,
|
||||
$ssl_crl_path = $::apache::default_ssl_crl_path,
|
||||
$ssl_crl = $::apache::default_ssl_crl,
|
||||
$ssl_crl_check = $::apache::default_ssl_crl_check,
|
||||
$ssl_certs_dir = $::apache::params::ssl_certs_dir,
|
||||
$ssl_protocol = undef,
|
||||
$ssl_cipher = undef,
|
||||
$ssl_honorcipherorder = undef,
|
||||
$ssl_verify_client = undef,
|
||||
$ssl_verify_depth = undef,
|
||||
$ssl_proxy_verify = undef,
|
||||
$ssl_proxy_check_peer_cn = undef,
|
||||
$ssl_proxy_check_peer_name = undef,
|
||||
$ssl_proxy_machine_cert = undef,
|
||||
$ssl_options = undef,
|
||||
$ssl_openssl_conf_cmd = undef,
|
||||
$ssl_proxyengine = false,
|
||||
$priority = undef,
|
||||
$default_vhost = false,
|
||||
$servername = $name,
|
||||
$serveraliases = [],
|
||||
$options = ['Indexes','FollowSymLinks','MultiViews'],
|
||||
$override = ['None'],
|
||||
$directoryindex = '',
|
||||
$vhost_name = '*',
|
||||
$logroot = $::apache::logroot,
|
||||
$logroot_ensure = 'directory',
|
||||
$logroot_mode = undef,
|
||||
$log_level = undef,
|
||||
$access_log = true,
|
||||
$access_log_file = false,
|
||||
$access_log_pipe = false,
|
||||
$access_log_syslog = false,
|
||||
$access_log_format = false,
|
||||
$access_log_env_var = false,
|
||||
$access_logs = undef,
|
||||
$aliases = undef,
|
||||
$directories = undef,
|
||||
$error_log = true,
|
||||
$error_log_file = undef,
|
||||
$error_log_pipe = undef,
|
||||
$error_log_syslog = undef,
|
||||
$error_documents = [],
|
||||
$fallbackresource = undef,
|
||||
$scriptalias = undef,
|
||||
$scriptaliases = [],
|
||||
$proxy_dest = undef,
|
||||
$proxy_dest_match = undef,
|
||||
$proxy_dest_reverse_match = undef,
|
||||
$proxy_pass = undef,
|
||||
$proxy_pass_match = undef,
|
||||
$suphp_addhandler = $::apache::params::suphp_addhandler,
|
||||
$suphp_engine = $::apache::params::suphp_engine,
|
||||
$suphp_configpath = $::apache::params::suphp_configpath,
|
||||
$php_flags = {},
|
||||
$php_values = {},
|
||||
$php_admin_flags = {},
|
||||
$php_admin_values = {},
|
||||
$no_proxy_uris = [],
|
||||
$no_proxy_uris_match = [],
|
||||
$proxy_preserve_host = false,
|
||||
$proxy_error_override = false,
|
||||
$redirect_source = '/',
|
||||
$redirect_dest = undef,
|
||||
$redirect_status = undef,
|
||||
$redirectmatch_status = undef,
|
||||
$redirectmatch_regexp = undef,
|
||||
$redirectmatch_dest = undef,
|
||||
$rack_base_uris = undef,
|
||||
$passenger_base_uris = undef,
|
||||
$headers = undef,
|
||||
$request_headers = undef,
|
||||
$filters = undef,
|
||||
$rewrites = undef,
|
||||
$rewrite_base = undef,
|
||||
$rewrite_rule = undef,
|
||||
$rewrite_cond = undef,
|
||||
$setenv = [],
|
||||
$setenvif = [],
|
||||
$block = [],
|
||||
$ensure = 'present',
|
||||
$wsgi_application_group = undef,
|
||||
$wsgi_daemon_process = undef,
|
||||
$wsgi_daemon_process_options = undef,
|
||||
$wsgi_import_script = undef,
|
||||
$wsgi_import_script_options = undef,
|
||||
$wsgi_process_group = undef,
|
||||
$wsgi_script_aliases = undef,
|
||||
$wsgi_pass_authorization = undef,
|
||||
$wsgi_chunked_request = undef,
|
||||
$custom_fragment = undef,
|
||||
$itk = undef,
|
||||
$action = undef,
|
||||
$fastcgi_server = undef,
|
||||
$fastcgi_socket = undef,
|
||||
$fastcgi_dir = undef,
|
||||
$additional_includes = [],
|
||||
$use_optional_includes = $::apache::use_optional_includes,
|
||||
$apache_version = $::apache::apache_version,
|
||||
$allow_encoded_slashes = undef,
|
||||
$suexec_user_group = undef,
|
||||
$passenger_app_root = undef,
|
||||
$passenger_app_env = undef,
|
||||
$passenger_ruby = undef,
|
||||
$passenger_min_instances = undef,
|
||||
$passenger_start_timeout = undef,
|
||||
$passenger_pre_start = undef,
|
||||
$add_default_charset = undef,
|
||||
$modsec_disable_vhost = undef,
|
||||
$modsec_disable_ids = undef,
|
||||
$modsec_disable_ips = undef,
|
||||
$modsec_body_limit = undef,
|
||||
$auth_kerb = false,
|
||||
$krb_method_negotiate = 'on',
|
||||
$krb_method_k5passwd = 'on',
|
||||
$krb_authoritative = 'on',
|
||||
$krb_auth_realms = [],
|
||||
$krb_5keytab = undef,
|
||||
$krb_local_user_mapping = undef,
|
||||
$krb_verify_kdc = 'on',
|
||||
$krb_servicename = 'HTTP',
|
||||
$krb_save_credentials = 'off',
|
||||
) {
|
||||
# The base class must be included first because it is used by parameter defaults
|
||||
if ! defined(Class['apache']) {
|
||||
fail('You must include the apache base class before using any apache defined resources')
|
||||
}
|
||||
|
||||
$apache_name = $::apache::apache_name
|
||||
|
||||
validate_re($ensure, '^(present|absent)$',
|
||||
"${ensure} is not supported for ensure.
|
||||
Allowed values are 'present' and 'absent'.")
|
||||
validate_re($suphp_engine, '^(on|off)$',
|
||||
"${suphp_engine} is not supported for suphp_engine.
|
||||
Allowed values are 'on' and 'off'.")
|
||||
validate_bool($ip_based)
|
||||
validate_bool($access_log)
|
||||
validate_bool($error_log)
|
||||
validate_bool($ssl)
|
||||
validate_bool($default_vhost)
|
||||
validate_bool($ssl_proxyengine)
|
||||
if $rewrites {
|
||||
validate_array($rewrites)
|
||||
unless empty($rewrites) {
|
||||
validate_hash($rewrites[0])
|
||||
}
|
||||
}
|
||||
|
||||
# Input validation begins
|
||||
|
||||
if $suexec_user_group {
|
||||
validate_re($suexec_user_group, '^[\w-]+ [\w-]+$',
|
||||
"${suexec_user_group} is not supported for suexec_user_group. Must be 'user group'.")
|
||||
}
|
||||
|
||||
if $wsgi_pass_authorization {
|
||||
validate_re(downcase($wsgi_pass_authorization), '^(on|off)$',
|
||||
"${wsgi_pass_authorization} is not supported for wsgi_pass_authorization.
|
||||
Allowed values are 'on' and 'off'.")
|
||||
}
|
||||
|
||||
# Deprecated backwards-compatibility
|
||||
if $rewrite_base {
|
||||
warning('Apache::Vhost: parameter rewrite_base is deprecated in favor of rewrites')
|
||||
}
|
||||
if $rewrite_rule {
|
||||
warning('Apache::Vhost: parameter rewrite_rule is deprecated in favor of rewrites')
|
||||
}
|
||||
if $rewrite_cond {
|
||||
warning('Apache::Vhost parameter rewrite_cond is deprecated in favor of rewrites')
|
||||
}
|
||||
|
||||
if $wsgi_script_aliases {
|
||||
validate_hash($wsgi_script_aliases)
|
||||
}
|
||||
if $wsgi_daemon_process_options {
|
||||
validate_hash($wsgi_daemon_process_options)
|
||||
}
|
||||
if $wsgi_import_script_options {
|
||||
validate_hash($wsgi_import_script_options)
|
||||
}
|
||||
if $itk {
|
||||
validate_hash($itk)
|
||||
}
|
||||
|
||||
validate_re($logroot_ensure, '^(directory|absent)$',
|
||||
"${logroot_ensure} is not supported for logroot_ensure.
|
||||
Allowed values are 'directory' and 'absent'.")
|
||||
|
||||
if $log_level {
|
||||
validate_apache_log_level($log_level)
|
||||
}
|
||||
|
||||
if $access_log_file and $access_log_pipe {
|
||||
fail("Apache::Vhost[${name}]: 'access_log_file' and 'access_log_pipe' cannot be defined at the same time")
|
||||
}
|
||||
|
||||
if $error_log_file and $error_log_pipe {
|
||||
fail("Apache::Vhost[${name}]: 'error_log_file' and 'error_log_pipe' cannot be defined at the same time")
|
||||
}
|
||||
|
||||
if $fallbackresource {
|
||||
validate_re($fallbackresource, '^/|disabled', 'Please make sure fallbackresource starts with a / (or is "disabled")')
|
||||
}
|
||||
|
||||
if $custom_fragment {
|
||||
validate_string($custom_fragment)
|
||||
}
|
||||
|
||||
if $allow_encoded_slashes {
|
||||
validate_re($allow_encoded_slashes, '(^on$|^off$|^nodecode$)', "${allow_encoded_slashes} is not permitted for allow_encoded_slashes. Allowed values are 'on', 'off' or 'nodecode'.")
|
||||
}
|
||||
|
||||
validate_bool($auth_kerb)
|
||||
|
||||
# Validate the docroot as a string if:
|
||||
# - $manage_docroot is true
|
||||
if $manage_docroot {
|
||||
validate_string($docroot)
|
||||
}
|
||||
|
||||
if $ssl_proxy_verify {
|
||||
validate_re($ssl_proxy_verify,'^(none|optional|require|optional_no_ca)$',"${ssl_proxy_verify} is not permitted for ssl_proxy_verify. Allowed values are 'none', 'optional', 'require' or 'optional_no_ca'.")
|
||||
}
|
||||
|
||||
if $ssl_proxy_check_peer_cn {
|
||||
validate_re($ssl_proxy_check_peer_cn,'(^on$|^off$)',"${ssl_proxy_check_peer_cn} is not permitted for ssl_proxy_check_peer_cn. Allowed values are 'on' or 'off'.")
|
||||
}
|
||||
if $ssl_proxy_check_peer_name {
|
||||
validate_re($ssl_proxy_check_peer_name,'(^on$|^off$)',"${ssl_proxy_check_peer_name} is not permitted for ssl_proxy_check_peer_name. Allowed values are 'on' or 'off'.")
|
||||
}
|
||||
|
||||
# Input validation ends
|
||||
|
||||
if $ssl and $ensure == 'present' {
|
||||
include ::apache::mod::ssl
|
||||
# Required for the AddType lines.
|
||||
include ::apache::mod::mime
|
||||
}
|
||||
|
||||
if $auth_kerb and $ensure == 'present' {
|
||||
include ::apache::mod::auth_kerb
|
||||
}
|
||||
|
||||
if $virtual_docroot {
|
||||
include ::apache::mod::vhost_alias
|
||||
}
|
||||
|
||||
if $wsgi_daemon_process {
|
||||
include ::apache::mod::wsgi
|
||||
}
|
||||
|
||||
if $suexec_user_group {
|
||||
include ::apache::mod::suexec
|
||||
}
|
||||
|
||||
if $passenger_app_root or $passenger_app_env or $passenger_ruby or $passenger_min_instances or $passenger_start_timeout or $passenger_pre_start {
|
||||
include ::apache::mod::passenger
|
||||
}
|
||||
|
||||
# Configure the defaultness of a vhost
|
||||
if $priority {
|
||||
$priority_real = "${priority}-"
|
||||
} elsif $priority == false {
|
||||
$priority_real = ''
|
||||
} elsif $default_vhost {
|
||||
$priority_real = '10-'
|
||||
} else {
|
||||
$priority_real = '25-'
|
||||
}
|
||||
|
||||
## Apache include does not always work with spaces in the filename
|
||||
$filename = regsubst($name, ' ', '_', 'G')
|
||||
|
||||
# This ensures that the docroot exists
|
||||
# But enables it to be specified across multiple vhost resources
|
||||
if $manage_docroot and $docroot and ! defined(File[$docroot]) {
|
||||
file { $docroot:
|
||||
ensure => directory,
|
||||
owner => $docroot_owner,
|
||||
group => $docroot_group,
|
||||
mode => $docroot_mode,
|
||||
require => Package['httpd'],
|
||||
before => Concat["${priority_real}${filename}.conf"],
|
||||
}
|
||||
}
|
||||
|
||||
# Same as above, but for logroot
|
||||
if ! defined(File[$logroot]) {
|
||||
file { $logroot:
|
||||
ensure => $logroot_ensure,
|
||||
mode => $logroot_mode,
|
||||
require => Package['httpd'],
|
||||
before => Concat["${priority_real}${filename}.conf"],
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Is apache::mod::passenger enabled (or apache::mod['passenger'])
|
||||
$passenger_enabled = defined(Apache::Mod['passenger'])
|
||||
|
||||
# Is apache::mod::shib enabled (or apache::mod['shib2'])
|
||||
$shibboleth_enabled = defined(Apache::Mod['shib2'])
|
||||
|
||||
if $access_log and !$access_logs {
|
||||
if $access_log_file {
|
||||
$_logs_dest = "${logroot}/${access_log_file}"
|
||||
} elsif $access_log_pipe {
|
||||
$_logs_dest = $access_log_pipe
|
||||
} elsif $access_log_syslog {
|
||||
$_logs_dest = $access_log_syslog
|
||||
} else {
|
||||
$_logs_dest = undef
|
||||
}
|
||||
$_access_logs = [{
|
||||
'file' => $access_log_file,
|
||||
'pipe' => $access_log_pipe,
|
||||
'syslog' => $access_log_syslog,
|
||||
'format' => $access_log_format,
|
||||
'env' => $access_log_env_var
|
||||
}]
|
||||
} elsif $access_logs {
|
||||
if !is_array($access_logs) {
|
||||
fail("Apache::Vhost[${name}]: access_logs must be an array of hashes")
|
||||
}
|
||||
$_access_logs = $access_logs
|
||||
}
|
||||
|
||||
if $error_log_file {
|
||||
$error_log_destination = "${logroot}/${error_log_file}"
|
||||
} elsif $error_log_pipe {
|
||||
$error_log_destination = $error_log_pipe
|
||||
} elsif $error_log_syslog {
|
||||
$error_log_destination = $error_log_syslog
|
||||
} else {
|
||||
if $ssl {
|
||||
$error_log_destination = "${logroot}/${name}_error_ssl.log"
|
||||
} else {
|
||||
$error_log_destination = "${logroot}/${name}_error.log"
|
||||
}
|
||||
}
|
||||
|
||||
if $ip {
|
||||
$_ip = enclose_ipv6($ip)
|
||||
if $port {
|
||||
$listen_addr_port = suffix(any2array($_ip),":${port}")
|
||||
$nvh_addr_port = suffix(any2array($_ip),":${port}")
|
||||
} else {
|
||||
$listen_addr_port = undef
|
||||
$nvh_addr_port = $_ip
|
||||
if ! $servername and ! $ip_based {
|
||||
fail("Apache::Vhost[${name}]: must pass 'ip' and/or 'port' parameters for name-based vhosts")
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if $port {
|
||||
$listen_addr_port = $port
|
||||
$nvh_addr_port = "${vhost_name}:${port}"
|
||||
} else {
|
||||
$listen_addr_port = undef
|
||||
$nvh_addr_port = $name
|
||||
if ! $servername {
|
||||
fail("Apache::Vhost[${name}]: must pass 'ip' and/or 'port' parameters, and/or 'servername' parameter")
|
||||
}
|
||||
}
|
||||
}
|
||||
if $add_listen {
|
||||
if $ip and defined(Apache::Listen["${port}"]) {
|
||||
fail("Apache::Vhost[${name}]: Mixing IP and non-IP Listen directives is not possible; check the add_listen parameter of the apache::vhost define to disable this")
|
||||
}
|
||||
if $listen_addr_port and $ensure == 'present' {
|
||||
ensure_resource('apache::listen', $listen_addr_port)
|
||||
}
|
||||
}
|
||||
if ! $ip_based {
|
||||
if $ensure == 'present' and (versioncmp($apache_version, '2.4') < 0) {
|
||||
ensure_resource('apache::namevirtualhost', $nvh_addr_port)
|
||||
}
|
||||
}
|
||||
|
||||
# Load mod_rewrite if needed and not yet loaded
|
||||
if $rewrites or $rewrite_cond {
|
||||
if ! defined(Class['apache::mod::rewrite']) {
|
||||
include ::apache::mod::rewrite
|
||||
}
|
||||
}
|
||||
|
||||
# Load mod_alias if needed and not yet loaded
|
||||
if ($scriptalias or $scriptaliases != []) or ($aliases and $aliases != []) or ($redirect_source and $redirect_dest) {
|
||||
if ! defined(Class['apache::mod::alias']) and ($ensure == 'present') {
|
||||
include ::apache::mod::alias
|
||||
}
|
||||
}
|
||||
|
||||
# Load mod_proxy if needed and not yet loaded
|
||||
if ($proxy_dest or $proxy_pass or $proxy_pass_match or $proxy_dest_match) {
|
||||
if ! defined(Class['apache::mod::proxy']) {
|
||||
include ::apache::mod::proxy
|
||||
}
|
||||
if ! defined(Class['apache::mod::proxy_http']) {
|
||||
include ::apache::mod::proxy_http
|
||||
}
|
||||
}
|
||||
|
||||
# Load mod_passenger if needed and not yet loaded
|
||||
if $rack_base_uris {
|
||||
if ! defined(Class['apache::mod::passenger']) {
|
||||
include ::apache::mod::passenger
|
||||
}
|
||||
}
|
||||
|
||||
# Load mod_passenger if needed and not yet loaded
|
||||
if $passenger_base_uris {
|
||||
include ::apache::mod::passenger
|
||||
}
|
||||
|
||||
# Load mod_fastci if needed and not yet loaded
|
||||
if $fastcgi_server and $fastcgi_socket {
|
||||
if ! defined(Class['apache::mod::fastcgi']) {
|
||||
include ::apache::mod::fastcgi
|
||||
}
|
||||
}
|
||||
|
||||
# Check if mod_headers is required to process $headers/$request_headers
|
||||
if $headers or $request_headers {
|
||||
if ! defined(Class['apache::mod::headers']) {
|
||||
include ::apache::mod::headers
|
||||
}
|
||||
}
|
||||
|
||||
# Check if mod_filter is required to process $filters
|
||||
if $filters {
|
||||
if ! defined(Class['apache::mod::filter']) {
|
||||
include ::apache::mod::filter
|
||||
}
|
||||
}
|
||||
|
||||
if ($setenv and ! empty($setenv)) or ($setenvif and ! empty($setenvif)) {
|
||||
if ! defined(Class['apache::mod::setenvif']) {
|
||||
include ::apache::mod::setenvif
|
||||
}
|
||||
}
|
||||
|
||||
## Create a default directory list if none defined
|
||||
if $directories {
|
||||
if !is_hash($directories) and !(is_array($directories) and is_hash($directories[0])) {
|
||||
fail("Apache::Vhost[${name}]: 'directories' must be either a Hash or an Array of Hashes")
|
||||
}
|
||||
$_directories = $directories
|
||||
} elsif $docroot {
|
||||
$_directory = {
|
||||
provider => 'directory',
|
||||
path => $docroot,
|
||||
options => $options,
|
||||
allow_override => $override,
|
||||
directoryindex => $directoryindex,
|
||||
}
|
||||
|
||||
if versioncmp($apache_version, '2.4') >= 0 {
|
||||
$_directory_version = {
|
||||
require => 'all granted',
|
||||
}
|
||||
} else {
|
||||
$_directory_version = {
|
||||
order => 'allow,deny',
|
||||
allow => 'from all',
|
||||
}
|
||||
}
|
||||
|
||||
$_directories = [ merge($_directory, $_directory_version) ]
|
||||
}
|
||||
|
||||
## Create a global LocationMatch if locations aren't defined
|
||||
if $modsec_disable_ids {
|
||||
if is_hash($modsec_disable_ids) {
|
||||
$_modsec_disable_ids = $modsec_disable_ids
|
||||
} elsif is_array($modsec_disable_ids) {
|
||||
$_modsec_disable_ids = { '.*' => $modsec_disable_ids }
|
||||
} else {
|
||||
fail("Apache::Vhost[${name}]: 'modsec_disable_ids' must be either a Hash of location/IDs or an Array of IDs")
|
||||
}
|
||||
}
|
||||
|
||||
concat { "${priority_real}${filename}.conf":
|
||||
ensure => $ensure,
|
||||
path => "${::apache::vhost_dir}/${priority_real}${filename}.conf",
|
||||
owner => 'root',
|
||||
group => $::apache::params::root_group,
|
||||
mode => $::apache::file_mode,
|
||||
order => 'numeric',
|
||||
require => Package['httpd'],
|
||||
notify => Class['apache::service'],
|
||||
}
|
||||
# NOTE(pabelanger): This code is duplicated in ::apache::vhost::custom and
|
||||
# needs to be converted into something generic.
|
||||
if $::apache::vhost_enable_dir {
|
||||
$vhost_enable_dir = $::apache::vhost_enable_dir
|
||||
$vhost_symlink_ensure = $ensure ? {
|
||||
present => link,
|
||||
default => $ensure,
|
||||
}
|
||||
file{ "${priority_real}${filename}.conf symlink":
|
||||
ensure => $vhost_symlink_ensure,
|
||||
path => "${vhost_enable_dir}/${priority_real}${filename}.conf",
|
||||
target => "${::apache::vhost_dir}/${priority_real}${filename}.conf",
|
||||
owner => 'root',
|
||||
group => $::apache::params::root_group,
|
||||
mode => $::apache::file_mode,
|
||||
require => Concat["${priority_real}${filename}.conf"],
|
||||
notify => Class['apache::service'],
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $nvh_addr_port
|
||||
# - $servername
|
||||
# - $serveradmin
|
||||
concat::fragment { "${name}-apache-header":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 0,
|
||||
content => template('apache/vhost/_file_header.erb'),
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $virtual_docroot
|
||||
# - $docroot
|
||||
if $docroot {
|
||||
concat::fragment { "${name}-docroot":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 10,
|
||||
content => template('apache/vhost/_docroot.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $aliases
|
||||
if $aliases and ! empty($aliases) {
|
||||
concat::fragment { "${name}-aliases":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 20,
|
||||
content => template('apache/vhost/_aliases.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $itk
|
||||
# - $::kernelversion
|
||||
if $itk and ! empty($itk) {
|
||||
concat::fragment { "${name}-itk":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 30,
|
||||
content => template('apache/vhost/_itk.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $fallbackresource
|
||||
if $fallbackresource {
|
||||
concat::fragment { "${name}-fallbackresource":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 40,
|
||||
content => template('apache/vhost/_fallbackresource.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $allow_encoded_slashes
|
||||
if $allow_encoded_slashes {
|
||||
concat::fragment { "${name}-allow_encoded_slashes":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 50,
|
||||
content => template('apache/vhost/_allow_encoded_slashes.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $_directories
|
||||
# - $docroot
|
||||
# - $apache_version
|
||||
# - $suphp_engine
|
||||
# - $shibboleth_enabled
|
||||
if $_directories and ! empty($_directories) {
|
||||
concat::fragment { "${name}-directories":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 60,
|
||||
content => template('apache/vhost/_directories.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $additional_includes
|
||||
if $additional_includes and ! empty($additional_includes) {
|
||||
concat::fragment { "${name}-additional_includes":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 70,
|
||||
content => template('apache/vhost/_additional_includes.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $error_log
|
||||
# - $log_level
|
||||
# - $error_log_destination
|
||||
# - $log_level
|
||||
if $error_log or $log_level {
|
||||
concat::fragment { "${name}-logging":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 80,
|
||||
content => template('apache/vhost/_logging.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses no variables
|
||||
concat::fragment { "${name}-serversignature":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 90,
|
||||
content => template('apache/vhost/_serversignature.erb'),
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $access_log
|
||||
# - $_access_log_env_var
|
||||
# - $access_log_destination
|
||||
# - $_access_log_format
|
||||
# - $_access_log_env_var
|
||||
# - $access_logs
|
||||
if $access_log or $access_logs {
|
||||
concat::fragment { "${name}-access_log":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 100,
|
||||
content => template('apache/vhost/_access_log.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $action
|
||||
if $action {
|
||||
concat::fragment { "${name}-action":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 110,
|
||||
content => template('apache/vhost/_action.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $block
|
||||
# - $apache_version
|
||||
if $block and ! empty($block) {
|
||||
concat::fragment { "${name}-block":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 120,
|
||||
content => template('apache/vhost/_block.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $error_documents
|
||||
if $error_documents and ! empty($error_documents) {
|
||||
concat::fragment { "${name}-error_document":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 130,
|
||||
content => template('apache/vhost/_error_document.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $headers
|
||||
if $headers and ! empty($headers) {
|
||||
concat::fragment { "${name}-header":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 140,
|
||||
content => template('apache/vhost/_header.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $request_headers
|
||||
if $request_headers and ! empty($request_headers) {
|
||||
concat::fragment { "${name}-requestheader":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 150,
|
||||
content => template('apache/vhost/_requestheader.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $proxy_dest
|
||||
# - $proxy_pass
|
||||
# - $proxy_pass_match
|
||||
# - $proxy_preserve_host
|
||||
# - $no_proxy_uris
|
||||
if $proxy_dest or $proxy_pass or $proxy_pass_match or $proxy_dest_match {
|
||||
concat::fragment { "${name}-proxy":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 160,
|
||||
content => template('apache/vhost/_proxy.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $rack_base_uris
|
||||
if $rack_base_uris {
|
||||
concat::fragment { "${name}-rack":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 170,
|
||||
content => template('apache/vhost/_rack.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $passenger_base_uris
|
||||
if $passenger_base_uris {
|
||||
concat::fragment { "${name}-passenger_uris":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 175,
|
||||
content => template('apache/vhost/_passenger_base_uris.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $redirect_source
|
||||
# - $redirect_dest
|
||||
# - $redirect_status
|
||||
# - $redirect_dest_a
|
||||
# - $redirect_source_a
|
||||
# - $redirect_status_a
|
||||
# - $redirectmatch_status
|
||||
# - $redirectmatch_regexp
|
||||
# - $redirectmatch_dest
|
||||
# - $redirectmatch_status_a
|
||||
# - $redirectmatch_regexp_a
|
||||
# - $redirectmatch_dest
|
||||
if ($redirect_source and $redirect_dest) or ($redirectmatch_status and $redirectmatch_regexp and $redirectmatch_dest) {
|
||||
concat::fragment { "${name}-redirect":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 180,
|
||||
content => template('apache/vhost/_redirect.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $rewrites
|
||||
# - $rewrite_base
|
||||
# - $rewrite_rule
|
||||
# - $rewrite_cond
|
||||
# - $rewrite_map
|
||||
if $rewrites or $rewrite_rule {
|
||||
concat::fragment { "${name}-rewrite":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 190,
|
||||
content => template('apache/vhost/_rewrite.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $scriptaliases
|
||||
# - $scriptalias
|
||||
if ( $scriptalias or $scriptaliases != [] ) {
|
||||
concat::fragment { "${name}-scriptalias":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 200,
|
||||
content => template('apache/vhost/_scriptalias.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $serveraliases
|
||||
if $serveraliases and ! empty($serveraliases) {
|
||||
concat::fragment { "${name}-serveralias":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 210,
|
||||
content => template('apache/vhost/_serveralias.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $setenv
|
||||
# - $setenvif
|
||||
if ($setenv and ! empty($setenv)) or ($setenvif and ! empty($setenvif)) {
|
||||
concat::fragment { "${name}-setenv":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 220,
|
||||
content => template('apache/vhost/_setenv.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $ssl
|
||||
# - $ssl_cert
|
||||
# - $ssl_key
|
||||
# - $ssl_chain
|
||||
# - $ssl_certs_dir
|
||||
# - $ssl_ca
|
||||
# - $ssl_crl_path
|
||||
# - $ssl_crl
|
||||
# - $ssl_crl_check
|
||||
# - $ssl_protocol
|
||||
# - $ssl_cipher
|
||||
# - $ssl_honorcipherorder
|
||||
# - $ssl_verify_client
|
||||
# - $ssl_verify_depth
|
||||
# - $ssl_options
|
||||
# - $ssl_openssl_conf_cmd
|
||||
# - $apache_version
|
||||
if $ssl {
|
||||
concat::fragment { "${name}-ssl":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 230,
|
||||
content => template('apache/vhost/_ssl.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $ssl_proxyengine
|
||||
# - $ssl_proxy_verify
|
||||
# - $ssl_proxy_check_peer_cn
|
||||
# - $ssl_proxy_check_peer_name
|
||||
# - $ssl_proxy_machine_cert
|
||||
if $ssl_proxyengine {
|
||||
concat::fragment { "${name}-sslproxy":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 230,
|
||||
content => template('apache/vhost/_sslproxy.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $auth_kerb
|
||||
# - $krb_method_negotiate
|
||||
# - $krb_method_k5passwd
|
||||
# - $krb_authoritative
|
||||
# - $krb_auth_realms
|
||||
# - $krb_5keytab
|
||||
# - $krb_local_user_mapping
|
||||
if $auth_kerb {
|
||||
concat::fragment { "${name}-auth_kerb":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 230,
|
||||
content => template('apache/vhost/_auth_kerb.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $suphp_engine
|
||||
# - $suphp_addhandler
|
||||
# - $suphp_configpath
|
||||
if $suphp_engine == 'on' {
|
||||
concat::fragment { "${name}-suphp":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 240,
|
||||
content => template('apache/vhost/_suphp.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $php_values
|
||||
# - $php_flags
|
||||
if ($php_values and ! empty($php_values)) or ($php_flags and ! empty($php_flags)) {
|
||||
concat::fragment { "${name}-php":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 240,
|
||||
content => template('apache/vhost/_php.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $php_admin_values
|
||||
# - $php_admin_flags
|
||||
if ($php_admin_values and ! empty($php_admin_values)) or ($php_admin_flags and ! empty($php_admin_flags)) {
|
||||
concat::fragment { "${name}-php_admin":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 250,
|
||||
content => template('apache/vhost/_php_admin.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $wsgi_application_group
|
||||
# - $wsgi_daemon_process
|
||||
# - $wsgi_daemon_process_options
|
||||
# - $wsgi_import_script
|
||||
# - $wsgi_import_script_options
|
||||
# - $wsgi_process_group
|
||||
# - $wsgi_script_aliases
|
||||
# - $wsgi_pass_authorization
|
||||
if $wsgi_application_group or $wsgi_daemon_process or ($wsgi_import_script and $wsgi_import_script_options) or $wsgi_process_group or ($wsgi_script_aliases and ! empty($wsgi_script_aliases)) or $wsgi_pass_authorization {
|
||||
concat::fragment { "${name}-wsgi":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 260,
|
||||
content => template('apache/vhost/_wsgi.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $custom_fragment
|
||||
if $custom_fragment {
|
||||
concat::fragment { "${name}-custom_fragment":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 270,
|
||||
content => template('apache/vhost/_custom_fragment.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $fastcgi_server
|
||||
# - $fastcgi_socket
|
||||
# - $fastcgi_dir
|
||||
# - $apache_version
|
||||
if $fastcgi_server or $fastcgi_dir {
|
||||
concat::fragment { "${name}-fastcgi":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 280,
|
||||
content => template('apache/vhost/_fastcgi.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $suexec_user_group
|
||||
if $suexec_user_group {
|
||||
concat::fragment { "${name}-suexec":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 290,
|
||||
content => template('apache/vhost/_suexec.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $passenger_app_root
|
||||
# - $passenger_app_env
|
||||
# - $passenger_ruby
|
||||
# - $passenger_min_instances
|
||||
# - $passenger_start_timeout
|
||||
# - $passenger_pre_start
|
||||
if $passenger_app_root or $passenger_app_env or $passenger_ruby or $passenger_min_instances or $passenger_start_timeout or $passenger_pre_start {
|
||||
concat::fragment { "${name}-passenger":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 300,
|
||||
content => template('apache/vhost/_passenger.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $add_default_charset
|
||||
if $add_default_charset {
|
||||
concat::fragment { "${name}-charsets":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 310,
|
||||
content => template('apache/vhost/_charsets.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $modsec_disable_vhost
|
||||
# - $modsec_disable_ids
|
||||
# - $modsec_disable_ips
|
||||
# - $modsec_body_limit
|
||||
if $modsec_disable_vhost or $modsec_disable_ids or $modsec_disable_ips {
|
||||
concat::fragment { "${name}-security":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 320,
|
||||
content => template('apache/vhost/_security.erb')
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses:
|
||||
# - $filters
|
||||
if $filters and ! empty($filters) {
|
||||
concat::fragment { "${name}-filters":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 330,
|
||||
content => template('apache/vhost/_filters.erb'),
|
||||
}
|
||||
}
|
||||
|
||||
# Template uses no variables
|
||||
concat::fragment { "${name}-file_footer":
|
||||
target => "${priority_real}${filename}.conf",
|
||||
order => 999,
|
||||
content => template('apache/vhost/_file_footer.erb'),
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"name": "puppetlabs-apache",
|
||||
"version": "1.8.1",
|
||||
"author": "puppetlabs",
|
||||
"summary": "Installs, configures, and manages Apache virtual hosts, web services, and modules.",
|
||||
"license": "Apache-2.0",
|
||||
"source": "git://github.com/puppetlabs/puppetlabs-apache.git",
|
||||
"project_page": "https://github.com/puppetlabs/puppetlabs-apache",
|
||||
"issues_url": "https://tickets.puppetlabs.com/browse/MODULES",
|
||||
"dependencies": [
|
||||
{"name":"puppetlabs/stdlib","version_requirement":">= 2.4.0 < 5.0.0"},
|
||||
{"name":"puppetlabs/concat","version_requirement":">= 1.1.1 < 3.0.0"}
|
||||
],
|
||||
"data_provider": null,
|
||||
"operatingsystem_support": [
|
||||
{
|
||||
"operatingsystem": "RedHat",
|
||||
"operatingsystemrelease": [
|
||||
"5",
|
||||
"6",
|
||||
"7"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operatingsystem": "CentOS",
|
||||
"operatingsystemrelease": [
|
||||
"5",
|
||||
"6",
|
||||
"7"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operatingsystem": "OracleLinux",
|
||||
"operatingsystemrelease": [
|
||||
"6",
|
||||
"7"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operatingsystem": "Scientific",
|
||||
"operatingsystemrelease": [
|
||||
"5",
|
||||
"6",
|
||||
"7"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operatingsystem": "Debian",
|
||||
"operatingsystemrelease": [
|
||||
"6",
|
||||
"7",
|
||||
"8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operatingsystem": "SLES",
|
||||
"operatingsystemrelease": [
|
||||
"11 SP1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operatingsystem": "Ubuntu",
|
||||
"operatingsystemrelease": [
|
||||
"10.04",
|
||||
"12.04",
|
||||
"14.04"
|
||||
]
|
||||
}
|
||||
],
|
||||
"requirements": [
|
||||
{
|
||||
"name": "pe",
|
||||
"version_requirement": ">= 3.7.0 < 2015.4.0"
|
||||
},
|
||||
{
|
||||
"name": "puppet",
|
||||
"version_requirement": ">= 3.0.0 < 5.0.0"
|
||||
}
|
||||
],
|
||||
"description": "Module for Apache configuration"
|
||||
}
|
||||
@@ -0,0 +1,884 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'apache', :type => :class do
|
||||
context "on a Debian OS" do
|
||||
let :facts do
|
||||
{
|
||||
:id => 'root',
|
||||
:kernel => 'Linux',
|
||||
:lsbdistcodename => 'squeeze',
|
||||
:osfamily => 'Debian',
|
||||
:operatingsystem => 'Debian',
|
||||
:operatingsystemrelease => '6',
|
||||
:path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
|
||||
:concat_basedir => '/dne',
|
||||
:is_pe => false,
|
||||
}
|
||||
end
|
||||
it { is_expected.to contain_class("apache::params") }
|
||||
it { is_expected.to contain_package("httpd").with(
|
||||
'notify' => 'Class[Apache::Service]',
|
||||
'ensure' => 'installed'
|
||||
)
|
||||
}
|
||||
it { is_expected.to contain_user("www-data") }
|
||||
it { is_expected.to contain_group("www-data") }
|
||||
it { is_expected.to contain_class("apache::service") }
|
||||
it { is_expected.to contain_file("/var/www").with(
|
||||
'ensure' => 'directory'
|
||||
)
|
||||
}
|
||||
it { is_expected.to contain_file("/etc/apache2/sites-enabled").with(
|
||||
'ensure' => 'directory',
|
||||
'recurse' => 'true',
|
||||
'purge' => 'true',
|
||||
'notify' => 'Class[Apache::Service]',
|
||||
'require' => 'Package[httpd]'
|
||||
)
|
||||
}
|
||||
it { is_expected.to contain_file("/etc/apache2/mods-enabled").with(
|
||||
'ensure' => 'directory',
|
||||
'recurse' => 'true',
|
||||
'purge' => 'true',
|
||||
'notify' => 'Class[Apache::Service]',
|
||||
'require' => 'Package[httpd]'
|
||||
)
|
||||
}
|
||||
it { is_expected.to contain_file("/etc/apache2/mods-available").with(
|
||||
'ensure' => 'directory',
|
||||
'recurse' => 'true',
|
||||
'purge' => 'false',
|
||||
'notify' => 'Class[Apache::Service]',
|
||||
'require' => 'Package[httpd]'
|
||||
)
|
||||
}
|
||||
it { is_expected.to contain_concat("/etc/apache2/ports.conf").with(
|
||||
'owner' => 'root',
|
||||
'group' => 'root',
|
||||
'mode' => '0644',
|
||||
'notify' => 'Class[Apache::Service]'
|
||||
)
|
||||
}
|
||||
# Assert that load files are placed and symlinked for these mods, but no conf file.
|
||||
[
|
||||
'auth_basic',
|
||||
'authn_file',
|
||||
'authz_default',
|
||||
'authz_groupfile',
|
||||
'authz_host',
|
||||
'authz_user',
|
||||
'dav',
|
||||
'env'
|
||||
].each do |modname|
|
||||
it { is_expected.to contain_file("#{modname}.load").with(
|
||||
'path' => "/etc/apache2/mods-available/#{modname}.load",
|
||||
'ensure' => 'file'
|
||||
) }
|
||||
it { is_expected.to contain_file("#{modname}.load symlink").with(
|
||||
'path' => "/etc/apache2/mods-enabled/#{modname}.load",
|
||||
'ensure' => 'link',
|
||||
'target' => "/etc/apache2/mods-available/#{modname}.load"
|
||||
) }
|
||||
it { is_expected.not_to contain_file("#{modname}.conf") }
|
||||
it { is_expected.not_to contain_file("#{modname}.conf symlink") }
|
||||
end
|
||||
|
||||
context "with Apache version < 2.4" do
|
||||
let :params do
|
||||
{ :apache_version => '2.2' }
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/etc/apache2/apache2.conf").with_content %r{^Include "/etc/apache2/conf\.d/\*\.conf"$} }
|
||||
end
|
||||
|
||||
context "with Apache version >= 2.4" do
|
||||
let :params do
|
||||
{
|
||||
:apache_version => '2.4',
|
||||
:use_optional_includes => true
|
||||
}
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/etc/apache2/apache2.conf").with_content %r{^IncludeOptional "/etc/apache2/conf\.d/\*\.conf"$} }
|
||||
end
|
||||
|
||||
context "when specifying slash encoding behaviour" do
|
||||
let :params do
|
||||
{ :allow_encoded_slashes => 'nodecode' }
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/etc/apache2/apache2.conf").with_content %r{^AllowEncodedSlashes nodecode$} }
|
||||
end
|
||||
|
||||
context "when specifying default character set" do
|
||||
let :params do
|
||||
{ :default_charset => 'none' }
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/etc/apache2/apache2.conf").with_content %r{^AddDefaultCharset none$} }
|
||||
end
|
||||
|
||||
# Assert that both load files and conf files are placed and symlinked for these mods
|
||||
[
|
||||
'alias',
|
||||
'autoindex',
|
||||
'dav_fs',
|
||||
'deflate',
|
||||
'dir',
|
||||
'mime',
|
||||
'negotiation',
|
||||
'setenvif',
|
||||
].each do |modname|
|
||||
it { is_expected.to contain_file("#{modname}.load").with(
|
||||
'path' => "/etc/apache2/mods-available/#{modname}.load",
|
||||
'ensure' => 'file'
|
||||
) }
|
||||
it { is_expected.to contain_file("#{modname}.load symlink").with(
|
||||
'path' => "/etc/apache2/mods-enabled/#{modname}.load",
|
||||
'ensure' => 'link',
|
||||
'target' => "/etc/apache2/mods-available/#{modname}.load"
|
||||
) }
|
||||
it { is_expected.to contain_file("#{modname}.conf").with(
|
||||
'path' => "/etc/apache2/mods-available/#{modname}.conf",
|
||||
'ensure' => 'file'
|
||||
) }
|
||||
it { is_expected.to contain_file("#{modname}.conf symlink").with(
|
||||
'path' => "/etc/apache2/mods-enabled/#{modname}.conf",
|
||||
'ensure' => 'link',
|
||||
'target' => "/etc/apache2/mods-available/#{modname}.conf"
|
||||
) }
|
||||
end
|
||||
|
||||
describe "Check default type" do
|
||||
context "with Apache version < 2.4" do
|
||||
let :params do
|
||||
{
|
||||
:apache_version => '2.2',
|
||||
}
|
||||
end
|
||||
|
||||
context "when default_type => 'none'" do
|
||||
let :params do
|
||||
{ :default_type => 'none' }
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/etc/apache2/apache2.conf").with_content %r{^DefaultType none$} }
|
||||
end
|
||||
context "when default_type => 'text/plain'" do
|
||||
let :params do
|
||||
{ :default_type => 'text/plain' }
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/etc/apache2/apache2.conf").with_content %r{^DefaultType text/plain$} }
|
||||
end
|
||||
end
|
||||
|
||||
context "with Apache version >= 2.4" do
|
||||
let :params do
|
||||
{
|
||||
:apache_version => '2.4',
|
||||
}
|
||||
end
|
||||
it { is_expected.to contain_file("/etc/apache2/apache2.conf").without_content %r{^DefaultType [.]*$} }
|
||||
end
|
||||
end
|
||||
|
||||
describe "Don't create user resource" do
|
||||
context "when parameter manage_user is false" do
|
||||
let :params do
|
||||
{ :manage_user => false }
|
||||
end
|
||||
|
||||
it { is_expected.not_to contain_user('www-data') }
|
||||
it { is_expected.to contain_file("/etc/apache2/apache2.conf").with_content %r{^User www-data\n} }
|
||||
end
|
||||
end
|
||||
describe "Don't create group resource" do
|
||||
context "when parameter manage_group is false" do
|
||||
let :params do
|
||||
{ :manage_group => false }
|
||||
end
|
||||
|
||||
it { is_expected.not_to contain_group('www-data') }
|
||||
it { is_expected.to contain_file("/etc/apache2/apache2.conf").with_content %r{^Group www-data\n} }
|
||||
end
|
||||
end
|
||||
|
||||
describe "Add extra LogFormats" do
|
||||
context "When parameter log_formats is a hash" do
|
||||
let :params do
|
||||
{ :log_formats => {
|
||||
'vhost_common' => "%v %h %l %u %t \"%r\" %>s %b",
|
||||
'vhost_combined' => "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
|
||||
} }
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/etc/apache2/apache2.conf").with_content %r{^LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common\n} }
|
||||
it { is_expected.to contain_file("/etc/apache2/apache2.conf").with_content %r{^LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%\{Referer\}i\" \"%\{User-agent\}i\"" vhost_combined\n} }
|
||||
end
|
||||
end
|
||||
|
||||
describe "Override existing LogFormats" do
|
||||
context "When parameter log_formats is a hash" do
|
||||
let :params do
|
||||
{ :log_formats => {
|
||||
'common' => "%v %h %l %u %t \"%r\" %>s %b",
|
||||
'combined' => "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
|
||||
} }
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/etc/apache2/apache2.conf").with_content %r{^LogFormat "%v %h %l %u %t \"%r\" %>s %b" common\n} }
|
||||
it { is_expected.to contain_file("/etc/apache2/apache2.conf").without_content %r{^LogFormat "%h %l %u %t \"%r\" %>s %b \"%\{Referer\}i\" \"%\{User-agent\}i\"" combined\n} }
|
||||
it { is_expected.to contain_file("/etc/apache2/apache2.conf").with_content %r{^LogFormat "%v %h %l %u %t \"%r\" %>s %b" common\n} }
|
||||
it { is_expected.to contain_file("/etc/apache2/apache2.conf").with_content %r{^LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%\{Referer\}i\" \"%\{User-agent\}i\"" combined\n} }
|
||||
it { is_expected.to contain_file("/etc/apache2/apache2.conf").without_content %r{^LogFormat "%h %l %u %t \"%r\" %>s %b \"%\{Referer\}i\" \"%\{User-agent\}i\"" combined\n} }
|
||||
end
|
||||
end
|
||||
|
||||
context "8" do
|
||||
let :facts do
|
||||
super().merge({
|
||||
:lsbdistcodename => 'jessie',
|
||||
:operatingsystemrelease => '8'
|
||||
})
|
||||
end
|
||||
it { is_expected.to contain_file("/var/www/html").with(
|
||||
'ensure' => 'directory'
|
||||
)
|
||||
}
|
||||
end
|
||||
context "on Ubuntu" do
|
||||
let :facts do
|
||||
super().merge({
|
||||
:operatingsystem => 'Ubuntu'
|
||||
})
|
||||
end
|
||||
|
||||
context "14.04" do
|
||||
let :facts do
|
||||
super().merge({
|
||||
:lsbdistrelease => '14.04',
|
||||
:operatingsystemrelease => '14.04'
|
||||
})
|
||||
end
|
||||
it { is_expected.to contain_file("/var/www/html").with(
|
||||
'ensure' => 'directory'
|
||||
)
|
||||
}
|
||||
end
|
||||
context "13.10" do
|
||||
let :facts do
|
||||
super().merge({
|
||||
:lsbdistrelease => '13.10',
|
||||
:operatingsystemrelease => '13.10'
|
||||
})
|
||||
end
|
||||
it { is_expected.to contain_class('apache').with_apache_version('2.4') }
|
||||
end
|
||||
context "12.04" do
|
||||
let :facts do
|
||||
super().merge({
|
||||
:lsbdistrelease => '12.04',
|
||||
:operatingsystemrelease => '12.04'
|
||||
})
|
||||
end
|
||||
it { is_expected.to contain_class('apache').with_apache_version('2.2') }
|
||||
end
|
||||
context "13.04" do
|
||||
let :facts do
|
||||
super().merge({
|
||||
:lsbdistrelease => '13.04',
|
||||
:operatingsystemrelease => '13.04'
|
||||
})
|
||||
end
|
||||
it { is_expected.to contain_class('apache').with_apache_version('2.2') }
|
||||
end
|
||||
end
|
||||
end
|
||||
context "on a RedHat 5 OS" do
|
||||
let :facts do
|
||||
{
|
||||
:id => 'root',
|
||||
:kernel => 'Linux',
|
||||
:osfamily => 'RedHat',
|
||||
:operatingsystem => 'RedHat',
|
||||
:operatingsystemrelease => '5',
|
||||
:concat_basedir => '/dne',
|
||||
:path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
|
||||
:is_pe => false,
|
||||
}
|
||||
end
|
||||
it { is_expected.to contain_class("apache::params") }
|
||||
it { is_expected.to contain_package("httpd").with(
|
||||
'notify' => 'Class[Apache::Service]',
|
||||
'ensure' => 'installed'
|
||||
)
|
||||
}
|
||||
it { is_expected.to contain_user("apache") }
|
||||
it { is_expected.to contain_group("apache") }
|
||||
it { is_expected.to contain_class("apache::service") }
|
||||
it { is_expected.to contain_file("/var/www/html").with(
|
||||
'ensure' => 'directory'
|
||||
)
|
||||
}
|
||||
it { is_expected.to contain_file("/etc/httpd/conf.d").with(
|
||||
'ensure' => 'directory',
|
||||
'recurse' => 'true',
|
||||
'purge' => 'true',
|
||||
'notify' => 'Class[Apache::Service]',
|
||||
'require' => 'Package[httpd]'
|
||||
)
|
||||
}
|
||||
it { is_expected.to contain_concat("/etc/httpd/conf/ports.conf").with(
|
||||
'owner' => 'root',
|
||||
'group' => 'root',
|
||||
'mode' => '0644',
|
||||
'notify' => 'Class[Apache::Service]'
|
||||
)
|
||||
}
|
||||
describe "Alternate confd/mod/vhosts directory" do
|
||||
let :params do
|
||||
{
|
||||
:vhost_dir => '/etc/httpd/site.d',
|
||||
:confd_dir => '/etc/httpd/conf.d',
|
||||
:mod_dir => '/etc/httpd/mod.d',
|
||||
}
|
||||
end
|
||||
|
||||
['mod.d','site.d','conf.d'].each do |dir|
|
||||
it { is_expected.to contain_file("/etc/httpd/#{dir}").with(
|
||||
'ensure' => 'directory',
|
||||
'recurse' => 'true',
|
||||
'purge' => 'true',
|
||||
'notify' => 'Class[Apache::Service]',
|
||||
'require' => 'Package[httpd]'
|
||||
) }
|
||||
end
|
||||
|
||||
# Assert that load files are placed for these mods, but no conf file.
|
||||
[
|
||||
'auth_basic',
|
||||
'authn_file',
|
||||
'authz_default',
|
||||
'authz_groupfile',
|
||||
'authz_host',
|
||||
'authz_user',
|
||||
'dav',
|
||||
'env',
|
||||
].each do |modname|
|
||||
it { is_expected.to contain_file("#{modname}.load").with_path(
|
||||
"/etc/httpd/mod.d/#{modname}.load"
|
||||
) }
|
||||
it { is_expected.not_to contain_file("#{modname}.conf").with_path(
|
||||
"/etc/httpd/mod.d/#{modname}.conf"
|
||||
) }
|
||||
end
|
||||
|
||||
# Assert that both load files and conf files are placed for these mods
|
||||
[
|
||||
'alias',
|
||||
'autoindex',
|
||||
'dav_fs',
|
||||
'deflate',
|
||||
'dir',
|
||||
'mime',
|
||||
'negotiation',
|
||||
'setenvif',
|
||||
].each do |modname|
|
||||
it { is_expected.to contain_file("#{modname}.load").with_path(
|
||||
"/etc/httpd/mod.d/#{modname}.load"
|
||||
) }
|
||||
it { is_expected.to contain_file("#{modname}.conf").with_path(
|
||||
"/etc/httpd/mod.d/#{modname}.conf"
|
||||
) }
|
||||
end
|
||||
|
||||
context "with Apache version < 2.4" do
|
||||
let :params do
|
||||
{ :apache_version => '2.2' }
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").with_content %r{^Include "/etc/httpd/conf\.d/\*\.conf"$} }
|
||||
end
|
||||
|
||||
context "with Apache version >= 2.4" do
|
||||
let :params do
|
||||
{
|
||||
:apache_version => '2.4',
|
||||
:use_optional_includes => true
|
||||
}
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").with_content %r{^IncludeOptional "/etc/httpd/conf\.d/\*\.conf"$} }
|
||||
end
|
||||
|
||||
context "with Apache version < 2.4" do
|
||||
let :params do
|
||||
{
|
||||
:apache_version => '2.2',
|
||||
:rewrite_lock => '/var/lock/subsys/rewrite-lock'
|
||||
}
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").with_content %r{^RewriteLock /var/lock/subsys/rewrite-lock$} }
|
||||
end
|
||||
|
||||
context "with Apache version < 2.4" do
|
||||
let :params do
|
||||
{
|
||||
:apache_version => '2.2'
|
||||
}
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").without_content %r{^RewriteLock [.]*$} }
|
||||
end
|
||||
|
||||
context "with Apache version >= 2.4" do
|
||||
let :params do
|
||||
{
|
||||
:apache_version => '2.4',
|
||||
:rewrite_lock => '/var/lock/subsys/rewrite-lock'
|
||||
}
|
||||
end
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").without_content %r{^RewriteLock [.]*$} }
|
||||
end
|
||||
|
||||
context "when specifying slash encoding behaviour" do
|
||||
let :params do
|
||||
{ :allow_encoded_slashes => 'nodecode' }
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").with_content %r{^AllowEncodedSlashes nodecode$} }
|
||||
end
|
||||
|
||||
context "when specifying default character set" do
|
||||
let :params do
|
||||
{ :default_charset => 'none' }
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").with_content %r{^AddDefaultCharset none$} }
|
||||
end
|
||||
|
||||
context "with Apache version < 2.4" do
|
||||
let :params do
|
||||
{
|
||||
:apache_version => '2.2',
|
||||
}
|
||||
end
|
||||
|
||||
context "when default_type => 'none'" do
|
||||
let :params do
|
||||
{ :default_type => 'none' }
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").with_content %r{^DefaultType none$} }
|
||||
end
|
||||
context "when default_type => 'text/plain'" do
|
||||
let :params do
|
||||
{ :default_type => 'text/plain' }
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").with_content %r{^DefaultType text/plain$} }
|
||||
end
|
||||
end
|
||||
|
||||
context "with Apache version >= 2.4" do
|
||||
let :params do
|
||||
{
|
||||
:apache_version => '2.4',
|
||||
}
|
||||
end
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").without_content %r{^DefaultType [.]*$} }
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").with_content %r{^Include "/etc/httpd/site\.d/\*"$} }
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").with_content %r{^Include "/etc/httpd/mod\.d/\*\.conf"$} }
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").with_content %r{^Include "/etc/httpd/mod\.d/\*\.load"$} }
|
||||
end
|
||||
|
||||
describe "Alternate conf directory" do
|
||||
let :params do
|
||||
{ :conf_dir => '/opt/rh/root/etc/httpd/conf' }
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/opt/rh/root/etc/httpd/conf/httpd.conf").with(
|
||||
'ensure' => 'file',
|
||||
'notify' => 'Class[Apache::Service]',
|
||||
'require' => ['Package[httpd]', 'Concat[/etc/httpd/conf/ports.conf]'],
|
||||
) }
|
||||
end
|
||||
|
||||
describe "Alternate conf.d directory" do
|
||||
let :params do
|
||||
{ :confd_dir => '/etc/httpd/special_conf.d' }
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file("/etc/httpd/special_conf.d").with(
|
||||
'ensure' => 'directory',
|
||||
'recurse' => 'true',
|
||||
'purge' => 'true',
|
||||
'notify' => 'Class[Apache::Service]',
|
||||
'require' => 'Package[httpd]'
|
||||
) }
|
||||
end
|
||||
|
||||
describe "Alternate mpm_modules" do
|
||||
context "when declaring mpm_module is false" do
|
||||
let :params do
|
||||
{ :mpm_module => false }
|
||||
end
|
||||
it 'should not declare mpm modules' do
|
||||
is_expected.not_to contain_class('apache::mod::event')
|
||||
is_expected.not_to contain_class('apache::mod::itk')
|
||||
is_expected.not_to contain_class('apache::mod::peruser')
|
||||
is_expected.not_to contain_class('apache::mod::prefork')
|
||||
is_expected.not_to contain_class('apache::mod::worker')
|
||||
end
|
||||
end
|
||||
context "when declaring mpm_module => prefork" do
|
||||
let :params do
|
||||
{ :mpm_module => 'prefork' }
|
||||
end
|
||||
it { is_expected.to contain_class('apache::mod::prefork') }
|
||||
it { is_expected.not_to contain_class('apache::mod::event') }
|
||||
it { is_expected.not_to contain_class('apache::mod::itk') }
|
||||
it { is_expected.not_to contain_class('apache::mod::peruser') }
|
||||
it { is_expected.not_to contain_class('apache::mod::worker') }
|
||||
end
|
||||
context "when declaring mpm_module => worker" do
|
||||
let :params do
|
||||
{ :mpm_module => 'worker' }
|
||||
end
|
||||
it { is_expected.to contain_class('apache::mod::worker') }
|
||||
it { is_expected.not_to contain_class('apache::mod::event') }
|
||||
it { is_expected.not_to contain_class('apache::mod::itk') }
|
||||
it { is_expected.not_to contain_class('apache::mod::peruser') }
|
||||
it { is_expected.not_to contain_class('apache::mod::prefork') }
|
||||
end
|
||||
context "when declaring mpm_module => breakme" do
|
||||
let :params do
|
||||
{ :mpm_module => 'breakme' }
|
||||
end
|
||||
it { expect { catalogue }.to raise_error Puppet::Error, /does not match/ }
|
||||
end
|
||||
end
|
||||
|
||||
describe "different templates for httpd.conf" do
|
||||
context "with default" do
|
||||
let :params do
|
||||
{ :conf_template => 'apache/httpd.conf.erb' }
|
||||
end
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").with_content %r{^# Security\n} }
|
||||
end
|
||||
context "with non-default" do
|
||||
let :params do
|
||||
{ :conf_template => 'site_apache/fake.conf.erb' }
|
||||
end
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").with_content %r{^Fake template for rspec.$} }
|
||||
end
|
||||
end
|
||||
|
||||
describe "default mods" do
|
||||
context "without" do
|
||||
let :params do
|
||||
{ :default_mods => false }
|
||||
end
|
||||
|
||||
it { is_expected.to contain_apache__mod('authz_host') }
|
||||
it { is_expected.not_to contain_apache__mod('env') }
|
||||
end
|
||||
context "custom" do
|
||||
let :params do
|
||||
{ :default_mods => [
|
||||
'info',
|
||||
'alias',
|
||||
'mime',
|
||||
'env',
|
||||
'setenv',
|
||||
'expires',
|
||||
]}
|
||||
end
|
||||
|
||||
it { is_expected.to contain_apache__mod('authz_host') }
|
||||
it { is_expected.to contain_apache__mod('env') }
|
||||
it { is_expected.to contain_class('apache::mod::info') }
|
||||
it { is_expected.to contain_class('apache::mod::mime') }
|
||||
end
|
||||
end
|
||||
describe "Don't create user resource" do
|
||||
context "when parameter manage_user is false" do
|
||||
let :params do
|
||||
{ :manage_user => false }
|
||||
end
|
||||
|
||||
it { is_expected.not_to contain_user('apache') }
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").with_content %r{^User apache\n} }
|
||||
end
|
||||
end
|
||||
describe "Don't create group resource" do
|
||||
context "when parameter manage_group is false" do
|
||||
let :params do
|
||||
{ :manage_group => false }
|
||||
end
|
||||
|
||||
it { is_expected.not_to contain_group('apache') }
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").with_content %r{^Group apache\n} }
|
||||
|
||||
end
|
||||
end
|
||||
describe "sendfile" do
|
||||
context "with invalid value" do
|
||||
let :params do
|
||||
{ :sendfile => 'foo' }
|
||||
end
|
||||
it "should fail" do
|
||||
expect do
|
||||
catalogue
|
||||
end.to raise_error(Puppet::Error, /"foo" does not match/)
|
||||
end
|
||||
end
|
||||
context "On" do
|
||||
let :params do
|
||||
{ :sendfile => 'On' }
|
||||
end
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").with_content %r{^EnableSendfile On\n} }
|
||||
end
|
||||
context "Off" do
|
||||
let :params do
|
||||
{ :sendfile => 'Off' }
|
||||
end
|
||||
it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").with_content %r{^EnableSendfile Off\n} }
|
||||
end
|
||||
end
|
||||
context "on Fedora" do
|
||||
let :facts do
|
||||
super().merge({
|
||||
:operatingsystem => 'Fedora'
|
||||
})
|
||||
end
|
||||
|
||||
context "21" do
|
||||
let :facts do
|
||||
super().merge({
|
||||
:lsbdistrelease => '21',
|
||||
:operatingsystemrelease => '21'
|
||||
})
|
||||
end
|
||||
it { is_expected.to contain_class('apache').with_apache_version('2.4') }
|
||||
end
|
||||
context "Rawhide" do
|
||||
let :facts do
|
||||
super().merge({
|
||||
:lsbdistrelease => 'Rawhide',
|
||||
:operatingsystemrelease => 'Rawhide'
|
||||
})
|
||||
end
|
||||
it { is_expected.to contain_class('apache').with_apache_version('2.4') }
|
||||
end
|
||||
# kinda obsolete
|
||||
context "17" do
|
||||
let :facts do
|
||||
super().merge({
|
||||
:lsbdistrelease => '17',
|
||||
:operatingsystemrelease => '17'
|
||||
})
|
||||
end
|
||||
it { is_expected.to contain_class('apache').with_apache_version('2.2') }
|
||||
end
|
||||
end
|
||||
end
|
||||
context "on a FreeBSD OS" do
|
||||
let :facts do
|
||||
{
|
||||
:id => 'root',
|
||||
:kernel => 'FreeBSD',
|
||||
:osfamily => 'FreeBSD',
|
||||
:operatingsystem => 'FreeBSD',
|
||||
:operatingsystemrelease => '10',
|
||||
:concat_basedir => '/dne',
|
||||
:path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
|
||||
:is_pe => false,
|
||||
}
|
||||
end
|
||||
it { is_expected.to contain_class("apache::params") }
|
||||
it { is_expected.to contain_class("apache::package").with({'ensure' => 'present'}) }
|
||||
it { is_expected.to contain_user("www") }
|
||||
it { is_expected.to contain_group("www") }
|
||||
it { is_expected.to contain_class("apache::service") }
|
||||
it { is_expected.to contain_file("/usr/local/www/apache24/data").with(
|
||||
'ensure' => 'directory'
|
||||
)
|
||||
}
|
||||
it { is_expected.to contain_file("/usr/local/etc/apache24/Vhosts").with(
|
||||
'ensure' => 'directory',
|
||||
'recurse' => 'true',
|
||||
'purge' => 'true',
|
||||
'notify' => 'Class[Apache::Service]',
|
||||
'require' => 'Package[httpd]'
|
||||
) }
|
||||
it { is_expected.to contain_file("/usr/local/etc/apache24/Modules").with(
|
||||
'ensure' => 'directory',
|
||||
'recurse' => 'true',
|
||||
'purge' => 'true',
|
||||
'notify' => 'Class[Apache::Service]',
|
||||
'require' => 'Package[httpd]'
|
||||
) }
|
||||
it { is_expected.to contain_concat("/usr/local/etc/apache24/ports.conf").with(
|
||||
'owner' => 'root',
|
||||
'group' => 'wheel',
|
||||
'mode' => '0644',
|
||||
'notify' => 'Class[Apache::Service]'
|
||||
) }
|
||||
# Assert that load files are placed for these mods, but no conf file.
|
||||
[
|
||||
'auth_basic',
|
||||
'authn_core',
|
||||
'authn_file',
|
||||
'authz_groupfile',
|
||||
'authz_host',
|
||||
'authz_user',
|
||||
'dav',
|
||||
'env'
|
||||
].each do |modname|
|
||||
it { is_expected.to contain_file("#{modname}.load").with(
|
||||
'path' => "/usr/local/etc/apache24/Modules/#{modname}.load",
|
||||
'ensure' => 'file'
|
||||
) }
|
||||
it { is_expected.not_to contain_file("#{modname}.conf") }
|
||||
end
|
||||
|
||||
# Assert that both load files and conf files are placed for these mods
|
||||
[
|
||||
'alias',
|
||||
'autoindex',
|
||||
'dav_fs',
|
||||
'deflate',
|
||||
'dir',
|
||||
'mime',
|
||||
'negotiation',
|
||||
'setenvif',
|
||||
].each do |modname|
|
||||
it { is_expected.to contain_file("#{modname}.load").with(
|
||||
'path' => "/usr/local/etc/apache24/Modules/#{modname}.load",
|
||||
'ensure' => 'file'
|
||||
) }
|
||||
it { is_expected.to contain_file("#{modname}.conf").with(
|
||||
'path' => "/usr/local/etc/apache24/Modules/#{modname}.conf",
|
||||
'ensure' => 'file'
|
||||
) }
|
||||
end
|
||||
end
|
||||
context "on a Gentoo OS" do
|
||||
let :facts do
|
||||
{
|
||||
:id => 'root',
|
||||
:kernel => 'Linux',
|
||||
:osfamily => 'Gentoo',
|
||||
:operatingsystem => 'Gentoo',
|
||||
:operatingsystemrelease => '3.16.1-gentoo',
|
||||
:concat_basedir => '/dne',
|
||||
:path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin',
|
||||
:is_pe => false,
|
||||
}
|
||||
end
|
||||
it { is_expected.to contain_class("apache::params") }
|
||||
it { is_expected.to contain_user("apache") }
|
||||
it { is_expected.to contain_group("apache") }
|
||||
it { is_expected.to contain_class("apache::service") }
|
||||
it { is_expected.to contain_file("/var/www/localhost/htdocs").with(
|
||||
'ensure' => 'directory'
|
||||
)
|
||||
}
|
||||
it { is_expected.to contain_file("/etc/apache2/vhosts.d").with(
|
||||
'ensure' => 'directory',
|
||||
'recurse' => 'true',
|
||||
'purge' => 'true',
|
||||
'notify' => 'Class[Apache::Service]',
|
||||
'require' => 'Package[httpd]'
|
||||
) }
|
||||
it { is_expected.to contain_file("/etc/apache2/modules.d").with(
|
||||
'ensure' => 'directory',
|
||||
'recurse' => 'true',
|
||||
'purge' => 'true',
|
||||
'notify' => 'Class[Apache::Service]',
|
||||
'require' => 'Package[httpd]'
|
||||
) }
|
||||
it { is_expected.to contain_concat("/etc/apache2/ports.conf").with(
|
||||
'owner' => 'root',
|
||||
'group' => 'wheel',
|
||||
'mode' => '0644',
|
||||
'notify' => 'Class[Apache::Service]'
|
||||
) }
|
||||
end
|
||||
context 'on all OSes' do
|
||||
let :facts do
|
||||
{
|
||||
:id => 'root',
|
||||
:kernel => 'Linux',
|
||||
:osfamily => 'RedHat',
|
||||
:operatingsystem => 'RedHat',
|
||||
:operatingsystemrelease => '6',
|
||||
:concat_basedir => '/dne',
|
||||
:path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
|
||||
:is_pe => false,
|
||||
}
|
||||
end
|
||||
context 'with a custom apache_name parameter' do
|
||||
let :params do {
|
||||
:apache_name => 'httpd24-httpd'
|
||||
}
|
||||
end
|
||||
it { is_expected.to contain_package("httpd").with(
|
||||
'notify' => 'Class[Apache::Service]',
|
||||
'ensure' => 'installed',
|
||||
'name' => 'httpd24-httpd'
|
||||
)
|
||||
}
|
||||
end
|
||||
context 'with a custom file_mode parameter' do
|
||||
let :params do {
|
||||
:file_mode => '0640'
|
||||
}
|
||||
end
|
||||
it { is_expected.to contain_concat("/etc/httpd/conf/ports.conf").with(
|
||||
'mode' => '0640',
|
||||
)
|
||||
}
|
||||
end
|
||||
context 'default vhost defaults' do
|
||||
it { is_expected.to contain_apache__vhost('default').with_ensure('present') }
|
||||
it { is_expected.to contain_apache__vhost('default-ssl').with_ensure('absent') }
|
||||
end
|
||||
context 'without default non-ssl vhost' do
|
||||
let :params do {
|
||||
:default_vhost => false
|
||||
}
|
||||
end
|
||||
it { is_expected.to contain_apache__vhost('default').with_ensure('absent') }
|
||||
it { is_expected.not_to contain_file('/var/www/html') }
|
||||
end
|
||||
context 'with default ssl vhost' do
|
||||
let :params do {
|
||||
:default_ssl_vhost => true
|
||||
}
|
||||
end
|
||||
it { is_expected.to contain_apache__vhost('default-ssl').with_ensure('present') }
|
||||
it { is_expected.to contain_file('/var/www/html') }
|
||||
end
|
||||
end
|
||||
context 'with unsupported osfamily' do
|
||||
let :facts do
|
||||
{ :osfamily => 'Darwin',
|
||||
:operatingsystemrelease => '13.1.0',
|
||||
:concat_basedir => '/dne',
|
||||
:is_pe => false,
|
||||
}
|
||||
end
|
||||
|
||||
it do
|
||||
expect {
|
||||
catalogue
|
||||
}.to raise_error(Puppet::Error, /Unsupported osfamily/)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,23 @@
|
||||
require 'puppetlabs_spec_helper/module_spec_helper'
|
||||
|
||||
RSpec.configure do |c|
|
||||
c.before :each do
|
||||
# Ensure that we don't accidentally cache facts and environment
|
||||
# between test cases.
|
||||
Facter::Util::Loader.any_instance.stubs(:load_all)
|
||||
Facter.clear
|
||||
Facter.clear_messages
|
||||
|
||||
# Store any environment variables away to be restored later
|
||||
@old_env = {}
|
||||
ENV.each_key {|k| @old_env[k] = ENV[k]}
|
||||
|
||||
if ENV['STRICT_VARIABLES'] == 'yes'
|
||||
Puppet.settings[:strict_variables]=true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
shared_examples :compile, :compile => true do
|
||||
it { should compile.with_all_deps }
|
||||
end
|
||||
@@ -1,18 +0,0 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
puppetversion = ENV['PUPPET_VERSION']
|
||||
|
||||
is_ruby18 = RUBY_VERSION.start_with? '1.8'
|
||||
|
||||
if is_ruby18
|
||||
gem 'rspec', "~> 3.1.0", :require => false
|
||||
end
|
||||
gem 'puppet', puppetversion, :require => false
|
||||
gem 'puppet-lint'
|
||||
gem 'puppetlabs_spec_helper', '>= 0.1.0'
|
||||
gem 'rspec-puppet'
|
||||
gem 'metadata-json-lint'
|
||||
|
||||
group :development do
|
||||
gem 'puppet-blacksmith'
|
||||
end
|
||||
@@ -1,236 +0,0 @@
|
||||
# Puppet module: apache
|
||||
|
||||
This is a Puppet apache module from the second generation of Example42 Puppet Modules.
|
||||
|
||||
Made by Alessandro Franceschi / Lab42
|
||||
|
||||
Official site: http://www.example42.com
|
||||
|
||||
Official git repository: http://github.com/example42/puppet-apache
|
||||
|
||||
Released under the terms of Apache 2 License.
|
||||
|
||||
This module requires functions provided by the Example42 Puppi module.
|
||||
|
||||
For detailed info about the logic and usage patterns of Example42 modules read README.usage on Example42 main modules set.
|
||||
|
||||
## USAGE - Module specific usage
|
||||
|
||||
* Install apache with a custom httpd.conf template and some virtual hosts
|
||||
|
||||
class { 'apache':
|
||||
template => 'example42/apache/httpd.conf.erb',
|
||||
}
|
||||
|
||||
apache::vhost { 'mysite':
|
||||
docroot => '/path/to/docroot',
|
||||
template => 'example42/apache/vhost/mysite.com.erb',
|
||||
}
|
||||
|
||||
|
||||
* Install mod ssl
|
||||
|
||||
include apache::ssl
|
||||
|
||||
|
||||
* Manage basic auth users (Here user joe is created with the $crypt_password on the defined htpasswd_file
|
||||
|
||||
apache::htpasswd { 'joe':
|
||||
crypt_password => 'B5dPQYYjf.jjA',
|
||||
htpasswd_file => '/etc/httpd/users.passwd',
|
||||
}
|
||||
|
||||
|
||||
* Manage custom configuration files (created in conf.d, source or content can be defined)
|
||||
|
||||
apache::dotconf { 'trac':
|
||||
content => template("site/trac/apache.conf.erb")
|
||||
}
|
||||
|
||||
|
||||
* Add other listening ports (a relevant NameVirtualHost directive is automatically created)
|
||||
|
||||
apache::listen { '8080': }
|
||||
|
||||
|
||||
* Add other listening ports without creating a relevant NameVirtualHost directive
|
||||
|
||||
apache::listen { '8080':
|
||||
$namevirtualhost = false,
|
||||
}
|
||||
|
||||
|
||||
* Add an apache module and manage its configuraton
|
||||
|
||||
apache::module { 'proxy':
|
||||
templatefile => 'site/apache/module/proxy.conf.erb',
|
||||
}
|
||||
|
||||
|
||||
* Install mod passenger
|
||||
|
||||
include apache::passenger
|
||||
|
||||
|
||||
## USAGE - Basic management
|
||||
|
||||
* Install apache with default settings
|
||||
|
||||
class { "apache": }
|
||||
|
||||
* Disable apache service.
|
||||
|
||||
class { "apache":
|
||||
disable => true
|
||||
}
|
||||
|
||||
* Disable apache service at boot time, but don't stop if is running.
|
||||
|
||||
class { "apache":
|
||||
disableboot => true
|
||||
}
|
||||
|
||||
* Remove apache package
|
||||
|
||||
class { "apache":
|
||||
absent => true
|
||||
}
|
||||
|
||||
* Enable auditing without making changes on existing apache configuration files
|
||||
|
||||
class { "apache":
|
||||
audit_only => true
|
||||
}
|
||||
|
||||
* Install apache with a specific version
|
||||
|
||||
class { "apache":
|
||||
version => '2.2.22'
|
||||
}
|
||||
|
||||
|
||||
## USAGE - Default server management
|
||||
|
||||
* Simple way to manage default apache configuration
|
||||
|
||||
apache::vhost { 'default':
|
||||
docroot => '/var/www/document_root',
|
||||
server_name => false,
|
||||
priority => '',
|
||||
template => 'apache/virtualhost/vhost.conf.erb',
|
||||
}
|
||||
|
||||
* Using a source file to create the vhost
|
||||
|
||||
apache::vhost { 'default':
|
||||
source => 'puppet:///files/web/default.conf',
|
||||
template => '',
|
||||
}
|
||||
|
||||
|
||||
## USAGE - Overrides and Customizations
|
||||
|
||||
* Use custom sources for main config file
|
||||
|
||||
class { "apache":
|
||||
source => [ "puppet:///modules/lab42/apache/apache.conf-${hostname}" , "puppet:///modules/lab42/apache/apache.conf" ],
|
||||
}
|
||||
|
||||
|
||||
* Use custom source directory for the whole configuration dir
|
||||
|
||||
class { "apache":
|
||||
source_dir => "puppet:///modules/lab42/apache/conf/",
|
||||
source_dir_purge => false, # Set to true to purge any existing file not present in $source_dir
|
||||
}
|
||||
|
||||
* Use custom template for main config file
|
||||
|
||||
class { "apache":
|
||||
template => "example42/apache/apache.conf.erb",
|
||||
}
|
||||
|
||||
* Define custom options that can be used in a custom template without the
|
||||
need to add parameters to the apache class
|
||||
|
||||
class { "apache":
|
||||
template => "example42/apache/apache.conf.erb",
|
||||
options => {
|
||||
'LogLevel' => 'INFO',
|
||||
'UsePAM' => 'yes',
|
||||
},
|
||||
}
|
||||
|
||||
* Automaticallly include a custom subclass
|
||||
|
||||
class { "apache:"
|
||||
my_class => 'apache::example42',
|
||||
}
|
||||
|
||||
## USAGE - Hiera Support
|
||||
* Manage apache configuration using Hiera
|
||||
|
||||
```yaml
|
||||
apache::template: 'modules/apache/apache2.conf.erb'
|
||||
apache::options:
|
||||
timeout: '300'
|
||||
keepalive: 'On'
|
||||
maxkeepaliverequests: '100'
|
||||
keepalivetimeout: '5'
|
||||
```
|
||||
|
||||
* Defining Apache resources using Hiera
|
||||
|
||||
```yaml
|
||||
apache::virtualhost_hash:
|
||||
'mysite.com':
|
||||
documentroot: '/var/www/mysite.com'
|
||||
aliases: 'www.mysite.com'
|
||||
apache::htpasswd_hash:
|
||||
'myuser':
|
||||
crypt_password: 'password1'
|
||||
htpasswd_file: '/etc/apache2/users.passwd'
|
||||
apache::listen_hash:
|
||||
'8080':
|
||||
namevirtualhost: '*'
|
||||
apache::module_hash:
|
||||
'status':
|
||||
ensure: present
|
||||
```
|
||||
|
||||
## USAGE - Example42 extensions management
|
||||
* Activate puppi (recommended, but disabled by default)
|
||||
Note that this option requires the usage of Example42 puppi module
|
||||
|
||||
class { "apache":
|
||||
puppi => true,
|
||||
}
|
||||
|
||||
* Activate puppi and use a custom puppi_helper template (to be provided separately with
|
||||
a puppi::helper define ) to customize the output of puppi commands
|
||||
|
||||
class { "apache":
|
||||
puppi => true,
|
||||
puppi_helper => "myhelper",
|
||||
}
|
||||
|
||||
* Activate automatic monitoring (recommended, but disabled by default)
|
||||
This option requires the usage of Example42 monitor and relevant monitor tools modules
|
||||
|
||||
class { "apache":
|
||||
monitor => true,
|
||||
monitor_tool => [ "nagios" , "monit" , "munin" ],
|
||||
}
|
||||
|
||||
* Activate automatic firewalling
|
||||
This option requires the usage of Example42 firewall and relevant firewall tools modules
|
||||
|
||||
class { "apache":
|
||||
firewall => true,
|
||||
firewall_tool => "iptables",
|
||||
firewall_src => "10.42.0.0/24",
|
||||
firewall_dst => "$ipaddress_eth0",
|
||||
}
|
||||
|
||||
|
||||
[](https://travis-ci.org/example42/puppet-apache)
|
||||
@@ -1,12 +0,0 @@
|
||||
require 'rubygems'
|
||||
require 'puppetlabs_spec_helper/rake_tasks'
|
||||
require 'puppet-lint'
|
||||
PuppetLint.configuration.send("disable_80chars")
|
||||
PuppetLint.configuration.send('disable_class_parameter_defaults')
|
||||
|
||||
# Blacksmith
|
||||
begin
|
||||
require 'puppet_blacksmith/rake_tasks'
|
||||
rescue LoadError
|
||||
puts "Blacksmith needed only to push to the Forge"
|
||||
end
|
||||
@@ -1,29 +0,0 @@
|
||||
{
|
||||
"Gemfile": "08b4b449407602e452a4d939c92d8fd2",
|
||||
"LICENSE": "a300b604c66de62cf6e923cca89c9d83",
|
||||
"README.md": "eda04faa84f9fdd551768ae1653ffb94",
|
||||
"Rakefile": "beb946c8ed36b603d578cc9ca17ca85d",
|
||||
"manifests/dotconf.pp": "575cab47757dcf509f1e1e8ac11b644b",
|
||||
"manifests/htpasswd.pp": "b61c60bf0ff48b8fae5ae74370eec18e",
|
||||
"manifests/init.pp": "3f856f760da332ae66429de7b2e3ac1c",
|
||||
"manifests/listen.pp": "b2e74f8aa59829c0644b836a8d0e4c2d",
|
||||
"manifests/module.pp": "8cd0fcdb5495ac1df21d8d4bf14f2782",
|
||||
"manifests/params.pp": "b708a3a8faa792f25fa36232982c091d",
|
||||
"manifests/passenger.pp": "471b18ed8769eb16b1fbeb955e3d28c9",
|
||||
"manifests/redhat.pp": "7bf95178474b51eb75a37931e4ec4d2f",
|
||||
"manifests/spec.pp": "27b6dcd653caef771ac053e2df3260e9",
|
||||
"manifests/ssl.pp": "7a2feb658749e0cb8414893da77565f1",
|
||||
"manifests/vhost.pp": "cead2da83f4059f8236c9acbfc6b97ec",
|
||||
"manifests/virtualhost.pp": "caba8b56341d8a765f5ad136ddaa45fe",
|
||||
"metadata.json": "b3fa4d5d439ae3641593797312250da0",
|
||||
"spec/classes/apache_spec.rb": "8b9164190257524c21ffe86c08678dfd",
|
||||
"spec/defines/apache_virtualhost_spec.rb": "ae7bd850a64d89233675385c1f605ab8",
|
||||
"spec/spec_helper.rb": "0db89c9a486df193c0e40095422e19dc",
|
||||
"templates/00-NameVirtualHost.conf.erb": "a410a82e9c65d36c7537bfb36a7a3041",
|
||||
"templates/listen.conf.erb": "47fe4e9a45f066ac5bd9cbbfe1fd0bd2",
|
||||
"templates/module/proxy.conf.erb": "2eccd5a67ff4070bdd6ed8cd98b4bbda",
|
||||
"templates/spec.erb": "055d4f22a02a677753cf922108b6e50c",
|
||||
"templates/virtualhost/vhost.conf.erb": "4e6d66668b21c1cf28c11f6fcf536f18",
|
||||
"templates/virtualhost/virtualhost.conf.erb": "a6f72c70e83bec34a85071b9bbef3b3d",
|
||||
"tests/vhost.pp": "a2ee77862630ba4f7e0fdfb10a8dca79"
|
||||
}
|
||||
@@ -1,528 +0,0 @@
|
||||
|
||||
# = Class: apache
|
||||
#
|
||||
# This is the main apache class
|
||||
#
|
||||
#
|
||||
# == Parameters
|
||||
#
|
||||
# Standard class parameters
|
||||
# Define the general class behaviour and customizations
|
||||
#
|
||||
# [*my_class*]
|
||||
# Name of a custom class to autoload to manage module's customizations
|
||||
# If defined, apache class will automatically "include $my_class"
|
||||
# Can be defined also by the (top scope) variable $apache_myclass
|
||||
#
|
||||
# [*source*]
|
||||
# Sets the content of source parameter for main configuration file
|
||||
# If defined, apache main config file will have the param: source => $source
|
||||
# Can be defined also by the (top scope) variable $apache_source
|
||||
#
|
||||
# [*source_dir*]
|
||||
# If defined, the whole apache configuration directory content is retrieved
|
||||
# recursively from the specified source
|
||||
# (source => $source_dir , recurse => true)
|
||||
# Can be defined also by the (top scope) variable $apache_source_dir
|
||||
#
|
||||
# [*source_dir_purge*]
|
||||
# If set to true (default false) the existing configuration directory is
|
||||
# mirrored with the content retrieved from source_dir
|
||||
# (source => $source_dir , recurse => true , purge => true)
|
||||
# Can be defined also by the (top scope) variable $apache_source_dir_purge
|
||||
#
|
||||
# [*template*]
|
||||
# Sets the path to the template to use as content for main configuration file
|
||||
# If defined, apache main config file has: content => content("$template")
|
||||
# Note source and template parameters are mutually exclusive: don't use both
|
||||
# Can be defined also by the (top scope) variable $apache_template
|
||||
#
|
||||
# [*options*]
|
||||
# An hash of custom options to be used in templates for arbitrary settings.
|
||||
# Can be defined also by the (top scope) variable $apache_options
|
||||
#
|
||||
# [*service_autorestart*]
|
||||
# Automatically restarts the apache service when there is a change in
|
||||
# configuration files. Default: true, Set to false if you don't want to
|
||||
# automatically restart the service.
|
||||
#
|
||||
# [*service_requires*]
|
||||
# Overwrites the service dependencies, which are by default: Package['apache'].
|
||||
# Set this parameter to a custom set of requirements, if you want to let the
|
||||
# Apache service depend on more than just the package dependency.
|
||||
#
|
||||
# [*absent*]
|
||||
# Set to 'true' to remove package(s) installed by module
|
||||
# Can be defined also by the (top scope) variable $apache_absent
|
||||
#
|
||||
# [*disable*]
|
||||
# Set to 'true' to disable service(s) managed by module
|
||||
# Can be defined also by the (top scope) variable $apache_disable
|
||||
#
|
||||
# [*disableboot*]
|
||||
# Set to 'true' to disable service(s) at boot, without checks if it's running
|
||||
# Use this when the service is managed by a tool like a cluster software
|
||||
# Can be defined also by the (top scope) variable $apache_disableboot
|
||||
#
|
||||
# [*monitor*]
|
||||
# Set to 'true' to enable monitoring of the services provided by the module
|
||||
# Can be defined also by the (top scope) variables $apache_monitor
|
||||
# and $monitor
|
||||
#
|
||||
# [*monitor_tool*]
|
||||
# Define which monitor tools (ad defined in Example42 monitor module)
|
||||
# you want to use for apache checks
|
||||
# Can be defined also by the (top scope) variables $apache_monitor_tool
|
||||
# and $monitor_tool
|
||||
#
|
||||
# [*monitor_target*]
|
||||
# The Ip address or hostname to use as a target for monitoring tools.
|
||||
# Default is the fact $ipaddress
|
||||
# Can be defined also by the (top scope) variables $apache_monitor_target
|
||||
# and $monitor_target
|
||||
#
|
||||
# [*puppi*]
|
||||
# Set to 'true' to enable creation of module data files that are used by puppi
|
||||
# Can be defined also by the (top scope) variables $apache_puppi and $puppi
|
||||
#
|
||||
# [*puppi_helper*]
|
||||
# Specify the helper to use for puppi commands. The default for this module
|
||||
# is specified in params.pp and is generally a good choice.
|
||||
# You can customize the output of puppi commands for this module using another
|
||||
# puppi helper. Use the define puppi::helper to create a new custom helper
|
||||
# Can be defined also by the (top scope) variables $apache_puppi_helper
|
||||
# and $puppi_helper
|
||||
#
|
||||
# [*firewall*]
|
||||
# Set to 'true' to enable firewalling of the services provided by the module
|
||||
# Can be defined also by the (top scope) variables $apache_firewall
|
||||
# and $firewall
|
||||
#
|
||||
# [*firewall_tool*]
|
||||
# Define which firewall tool(s) (ad defined in Example42 firewall module)
|
||||
# you want to use to open firewall for apache port(s)
|
||||
# Can be defined also by the (top scope) variables $apache_firewall_tool
|
||||
# and $firewall_tool
|
||||
#
|
||||
# [*firewall_src*]
|
||||
# Define which source ip/net allow for firewalling apache. Default: 0.0.0.0/0
|
||||
# Can be defined also by the (top scope) variables $apache_firewall_src
|
||||
# and $firewall_src
|
||||
#
|
||||
# [*firewall_dst*]
|
||||
# Define which destination ip to use for firewalling. Default: $ipaddress
|
||||
# Can be defined also by the (top scope) variables $apache_firewall_dst
|
||||
# and $firewall_dst
|
||||
#
|
||||
# [*debug*]
|
||||
# Set to 'true' to enable modules debugging
|
||||
# Can be defined also by the (top scope) variables $apache_debug and $debug
|
||||
#
|
||||
# [*audit_only*]
|
||||
# Set to 'true' if you don't intend to override existing configuration files
|
||||
# and want to audit the difference between existing files and the ones
|
||||
# managed by Puppet.
|
||||
# Can be defined also by the (top scope) variables $apache_audit_only
|
||||
# and $audit_only
|
||||
#
|
||||
# Default class params - As defined in apache::params.
|
||||
# Note that these variables are mostly defined and used in the module itself,
|
||||
# overriding the default values might not affected all the involved components.
|
||||
# Set and override them only if you know what you're doing.
|
||||
# Note also that you can't override/set them via top scope variables.
|
||||
#
|
||||
# [*package*]
|
||||
# The name of apache package
|
||||
#
|
||||
# [*service*]
|
||||
# The name of apache service
|
||||
#
|
||||
# [*service_status*]
|
||||
# If the apache service init script supports status argument
|
||||
#
|
||||
# [*process*]
|
||||
# The name of apache process
|
||||
#
|
||||
# [*process_args*]
|
||||
# The name of apache arguments. Used by puppi and monitor.
|
||||
# Used only in case the apache process name is generic (java, ruby...)
|
||||
#
|
||||
# [*process_user*]
|
||||
# The name of the user apache runs with. Used by puppi and monitor.
|
||||
#
|
||||
# [*config_dir*]
|
||||
# Main configuration directory. Used by puppi
|
||||
#
|
||||
# [*config_file*]
|
||||
# Main configuration file path
|
||||
#
|
||||
# [*config_file_mode*]
|
||||
# Main configuration file path mode
|
||||
#
|
||||
# [*config_file_owner*]
|
||||
# Main configuration file path owner
|
||||
#
|
||||
# [*config_file_group*]
|
||||
# Main configuration file path group
|
||||
#
|
||||
# [*config_file_init*]
|
||||
# Path of configuration file sourced by init script
|
||||
#
|
||||
# [*config_file_default_purge*]
|
||||
# Set to 'true' to purge the default configuration file
|
||||
#
|
||||
# [*pid_file*]
|
||||
# Path of pid file. Used by monitor
|
||||
#
|
||||
# [*data_dir*]
|
||||
# Path of application data directory. Used by puppi
|
||||
#
|
||||
# [*log_dir*]
|
||||
# Base logs directory. Used by puppi
|
||||
#
|
||||
# [*log_file*]
|
||||
# Log file(s). Used by puppi
|
||||
#
|
||||
# [*port*]
|
||||
# The listening port, if any, of the service.
|
||||
# This is used by monitor, firewall and puppi (optional) components
|
||||
# Note: This doesn't necessarily affect the service configuration file
|
||||
# Can be defined also by the (top scope) variable $apache_port
|
||||
#
|
||||
# [*ssl_port*]
|
||||
# The ssl port, used if apache::ssl is included and monitor/firewall
|
||||
# are enabled
|
||||
#
|
||||
# [*protocol*]
|
||||
# The protocol used by the the service.
|
||||
# This is used by monitor, firewall and puppi (optional) components
|
||||
# Can be defined also by the (top scope) variable $apache_protocol
|
||||
#
|
||||
# [*version*]
|
||||
# The version of apache package to be installed
|
||||
#
|
||||
#
|
||||
# == Examples
|
||||
#
|
||||
# You can use this class in 2 ways:
|
||||
# - Set variables (at top scope level on in a ENC) and "include apache"
|
||||
# - Call apache as a parametrized class
|
||||
#
|
||||
# See README for details.
|
||||
#
|
||||
#
|
||||
# == Author
|
||||
# Alessandro Franceschi <al@lab42.it/>
|
||||
#
|
||||
class apache (
|
||||
$my_class = params_lookup( 'my_class' ),
|
||||
$source = params_lookup( 'source' ),
|
||||
$source_dir = params_lookup( 'source_dir' ),
|
||||
$source_dir_purge = params_lookup( 'source_dir_purge' ),
|
||||
$template = params_lookup( 'template' ),
|
||||
$service_autorestart = params_lookup( 'service_autorestart' , 'global' ),
|
||||
$options = params_lookup( 'options' ),
|
||||
$absent = params_lookup( 'absent' ),
|
||||
$disable = params_lookup( 'disable' ),
|
||||
$disableboot = params_lookup( 'disableboot' ),
|
||||
$monitor = params_lookup( 'monitor' , 'global' ),
|
||||
$monitor_tool = params_lookup( 'monitor_tool' , 'global' ),
|
||||
$monitor_target = params_lookup( 'monitor_target' , 'global' ),
|
||||
$puppi = params_lookup( 'puppi' , 'global' ),
|
||||
$puppi_helper = params_lookup( 'puppi_helper' , 'global' ),
|
||||
$firewall = params_lookup( 'firewall' , 'global' ),
|
||||
$firewall_tool = params_lookup( 'firewall_tool' , 'global' ),
|
||||
$firewall_src = params_lookup( 'firewall_src' , 'global' ),
|
||||
$firewall_dst = params_lookup( 'firewall_dst' , 'global' ),
|
||||
$debug = params_lookup( 'debug' , 'global' ),
|
||||
$audit_only = params_lookup( 'audit_only' , 'global' ),
|
||||
$package = params_lookup( 'package' ),
|
||||
$service = params_lookup( 'service' ),
|
||||
$service_status = params_lookup( 'service_status' ),
|
||||
$service_requires = params_lookup( 'service_requires' ),
|
||||
$process = params_lookup( 'process' ),
|
||||
$process_args = params_lookup( 'process_args' ),
|
||||
$process_user = params_lookup( 'process_user' ),
|
||||
$config_dir = params_lookup( 'config_dir' ),
|
||||
$config_file = params_lookup( 'config_file' ),
|
||||
$config_file_mode = params_lookup( 'config_file_mode' ),
|
||||
$config_file_owner = params_lookup( 'config_file_owner' ),
|
||||
$config_file_group = params_lookup( 'config_file_group' ),
|
||||
$config_file_init = params_lookup( 'config_file_init' ),
|
||||
$config_file_default_purge = params_lookup( 'config_file_default_purge'),
|
||||
$pid_file = params_lookup( 'pid_file' ),
|
||||
$data_dir = params_lookup( 'data_dir' ),
|
||||
$log_dir = params_lookup( 'log_dir' ),
|
||||
$log_file = params_lookup( 'log_file' ),
|
||||
$port = params_lookup( 'port' ),
|
||||
$ssl_port = params_lookup( 'ssl_port' ),
|
||||
$protocol = params_lookup( 'protocol' ),
|
||||
$version = params_lookup( 'version' ),
|
||||
$dotconf_hash = params_lookup( 'dotconf_hash'),
|
||||
$htpasswd_hash = params_lookup( 'htpasswd_hash'),
|
||||
$listen_hash = params_lookup( 'listen_hash'),
|
||||
$module_hash = params_lookup( 'module_hash'),
|
||||
$vhost_hash = params_lookup( 'vhost_hash'),
|
||||
$virtualhost_hash = params_lookup( 'virtualhost_hash'),
|
||||
) inherits apache::params {
|
||||
|
||||
$bool_source_dir_purge=any2bool($source_dir_purge)
|
||||
$bool_service_autorestart=any2bool($service_autorestart)
|
||||
$bool_absent=any2bool($absent)
|
||||
$bool_disable=any2bool($disable)
|
||||
$bool_disableboot=any2bool($disableboot)
|
||||
$bool_monitor=any2bool($monitor)
|
||||
$bool_puppi=any2bool($puppi)
|
||||
$bool_firewall=any2bool($firewall)
|
||||
$bool_debug=any2bool($debug)
|
||||
$bool_audit_only=any2bool($audit_only)
|
||||
|
||||
## Integration with Hiera
|
||||
if $dotconf_hash != {} {
|
||||
validate_hash($dotconf_hash)
|
||||
create_resources('apache::dotconf', $dotconf_hash)
|
||||
}
|
||||
if $htpasswd_hash != {} {
|
||||
validate_hash($htpasswd_hash)
|
||||
create_resources('apache::htpasswd', $htpasswd_hash)
|
||||
}
|
||||
if $listen_hash != {} {
|
||||
validate_hash($listen_hash)
|
||||
create_resources('apache::listen', $listen_hash)
|
||||
}
|
||||
if $module_hash != {} {
|
||||
validate_hash($module_hash)
|
||||
create_resources('apache::module', $module_hash)
|
||||
}
|
||||
if $vhost_hash != {} {
|
||||
validate_hash($vhost_hash)
|
||||
create_resources('apache::vhost', $vhost_hash)
|
||||
}
|
||||
if $virtualhost_hash != {} {
|
||||
validate_hash($virtualhost_hash)
|
||||
create_resources('apache::virtualhost', $virtualhost_hash)
|
||||
}
|
||||
|
||||
### Calculation of variables that dependes on arguments
|
||||
$vdir = $::operatingsystem ? {
|
||||
/(?i:Ubuntu|Debian|Mint)/ => "${apache::config_dir}/sites-available",
|
||||
SLES => "${apache::config_dir}/vhosts.d",
|
||||
default => "${apache::config_dir}/conf.d",
|
||||
}
|
||||
|
||||
case $::operatingsystem {
|
||||
/(?i:Ubuntu)/ : {
|
||||
case $::lsbmajdistrelease {
|
||||
/14/ : {
|
||||
$dotconf_dir = "${apache::config_dir}/conf-available"
|
||||
}
|
||||
default: {
|
||||
$dotconf_dir = "${apache::config_dir}/conf.d"
|
||||
}
|
||||
}
|
||||
}
|
||||
/(?i:Debian)/ : {
|
||||
case $::lsbmajdistrelease {
|
||||
/8/ : {
|
||||
$dotconf_dir = "${apache::config_dir}/conf-available"
|
||||
}
|
||||
default: {
|
||||
$dotconf_dir = "${apache::config_dir}/conf.d"
|
||||
}
|
||||
}
|
||||
}
|
||||
default: {
|
||||
$dotconf_dir = "${apache::config_dir}/conf.d"
|
||||
}
|
||||
}
|
||||
|
||||
### Definition of some variables used in the module
|
||||
$manage_package = $apache::bool_absent ? {
|
||||
true => 'absent',
|
||||
false => $apache::version ? {
|
||||
'' => 'present',
|
||||
default => $apache::version,
|
||||
},
|
||||
}
|
||||
|
||||
$manage_service_enable = $apache::bool_disableboot ? {
|
||||
true => false,
|
||||
default => $apache::bool_disable ? {
|
||||
true => false,
|
||||
default => $apache::bool_absent ? {
|
||||
true => false,
|
||||
false => true,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
$manage_service_ensure = $apache::bool_disable ? {
|
||||
true => 'stopped',
|
||||
default => $apache::bool_absent ? {
|
||||
true => 'stopped',
|
||||
default => 'running',
|
||||
},
|
||||
}
|
||||
|
||||
$manage_service_autorestart = $apache::bool_service_autorestart ? {
|
||||
true => 'Service[apache]',
|
||||
false => undef,
|
||||
}
|
||||
|
||||
$manage_file = $apache::bool_absent ? {
|
||||
true => 'absent',
|
||||
default => 'present',
|
||||
}
|
||||
|
||||
if $apache::bool_absent == true
|
||||
or $apache::bool_disable == true
|
||||
or $apache::bool_monitor == false
|
||||
or $apache::bool_disableboot == true {
|
||||
$manage_monitor = false
|
||||
} else {
|
||||
$manage_monitor = true
|
||||
}
|
||||
|
||||
if $apache::bool_absent == true or $apache::bool_disable == true {
|
||||
$manage_firewall = false
|
||||
} else {
|
||||
$manage_firewall = true
|
||||
}
|
||||
|
||||
$manage_audit = $apache::bool_audit_only ? {
|
||||
true => 'all',
|
||||
false => undef,
|
||||
}
|
||||
|
||||
$manage_file_replace = $apache::bool_audit_only ? {
|
||||
true => false,
|
||||
false => true,
|
||||
}
|
||||
|
||||
$manage_file_source = $apache::source ? {
|
||||
'' => undef,
|
||||
default => $apache::source,
|
||||
}
|
||||
|
||||
$manage_file_content = $apache::template ? {
|
||||
'' => undef,
|
||||
default => template($apache::template),
|
||||
}
|
||||
|
||||
### Managed resources
|
||||
package { 'apache':
|
||||
ensure => $apache::manage_package,
|
||||
name => $apache::package,
|
||||
}
|
||||
|
||||
service { 'apache':
|
||||
ensure => $apache::manage_service_ensure,
|
||||
name => $apache::service,
|
||||
enable => $apache::manage_service_enable,
|
||||
hasstatus => $apache::service_status,
|
||||
pattern => $apache::process,
|
||||
require => $service_requires,
|
||||
}
|
||||
|
||||
file { 'apache.conf':
|
||||
ensure => $apache::manage_file,
|
||||
path => $apache::config_file,
|
||||
mode => $apache::config_file_mode,
|
||||
owner => $apache::config_file_owner,
|
||||
group => $apache::config_file_group,
|
||||
require => Package['apache'],
|
||||
notify => $apache::manage_service_autorestart,
|
||||
source => $apache::manage_file_source,
|
||||
content => $apache::manage_file_content,
|
||||
replace => $apache::manage_file_replace,
|
||||
audit => $apache::manage_audit,
|
||||
}
|
||||
|
||||
# The whole apache configuration directory can be recursively overriden
|
||||
if $apache::source_dir and $apache::source_dir != '' {
|
||||
file { 'apache.dir':
|
||||
ensure => directory,
|
||||
path => $apache::config_dir,
|
||||
require => Package['apache'],
|
||||
notify => $apache::manage_service_autorestart,
|
||||
source => $apache::source_dir,
|
||||
recurse => true,
|
||||
purge => $apache::bool_source_dir_purge,
|
||||
force => $apache::bool_source_dir_purge,
|
||||
replace => $apache::manage_file_replace,
|
||||
audit => $apache::manage_audit,
|
||||
}
|
||||
}
|
||||
|
||||
if $apache::config_file_default_purge {
|
||||
apache::vhost { 'default':
|
||||
enable => false,
|
||||
priority => '',
|
||||
}
|
||||
}
|
||||
|
||||
### Include custom class if $my_class is set
|
||||
if $apache::my_class and $apache::my_class != '' {
|
||||
include $apache::my_class
|
||||
}
|
||||
|
||||
|
||||
### Provide puppi data, if enabled ( puppi => true )
|
||||
if $apache::bool_puppi == true {
|
||||
$classvars=get_class_args()
|
||||
puppi::ze { 'apache':
|
||||
ensure => $apache::manage_file,
|
||||
variables => $classvars,
|
||||
helper => $apache::puppi_helper,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
### Service monitoring, if enabled ( monitor => true )
|
||||
if $apache::monitor_tool {
|
||||
monitor::port { "apache_${apache::protocol}_${apache::port}":
|
||||
protocol => $apache::protocol,
|
||||
port => $apache::port,
|
||||
target => $apache::monitor_target,
|
||||
tool => $apache::monitor_tool,
|
||||
enable => $apache::manage_monitor,
|
||||
}
|
||||
monitor::process { 'apache_process':
|
||||
process => $apache::process,
|
||||
service => $apache::service,
|
||||
pidfile => $apache::pid_file,
|
||||
user => $apache::process_user,
|
||||
argument => $apache::process_args,
|
||||
tool => $apache::monitor_tool,
|
||||
enable => $apache::manage_monitor,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
### Firewall management, if enabled ( firewall => true )
|
||||
if $apache::bool_firewall == true {
|
||||
firewall { "apache_${apache::protocol}_${apache::port}":
|
||||
source => $apache::firewall_src,
|
||||
destination => $apache::firewall_dst,
|
||||
protocol => $apache::protocol,
|
||||
port => $apache::port,
|
||||
action => 'allow',
|
||||
direction => 'input',
|
||||
tool => $apache::firewall_tool,
|
||||
enable => $apache::manage_firewall,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
### Debugging, if enabled ( debug => true )
|
||||
if $apache::bool_debug == true {
|
||||
file { 'debug_apache':
|
||||
ensure => $apache::manage_file,
|
||||
path => "${settings::vardir}/debug-apache",
|
||||
mode => '0640',
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
content => inline_template('<%= scope.to_hash.reject { |k,v| k.to_s =~ /(uptime.*|path|timestamp|free|.*password.*|.*psk.*|.*key)/ }.to_yaml %>'),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
# = Define: apache::listen
|
||||
#
|
||||
# This define creates a Listen statement in Apache configuration
|
||||
# It adds a single configuration file to Apache conf.d with the Listen
|
||||
# statement
|
||||
#
|
||||
# == Parameters
|
||||
#
|
||||
# [*namevirtualhost*]
|
||||
# If to add a NameVirtualHost for this port. Default: *
|
||||
# (it creates a NameVirtualHost <%= @namevirtualhost %>:<%= @port %> entry)
|
||||
# Set to false to listen to the port without a NameVirtualHost
|
||||
#
|
||||
# == Examples
|
||||
# apache::listen { '8080':}
|
||||
#
|
||||
define apache::listen (
|
||||
$namevirtualhost = '*',
|
||||
$ensure = 'present',
|
||||
$template = 'apache/listen.conf.erb',
|
||||
$notify_service = true ) {
|
||||
|
||||
include apache
|
||||
|
||||
$manage_service_autorestart = $notify_service ? {
|
||||
true => 'Service[apache]',
|
||||
false => undef,
|
||||
}
|
||||
|
||||
file { "Apache_Listen_${name}.conf":
|
||||
ensure => $ensure,
|
||||
path => "${apache::config_dir}/conf.d/0000_listen_${name}.conf",
|
||||
mode => $apache::config_file_mode,
|
||||
owner => $apache::config_file_owner,
|
||||
group => $apache::config_file_group,
|
||||
require => Package['apache'],
|
||||
notify => $manage_service_autorestart,
|
||||
content => template($template),
|
||||
audit => $apache::manage_audit,
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,158 +0,0 @@
|
||||
# Class: apache::params
|
||||
#
|
||||
# This class defines default parameters used by the main module class apache
|
||||
# Operating Systems differences in names and paths are addressed here
|
||||
#
|
||||
# == Variables
|
||||
#
|
||||
# Refer to apache class for the variables defined here.
|
||||
#
|
||||
# == Usage
|
||||
#
|
||||
# This class is not intended to be used directly.
|
||||
# It may be imported or inherited by other classes
|
||||
#
|
||||
class apache::params {
|
||||
|
||||
### Application specific parameters
|
||||
$package_modssl = $::operatingsystem ? {
|
||||
/(?i:Ubuntu|Debian|Mint)/ => 'libapache-mod-ssl',
|
||||
/(?i:SLES|OpenSuSE)/ => undef,
|
||||
default => 'mod_ssl',
|
||||
}
|
||||
|
||||
### Application related parameters
|
||||
|
||||
$package = $::operatingsystem ? {
|
||||
/(?i:Ubuntu|Debian|Mint)/ => 'apache2',
|
||||
/(?i:SLES|OpenSuSE)/ => 'apache2',
|
||||
default => 'httpd',
|
||||
}
|
||||
|
||||
$service = $::operatingsystem ? {
|
||||
/(?i:Ubuntu|Debian|Mint)/ => 'apache2',
|
||||
/(?i:SLES|OpenSuSE)/ => 'apache2',
|
||||
default => 'httpd',
|
||||
}
|
||||
|
||||
$service_status = $::operatingsystem ? {
|
||||
default => true,
|
||||
}
|
||||
|
||||
$process = $::operatingsystem ? {
|
||||
/(?i:Ubuntu|Debian|Mint)/ => 'apache2',
|
||||
/(?i:SLES|OpenSuSE)/ => 'httpd2-prefork',
|
||||
default => 'httpd',
|
||||
}
|
||||
|
||||
$process_args = $::operatingsystem ? {
|
||||
default => '',
|
||||
}
|
||||
|
||||
$process_user = $::operatingsystem ? {
|
||||
/(?i:Ubuntu|Debian|Mint)/ => 'www-data',
|
||||
/(?i:SLES|OpenSuSE)/ => 'wwwrun',
|
||||
default => 'apache',
|
||||
}
|
||||
|
||||
$config_dir = $::operatingsystem ? {
|
||||
/(?i:Ubuntu|Debian|Mint)/ => '/etc/apache2',
|
||||
/(?i:SLES|OpenSuSE)/ => '/etc/apache2',
|
||||
freebsd => '/usr/local/etc/apache20',
|
||||
default => '/etc/httpd',
|
||||
}
|
||||
|
||||
$config_file = $::operatingsystem ? {
|
||||
/(?i:Ubuntu|Debian|Mint)/ => '/etc/apache2/apache2.conf',
|
||||
/(?i:SLES|OpenSuSE)/ => '/etc/apache2/httpd.conf',
|
||||
freebsd => '/usr/local/etc/apache20/httpd.conf',
|
||||
default => '/etc/httpd/conf/httpd.conf',
|
||||
}
|
||||
|
||||
$config_file_mode = $::operatingsystem ? {
|
||||
default => '0644',
|
||||
}
|
||||
|
||||
$config_file_owner = $::operatingsystem ? {
|
||||
default => 'root',
|
||||
}
|
||||
|
||||
$config_file_group = $::operatingsystem ? {
|
||||
freebsd => 'wheel',
|
||||
default => 'root',
|
||||
}
|
||||
|
||||
$config_file_init = $::operatingsystem ? {
|
||||
/(?i:Debian|Ubuntu|Mint)/ => '/etc/default/apache2',
|
||||
/(?i:SLES|OpenSuSE)/ => '/etc/sysconfig/apache2',
|
||||
default => '/etc/sysconfig/httpd',
|
||||
}
|
||||
|
||||
$pid_file = $::operatingsystem ? {
|
||||
/(?i:Debian|Ubuntu|Mint)/ => '/var/run/apache2.pid',
|
||||
/(?i:SLES|OpenSuSE)/ => '/var/run/httpd2.pid',
|
||||
default => '/var/run/httpd.pid',
|
||||
}
|
||||
|
||||
$log_dir = $::operatingsystem ? {
|
||||
/(?i:Debian|Ubuntu|Mint)/ => '/var/log/apache2',
|
||||
/(?i:SLES|OpenSuSE)/ => '/var/log/apache2',
|
||||
default => '/var/log/httpd',
|
||||
}
|
||||
|
||||
$log_file = $::operatingsystem ? {
|
||||
/(?i:Debian|Ubuntu|Mint)/ => ['/var/log/apache2/access.log','/var/log/apache2/error.log'],
|
||||
/(?i:SLES|OpenSuSE)/ => ['/var/log/apache2/access.log','/var/log/apache2/error.log'],
|
||||
default => ['/var/log/httpd/access.log','/var/log/httpd/error.log'],
|
||||
}
|
||||
|
||||
$data_dir = $::operatingsystem ? {
|
||||
/(?i:Debian|Ubuntu|Mint)/ => '/var/www',
|
||||
/(?i:Suse|OpenSuse)/ => '/srv/www/htdocs',
|
||||
default => '/var/www/html',
|
||||
}
|
||||
|
||||
$ports_conf_path = $::operatingsystem ? {
|
||||
/(?i:Debian|Ubuntu|Mint)/ => '/etc/apache2/ports.conf',
|
||||
default => '',
|
||||
}
|
||||
|
||||
$port = '80'
|
||||
$ssl_port = '443'
|
||||
$protocol = 'tcp'
|
||||
|
||||
# General Settings
|
||||
$my_class = ''
|
||||
$source = ''
|
||||
$source_dir = ''
|
||||
$source_dir_purge = false
|
||||
$config_file_default_purge = false
|
||||
$template = ''
|
||||
$options = ''
|
||||
$service_autorestart = true
|
||||
$service_requires = Package['apache']
|
||||
$absent = false
|
||||
$version = ''
|
||||
$disable = false
|
||||
$disableboot = false
|
||||
|
||||
### General module variables that can have a site or per module default
|
||||
$monitor = false
|
||||
$monitor_tool = ''
|
||||
$monitor_target = $::ipaddress
|
||||
$firewall = false
|
||||
$firewall_tool = ''
|
||||
$firewall_src = '0.0.0.0/0'
|
||||
$firewall_dst = $::ipaddress
|
||||
$puppi = false
|
||||
$puppi_helper = 'standard'
|
||||
$debug = false
|
||||
$audit_only = false
|
||||
$dotconf_hash = {}
|
||||
$htpasswd_hash = {}
|
||||
$listen_hash = {}
|
||||
$module_hash = {}
|
||||
$vhost_hash = {}
|
||||
$virtualhost_hash = {}
|
||||
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
# Class apache::ssl
|
||||
#
|
||||
# Apache resources specific for SSL
|
||||
#
|
||||
class apache::ssl {
|
||||
|
||||
include apache
|
||||
|
||||
case $::operatingsystem {
|
||||
ubuntu,debian,mint: {
|
||||
exec { 'enable-ssl':
|
||||
command => '/usr/sbin/a2enmod ssl',
|
||||
creates => '/etc/apache2/mods-enabled/ssl.load',
|
||||
notify => Service['apache'],
|
||||
require => Package['apache'],
|
||||
}
|
||||
}
|
||||
|
||||
default: {
|
||||
package { 'mod_ssl':
|
||||
ensure => present,
|
||||
require => Package['apache'],
|
||||
notify => Service['apache'],
|
||||
}
|
||||
file { "${apache::config_dir}/ssl.conf":
|
||||
mode => '0644',
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
notify => Service['apache'],
|
||||
}
|
||||
file {['/var/cache/mod_ssl', '/var/cache/mod_ssl/scache']:
|
||||
ensure => directory,
|
||||
owner => 'apache',
|
||||
group => 'root',
|
||||
mode => '0700',
|
||||
require => Package['mod_ssl'],
|
||||
notify => Service['apache'],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
### Port monitoring, if enabled ( monitor => true )
|
||||
if $apache::bool_monitor == true {
|
||||
monitor::port { "apache_${apache::protocol}_${apache::ssl_port}":
|
||||
protocol => $apache::protocol,
|
||||
port => $apache::ssl_port,
|
||||
target => $apache::monitor_target,
|
||||
tool => $apache::monitor_tool,
|
||||
enable => $apache::manage_monitor,
|
||||
}
|
||||
}
|
||||
|
||||
### Firewall management, if enabled ( firewall => true )
|
||||
if $apache::bool_firewall == true {
|
||||
firewall { "apache_${apache::protocol}_${apache::ssl_port}":
|
||||
source => $apache::firewall_src,
|
||||
destination => $apache::firewall_dst,
|
||||
protocol => $apache::protocol,
|
||||
port => $apache::ssl_port,
|
||||
action => 'allow',
|
||||
direction => 'input',
|
||||
tool => $apache::firewall_tool,
|
||||
enable => $apache::manage_firewall,
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,275 +0,0 @@
|
||||
# = Define: apache::vhost
|
||||
#
|
||||
# This class manages Apache Virtual Hosts configuration files
|
||||
#
|
||||
# == Parameters:
|
||||
# [*port*]
|
||||
# The port to configure the host on
|
||||
|
||||
# [*ip_addr*]
|
||||
# The ip to configure the host on. Default: * (all IPs)
|
||||
#
|
||||
# [*docroot*]
|
||||
# The VirtualHost DocumentRoot
|
||||
#
|
||||
# [*docroot_create*]
|
||||
# If the specified directory has to be created. Default: false
|
||||
#
|
||||
# [*ssl*]
|
||||
# Set to true to enable SSL for this Virtual Host
|
||||
#
|
||||
# [*template*]
|
||||
# Specify a custom template to use instead of the default one
|
||||
# The value will be used in content => template($template)
|
||||
#
|
||||
# [*source*]
|
||||
# Source file for vhost. Alternative to template.
|
||||
# Note that if you decide to source a static file most of the other
|
||||
# parameters of this define won't be used.
|
||||
# Note also that if you set a source file, you've to explicitly set
|
||||
# the template parameter to undef.
|
||||
#
|
||||
# [*priority*]
|
||||
# The priority of the VirtualHost, lower values are evaluated first
|
||||
# Set to '' to edit default apache value
|
||||
#
|
||||
# [*serveraliases*]
|
||||
# An optional list of space separated ServerAliases
|
||||
#
|
||||
# [*env_variables*]
|
||||
# An optional list of space separated environment variables (e.g ['APP_ENV dev'])
|
||||
#
|
||||
# [*server_admin*]
|
||||
# Server admin email address
|
||||
#
|
||||
# [*server_name*]
|
||||
# An optional way to directly set server name
|
||||
# False mean, that servername is not present in generated config file
|
||||
#
|
||||
# [*passenger*]
|
||||
# If Passenger should be enabled
|
||||
#
|
||||
# [*passenger_high_performance*]
|
||||
# Set the PassengerHighPerformance directive
|
||||
#
|
||||
# [*passenger_pool_max_pool_size*]
|
||||
# Set the PassengerMaxPoolSize directive
|
||||
#
|
||||
# [*passenger_pool_idle_time*]
|
||||
# Set the PassengerPoolIdleTime directive
|
||||
#
|
||||
# [*passenger_max_requests*]
|
||||
# Set the PassengerMaxRequests directive
|
||||
#
|
||||
# [*passenger_stat_throttle_rate*]
|
||||
# Set the PassengerStatThrottleRate directive
|
||||
#
|
||||
# [*passenger_rack_auto_detect*]
|
||||
# Set the RackAutoDetect directive
|
||||
#
|
||||
# [*passenger_rails_auto_detect*]
|
||||
# Set the RailsAutoDetect directive
|
||||
#
|
||||
# [*passenger_rails_env*]
|
||||
# Set the RailsEnv directive
|
||||
#
|
||||
# [*passenger_rails_base_uri*]
|
||||
# Set the RackBaseURI directive
|
||||
#
|
||||
# [*passenger_rack_env*]
|
||||
# Set the RackEnv directive
|
||||
#
|
||||
# [*passenger_rack_base_uri*]
|
||||
# Set the RackBaseURI directive
|
||||
#
|
||||
# [*directory*]
|
||||
# Set the VHost directory used for the <Directory> directive
|
||||
#
|
||||
# [*directory_options*]
|
||||
# Set the directory's Options
|
||||
#
|
||||
# [*directory_allow_override*]
|
||||
# Set the directory's override configuration
|
||||
#
|
||||
# [*directory_require*]
|
||||
# Set the Require attribute for Apache 2.4
|
||||
#
|
||||
# [*aliases*]
|
||||
# Set one or more Alias directives (e.g '/phpmyadmin /usr/share/phpMyAdmin'
|
||||
# or ['/alias1 /path/to/alias', '/alias2 /path/to/secondalias'])
|
||||
#
|
||||
# [*proxy_aliases*]
|
||||
# Set one or more proxy and reverse proxy directives. (e.g. '/manager http://localhost:8080/manager'
|
||||
# or ['/manager http://localhost:8080/manager', '/alias3 http://remote.server.com/alias'])
|
||||
#
|
||||
# == Examples:
|
||||
# apache::vhost { 'site.name.fqdn':
|
||||
# docroot => '/path/to/docroot',
|
||||
# }
|
||||
#
|
||||
# apache::vhost { 'mysite':
|
||||
# docroot => '/path/to/docroot',
|
||||
# template => 'myproject/apache/mysite.conf',
|
||||
# }
|
||||
#
|
||||
# apache::vhost { 'my.other.site':
|
||||
# docroot => '/path/to/docroot',
|
||||
# directory => '/path/to',
|
||||
# directory_allow_override => 'All',
|
||||
# }
|
||||
#
|
||||
# apache::vhost { 'sitewithalias':
|
||||
# docroot => '/path/to/docroot',
|
||||
# aliases => '/phpmyadmin /usr/share/phpMyAdmin',
|
||||
# }
|
||||
#
|
||||
define apache::vhost (
|
||||
$server_admin = '',
|
||||
$server_name = '',
|
||||
$docroot = '',
|
||||
$docroot_create = false,
|
||||
$docroot_owner = 'root',
|
||||
$docroot_group = 'root',
|
||||
$port = '80',
|
||||
$ip_addr = '*',
|
||||
$ssl = false,
|
||||
$template = 'apache/virtualhost/vhost.conf.erb',
|
||||
$source = '',
|
||||
$priority = '50',
|
||||
$serveraliases = '',
|
||||
$env_variables = '',
|
||||
$passenger = false,
|
||||
$passenger_high_performance = true,
|
||||
$passenger_max_pool_size = 12,
|
||||
$passenger_pool_idle_time = 1200,
|
||||
$passenger_max_requests = 0,
|
||||
$passenger_stat_throttle_rate = 30,
|
||||
$passenger_rack_auto_detect = true,
|
||||
$passenger_rails_auto_detect = false,
|
||||
$passenger_rails_env = '',
|
||||
$passenger_rails_base_uri = '',
|
||||
$passenger_rack_env = '',
|
||||
$passenger_rack_base_uri = '',
|
||||
$enable = true,
|
||||
$directory = '',
|
||||
$directory_options = '',
|
||||
$directory_allow_override = 'None',
|
||||
$directory_require = '',
|
||||
$aliases = '',
|
||||
$proxy_aliases = ''
|
||||
) {
|
||||
|
||||
$ensure = $enable ? {
|
||||
true => present,
|
||||
false => present,
|
||||
absent => absent,
|
||||
}
|
||||
$bool_docroot_create = any2bool($docroot_create)
|
||||
$bool_passenger = any2bool($passenger)
|
||||
$bool_passenger_high_performance = any2bool($passenger_high_performance)
|
||||
$bool_passenger_rack_auto_detect = any2bool($passenger_rack_auto_detect)
|
||||
$bool_passenger_rails_auto_detect = any2bool($passenger_rails_auto_detect)
|
||||
|
||||
$real_docroot = $docroot ? {
|
||||
'' => "${apache::data_dir}/${name}",
|
||||
default => $docroot,
|
||||
}
|
||||
|
||||
$real_directory = $directory ? {
|
||||
'' => $apache::data_dir,
|
||||
default => $directory,
|
||||
}
|
||||
|
||||
$server_name_value = $server_name ? {
|
||||
'' => $name,
|
||||
default => $server_name,
|
||||
}
|
||||
|
||||
$manage_file_source = $source ? {
|
||||
'' => undef,
|
||||
default => $source,
|
||||
}
|
||||
|
||||
# Server admin email
|
||||
if $server_admin != '' {
|
||||
$server_admin_email = $server_admin
|
||||
} elsif ($name != 'default') and ($name != 'default-ssl') {
|
||||
$server_admin_email = "webmaster@${name}"
|
||||
} else {
|
||||
$server_admin_email = 'webmaster@localhost'
|
||||
}
|
||||
|
||||
# Config file path
|
||||
if $priority != '' {
|
||||
$config_file_path = "${apache::vdir}/${priority}-${name}.conf"
|
||||
} elsif ($name != 'default') and ($name != 'default-ssl') {
|
||||
$config_file_path = "${apache::vdir}/${name}.conf"
|
||||
} else {
|
||||
$config_file_path = "${apache::vdir}/${name}"
|
||||
}
|
||||
|
||||
# Config file enable path
|
||||
if $priority != '' {
|
||||
$config_file_enable_path = "${apache::config_dir}/sites-enabled/${priority}-${name}.conf"
|
||||
} elsif ($name != 'default') and ($name != 'default-ssl') {
|
||||
$config_file_enable_path = "${apache::config_dir}/sites-enabled/${name}.conf"
|
||||
} else {
|
||||
$config_file_enable_path = "${apache::config_dir}/sites-enabled/000-${name}"
|
||||
}
|
||||
|
||||
$manage_file_content = $template ? {
|
||||
'' => undef,
|
||||
undef => undef,
|
||||
default => template($template),
|
||||
}
|
||||
|
||||
include apache
|
||||
|
||||
file { $config_file_path:
|
||||
ensure => $ensure,
|
||||
source => $manage_file_source,
|
||||
content => $manage_file_content,
|
||||
mode => $apache::config_file_mode,
|
||||
owner => $apache::config_file_owner,
|
||||
group => $apache::config_file_group,
|
||||
require => Package['apache'],
|
||||
notify => $apache::manage_service_autorestart,
|
||||
}
|
||||
|
||||
# Some OS specific settings:
|
||||
# On Debian/Ubuntu manages sites-enabled
|
||||
case $::operatingsystem {
|
||||
ubuntu,debian,mint: {
|
||||
$file_vhost_link_ensure = $enable ? {
|
||||
true => $config_file_path,
|
||||
false => absent,
|
||||
absent => absent,
|
||||
}
|
||||
file { "ApacheVHostEnabled_${name}":
|
||||
ensure => $file_vhost_link_ensure,
|
||||
path => $config_file_enable_path,
|
||||
require => Package['apache'],
|
||||
notify => $apache::manage_service_autorestart,
|
||||
}
|
||||
}
|
||||
redhat,centos,scientific,fedora: {
|
||||
include apache::redhat
|
||||
}
|
||||
default: { }
|
||||
}
|
||||
|
||||
if $bool_docroot_create == true {
|
||||
file { $real_docroot:
|
||||
ensure => directory,
|
||||
owner => $docroot_owner,
|
||||
group => $docroot_group,
|
||||
mode => '0775',
|
||||
require => Package['apache'],
|
||||
}
|
||||
}
|
||||
|
||||
if $bool_passenger == true {
|
||||
include apache::passenger
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
{
|
||||
"name": "example42-apache",
|
||||
"version": "2.1.12",
|
||||
"author": "Alessandro Franceschi, Martin Alfke",
|
||||
"summary": "Puppet module for apache",
|
||||
"license": "Apache-2.0",
|
||||
"source": "https://github.com/example42/puppet-apache",
|
||||
"project_page": "https://github.com/example42/puppet-apache",
|
||||
"issues_url": "https://github.com/example42/puppet-apache/issues",
|
||||
"dependencies": [
|
||||
{"name":"puppetlabs/stdlib","version_requirement":">= 3.2.0 < 5.0.0"},
|
||||
{"name":"example42/puppi","version_requirement":">= 2.0.0"},
|
||||
{"name":"example42/monitor","version_requirement":">= 2.0.0"},
|
||||
{"name":"example42/iptables","version_requirement":">= 2.0.0"},
|
||||
{"name":"example42/firewall","version_requirement":">= 2.0.0"},
|
||||
{"name":"puppetlabs/concat","version_requirement":">= 1.0.0"}
|
||||
],
|
||||
"checksums": {
|
||||
},
|
||||
"operatingsystem_support": [
|
||||
{
|
||||
"operatingsystem": "RedHat",
|
||||
"operatingsystemrelease": [
|
||||
"7"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operatingsystem": "Centos",
|
||||
"operatingsystemrelease": [
|
||||
"7"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operatingsystem": "Debian",
|
||||
"operatingsystemrelease": [
|
||||
"7"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operatingsystem": "Ubuntu",
|
||||
"operatingsystemrelease": [
|
||||
"14.04"
|
||||
]
|
||||
}
|
||||
],
|
||||
"requirements": [
|
||||
{
|
||||
"name": "pe",
|
||||
"version_requirement": ">= 3.0.0 < 5.0.0"
|
||||
},
|
||||
{
|
||||
"name": "puppet",
|
||||
"version_requirement": ">= 3.0.0 < 5.0.0"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,199 +0,0 @@
|
||||
require "#{File.join(File.dirname(__FILE__),'..','spec_helper.rb')}"
|
||||
|
||||
describe 'apache' do
|
||||
|
||||
let(:title) { 'apache' }
|
||||
let(:node) { 'rspec.example42.com' }
|
||||
let(:facts) { { :ipaddress => '10.42.42.42' , :monitor_tool => 'puppi', :operatingsystemrelease => '6.6' } }
|
||||
|
||||
describe 'Test standard installation' do
|
||||
it { should contain_package('apache').with_ensure('present') }
|
||||
it { should contain_service('apache').with_ensure('running') }
|
||||
it { should contain_service('apache').with_enable('true') }
|
||||
it { should contain_file('apache.conf').with_ensure('present') }
|
||||
end
|
||||
|
||||
describe 'Test standard installation with monitoring and firewalling' do
|
||||
let(:params) { {:monitor => true , :firewall => true, :port => '42' } }
|
||||
|
||||
it { should contain_package('apache').with_ensure('present') }
|
||||
it { should contain_service('apache').with_ensure('running') }
|
||||
it { should contain_service('apache').with_enable('true') }
|
||||
it { should contain_file('apache.conf').with_ensure('present') }
|
||||
it 'should monitor the process' do
|
||||
should contain_monitor__process('apache_process').with_enable(true)
|
||||
end
|
||||
it 'should place a firewall rule' do
|
||||
should contain_firewall('apache_tcp_42').with_enable(true)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Test decommissioning - absent' do
|
||||
let(:params) { {:absent => true, :monitor => true , :firewall => true, :port => '42'} }
|
||||
|
||||
it 'should remove Package[apache]' do should contain_package('apache').with_ensure('absent') end
|
||||
it 'should stop Service[apache]' do should contain_service('apache').with_ensure('stopped') end
|
||||
it 'should not enable at boot Service[apache]' do should contain_service('apache').with_enable('false') end
|
||||
it 'should remove apache configuration file' do should contain_file('apache.conf').with_ensure('absent') end
|
||||
it 'should not monitor the process' do
|
||||
should contain_monitor__process('apache_process').with_enable(false)
|
||||
end
|
||||
it 'should remove a firewall rule' do
|
||||
should contain_firewall('apache_tcp_42').with_enable(false)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Test decommissioning - disable' do
|
||||
let(:params) { {:disable => true, :monitor => true , :firewall => true, :port => '42'} }
|
||||
|
||||
it { should contain_package('apache').with_ensure('present') }
|
||||
it 'should stop Service[apache]' do should contain_service('apache').with_ensure('stopped') end
|
||||
it 'should not enable at boot Service[apache]' do should contain_service('apache').with_enable('false') end
|
||||
it { should contain_file('apache.conf').with_ensure('present') }
|
||||
it 'should not monitor the process' do
|
||||
should contain_monitor__process('apache_process').with_enable(false)
|
||||
end
|
||||
it 'should remove a firewall rule' do
|
||||
should contain_firewall('apache_tcp_42').with_enable(false)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Test decommissioning - disableboot' do
|
||||
let(:params) { {:disableboot => true, :monitor => true , :firewall => true, :port => '42'} }
|
||||
|
||||
it { should contain_package('apache').with_ensure('present') }
|
||||
it { should_not contain_service('apache').with_ensure('present') }
|
||||
it { should_not contain_service('apache').with_ensure('absent') }
|
||||
it 'should not enable at boot Service[apache]' do should contain_service('apache').with_enable('false') end
|
||||
it { should contain_file('apache.conf').with_ensure('present') }
|
||||
it 'should not monitor the process locally' do
|
||||
should contain_monitor__process('apache_process').with_enable(false)
|
||||
end
|
||||
it 'should keep a firewall rule' do
|
||||
should contain_firewall('apache_tcp_42').with_enable(true)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Test customizations - template' do
|
||||
let(:params) { {:template => "apache/spec.erb" , :options => { 'opt_a' => 'value_a' } } }
|
||||
|
||||
it 'should generate a valid template' do
|
||||
should contain_file('apache.conf').with_content(/fqdn: rspec.example42.com/)
|
||||
end
|
||||
it 'should generate a template that uses custom options' do
|
||||
should contain_file('apache.conf').with_content(/value_a/)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe 'Test customizations - source' do
|
||||
let(:params) { {:source => "puppet://modules/apache/spec" , :source_dir => "puppet://modules/apache/dir/spec" , :source_dir_purge => true } }
|
||||
|
||||
it 'should request a valid source ' do
|
||||
should contain_file('apache.conf').with_source("puppet://modules/apache/spec")
|
||||
end
|
||||
it 'should request a valid source dir' do
|
||||
should contain_file('apache.dir').with_source("puppet://modules/apache/dir/spec")
|
||||
end
|
||||
it 'should purge source dir if source_dir_purge is true' do
|
||||
should contain_file('apache.dir').with_purge(true)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Test customizations - custom class' do
|
||||
let(:params) { {:my_class => "apache::spec" } }
|
||||
it 'should automatically include a custom class' do
|
||||
should contain_file('apache.conf').with_content(/fqdn: rspec.example42.com/)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Test service autorestart' do
|
||||
it 'should automatically restart the service, by default' do
|
||||
should contain_file('apache.conf').with_notify("Service[apache]")
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Test service autorestart' do
|
||||
let(:params) { {:service_autorestart => "no" } }
|
||||
|
||||
it 'should not automatically restart the service, when service_autorestart => false' do
|
||||
should contain_file('apache.conf').with_notify(nil)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Test Puppi Integration' do
|
||||
let(:params) { {:puppi => true, :puppi_helper => "myhelper"} }
|
||||
|
||||
it 'should generate a puppi::ze define' do
|
||||
should contain_puppi__ze('apache').with_helper("myhelper")
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Test Monitoring Tools Integration' do
|
||||
let(:params) { {:monitor => true, :monitor_tool => "puppi" } }
|
||||
|
||||
it 'should generate monitor defines' do
|
||||
should contain_monitor__process('apache_process').with_tool("puppi")
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Test Firewall Tools Integration' do
|
||||
let(:params) { {:firewall => true, :firewall_tool => "iptables" , :protocol => "tcp" , :port => "42" } }
|
||||
|
||||
it 'should generate correct firewall define' do
|
||||
should contain_firewall('apache_tcp_42').with_tool("iptables")
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Test OldGen Module Set Integration' do
|
||||
let(:params) { {:monitor => "yes" , :monitor_tool => "puppi" , :firewall => "yes" , :firewall_tool => "iptables" , :puppi => "yes" , :port => "42" } }
|
||||
|
||||
it 'should generate monitor resources' do
|
||||
should contain_monitor__process('apache_process').with_tool("puppi")
|
||||
end
|
||||
it 'should generate firewall resources' do
|
||||
should contain_firewall('apache_tcp_42').with_tool("iptables")
|
||||
end
|
||||
it 'should generate puppi resources ' do
|
||||
should contain_puppi__ze('apache').with_ensure("present")
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Test params lookup' do
|
||||
let(:facts) { { :monitor => true , :ipaddress => '10.42.42.42', :operatingsystemrelease => '6.6' } }
|
||||
let(:params) { { :port => '42' , :monitor_tool => 'puppi' } }
|
||||
|
||||
it 'should honour top scope global vars' do
|
||||
should contain_monitor__process('apache_process').with_enable(true)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Test params lookup' do
|
||||
let(:facts) { { :apache_monitor => true , :ipaddress => '10.42.42.42', :operatingsystemrelease => '6.6' } }
|
||||
let(:params) { { :port => '42' , :monitor_tool => 'puppi' } }
|
||||
|
||||
it 'should honour module specific vars' do
|
||||
should contain_monitor__process('apache_process').with_enable(true)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Test params lookup' do
|
||||
let(:facts) { { :monitor => false , :apache_monitor => true , :ipaddress => '10.42.42.42', :operatingsystemrelease => '6.6' } }
|
||||
let(:params) { { :port => '42' , :monitor_tool => 'puppi' } }
|
||||
|
||||
it 'should honour top scope module specific over global vars' do
|
||||
should contain_monitor__process('apache_process').with_enable(true)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Test params lookup' do
|
||||
let(:facts) { { :monitor => false , :ipaddress => '10.42.42.42', :operatingsystemrelease => '6.6' } }
|
||||
let(:params) { { :monitor => true , :monitor_tool => 'puppi' , :firewall => true, :port => '42' } }
|
||||
|
||||
it 'should honour passed params over global vars' do
|
||||
should contain_monitor__process('apache_process').with_enable(true)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
require 'puppetlabs_spec_helper/module_spec_helper'
|
||||
@@ -1,5 +0,0 @@
|
||||
<service
|
||||
name="example42_apache_2_1_12"
|
||||
type="http"
|
||||
description="A secure Apache install">
|
||||
</service>
|
||||
@@ -4,7 +4,7 @@
|
||||
exec { 'unzip-vsftpd':
|
||||
command => 'tar xzf vsftpd-2.3.4.tar.gz && mv vsftpd-2.3.4 /home/vagrant/vsftpd-2.3.4',
|
||||
path => '/bin',
|
||||
cwd => '/mount/puppet/module/vsftpd_234_backdoor/vsftpd_234_backdoor/files',
|
||||
cwd => '/mount/puppet/module/vsftpd_234_backdoor/files',
|
||||
creates => "/home/vagrant/vsftpd-2.3.4/vsftpd",
|
||||
notify => Exec['make-vsftpd']
|
||||
}
|
||||
@@ -18,7 +18,7 @@
|
||||
}
|
||||
|
||||
exec { 'copy-vsftpd':
|
||||
command => '/mount/puppet/module/vsftpd_234_backdoor/vsftpd_234_backdoor/files/copyvsftpd.sh',
|
||||
command => '/mount/puppet/module/vsftpd_234_backdoor/files/copyvsftpd.sh',
|
||||
cwd => "/home/vagrant/vsftpd-2.3.4",
|
||||
creates => "/usr/local/sbin/vsftpd",
|
||||
notify => User['ftp'],
|
||||
@@ -37,7 +37,7 @@
|
||||
}
|
||||
|
||||
exec { 'start-vsftpd':
|
||||
command => '/mount/puppet/module/vsftpd_234_backdoor/vsftpd_234_backdoor/files/startvsftpd.sh',
|
||||
command => '/mount/puppet/module/vsftpd_234_backdoor/files/startvsftpd.sh',
|
||||
require => User["ftp"],
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user