c4b8538128
* fix(redhat): use correct dirs for redhat family Red hat family distributions do not implement sites-enabled nor vhosts.d directories and all virtual hosts are under /etc/httpd/conf.d Redhat based distros don't have /etc/init.d/httpd to rotate logs. Default for them uses systemctl reload to rotate logs
121 lines
3.5 KiB
Ruby
121 lines
3.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
control 'apache configuration' do
|
|
title 'should match desired lines'
|
|
|
|
apachectl = 'apachectl -t'
|
|
case platform[:family]
|
|
when 'debian'
|
|
vhostdir = '/etc/apache2/sites-available'
|
|
logrotatedir = '/etc/logrotate.d/apache2'
|
|
logdir = '/var/log/apache2'
|
|
moddir = '/etc/apache2/mods-enabled'
|
|
sitesdir = '/etc/apache2/sites-enabled'
|
|
when 'suse'
|
|
vhostdir = '/etc/apache2/vhosts.d'
|
|
logrotatedir = '/etc/logrotate.d/apache2'
|
|
logdir = '/var/log/apache2'
|
|
moddir = '/etc/apache2/mods-enabled'
|
|
sitesdir = '/etc/apache2/vhosts.d'
|
|
when 'redhat', 'fedora'
|
|
vhostdir = '/etc/httpd/conf.d'
|
|
logrotatedir = '/etc/logrotate.d/httpd'
|
|
logdir = '/var/log/httpd'
|
|
moddir = '/etc/httpd/conf.modules.d'
|
|
sitesdir = '/etc/httpd/conf.d'
|
|
apachectl = 'httpd -t'
|
|
when 'gentoo'
|
|
vhostdir = '/etc/apache2/vhosts.d'
|
|
logrotatedir = '/etc/logrotate.d/apache2'
|
|
logdir = '/var/log/apache2'
|
|
moddir = '/etc/apache2/mods-enabled'
|
|
sitesdir = '/etc/apache2/sites-enabled'
|
|
# `linux` here is sufficient for `arch`
|
|
when 'linux', 'arch'
|
|
vhostdir = '/etc/httpd/conf/vhosts'
|
|
logrotatedir = '/etc/logrotate.d/httpd'
|
|
logdir = '/var/log/httpd'
|
|
moddir = '/etc/httpd/conf.modules.d'
|
|
sitesdir = '/etc/httpd/sites-enabled'
|
|
when 'bsd'
|
|
vhostdir = '/usr/local/etc/apache24/Includes'
|
|
logdir = '/var/log'
|
|
logrotatedir = '/usr/local/etc/logrotate.d/apache2'
|
|
moddir = '/usr/local/etc/apache24/modules.d'
|
|
# https://docs.freebsd.org/en/books/handbook/network-servers/#_virtual_hosting
|
|
# All done under `/usr/local/etc/apache24/httpd.conf`
|
|
sitesdir = '/usr/local/etc/apache24'
|
|
end
|
|
describe command(apachectl) do
|
|
its('stdout') { should eq '' }
|
|
its('stderr') { should include 'Syntax OK' }
|
|
its('exit_status') { should eq 0 }
|
|
end
|
|
describe file(vhostdir) do
|
|
it { should exist }
|
|
it { should be_directory }
|
|
its('type') { should eq :directory }
|
|
end
|
|
describe file(logrotatedir) do
|
|
it { should exist }
|
|
its('type') { should eq :file }
|
|
end
|
|
describe file(logdir) do
|
|
it { should exist }
|
|
it { should be_directory }
|
|
its('type') { should eq :directory }
|
|
end
|
|
describe file(moddir) do
|
|
it { should exist }
|
|
it { should be_directory }
|
|
its('type') { should eq :directory }
|
|
end
|
|
describe file(sitesdir) do
|
|
it { should exist }
|
|
it { should be_directory }
|
|
its('type') { should eq :directory }
|
|
end
|
|
end
|
|
|
|
control 'apache configuration (unique)' do
|
|
title 'should match desired lines'
|
|
|
|
config_file_group = 'root'
|
|
case platform[:family]
|
|
when 'debian'
|
|
config_file = '/etc/apache2/apache2.conf'
|
|
wwwdir = '/srv'
|
|
when 'suse'
|
|
config_file = '/etc/apache2/httpd.conf'
|
|
wwwdir = '/srv/www'
|
|
when 'redhat', 'fedora'
|
|
config_file = '/etc/httpd/conf/httpd.conf'
|
|
wwwdir = '/var/www'
|
|
when 'gentoo'
|
|
config_file = '/etc/apache2/httpd.conf'
|
|
wwwdir = '/var/www'
|
|
when 'linux', 'arch'
|
|
config_file = '/etc/httpd/conf/httpd.conf'
|
|
wwwdir = '/srv/http'
|
|
when 'bsd'
|
|
config_file = '/usr/local/etc/apache24/httpd.conf'
|
|
config_file_group = 'wheel'
|
|
wwwdir = '/usr/local/www/apache24/'
|
|
end
|
|
describe file(config_file) do
|
|
it { should be_file }
|
|
it { should be_grouped_into config_file_group }
|
|
its('mode') { should cmp '0644' }
|
|
its('content') do
|
|
should include(
|
|
'This file is managed by Salt! Do not edit by hand!'
|
|
)
|
|
end
|
|
end
|
|
describe file(wwwdir) do
|
|
it { should exist }
|
|
it { should be_directory }
|
|
its('type') { should eq :directory }
|
|
end
|
|
end
|