fix(server-status): enable module in Debian family

This commit is contained in:
Javier Bértoli 2020-07-18 13:26:39 -03:00
parent b25362535a
commit 632802a5a9
10 changed files with 86 additions and 40 deletions

View File

@ -1,3 +1,7 @@
########################################################################
# File managed by Salt at <{{ source }}>.
# Your changes will be overwritten.
########################################################################
<Location "/server-status"> <Location "/server-status">
SetHandler server-status SetHandler server-status
{%- if apache.version == '2.4' %} {%- if apache.version == '2.4' %}

View File

@ -19,16 +19,10 @@ include:
- module: apache-reload - module: apache-reload
- service: apache - service: apache
{% if grains['os_family']=="Debian" %} {%- if grains['os_family'] == "Debian" %}
a2endisconf server-status: a2enconf server-status:
cmd.run: cmd.run:
{% if apache.get('server_status_require') is defined %} - unless: 'test -L /etc/apache2/conf-enabled/server-status.conf'
- name: a2enconf server-status
- unless: test -L /etc/apache2/conf-enabled/server-status.conf
{% else %}
- name: a2disconf server-status
- onlyif: test -L /etc/apache2/conf-enabled/server-status.conf
{% endif %}
- order: 225 - order: 225
- require: - require:
- pkg: apache - pkg: apache

View File

@ -157,7 +157,7 @@ suites:
base: base:
'*': '*':
- apache - apache
- apache.mod_security - apache.config
pillars: pillars:
top.sls: top.sls:
base: base:
@ -168,3 +168,21 @@ suites:
verifier: verifier:
inspec_tests: inspec_tests:
- path: test/integration/default - path: test/integration/default
- name: modules
provisioner:
state_top:
base:
'*':
- apache
- apache.mod_security
- apache.server_status
pillars:
top.sls:
base:
'*':
- apache
pillars_from_files:
apache.sls: test/salt/pillar/modules.sls
verifier:
inspec_tests:
- path: test/integration/modules

View File

@ -3,7 +3,19 @@
control 'apache configuration' do control 'apache configuration' do
title 'should match desired lines' title 'should match desired lines'
describe file('/etc/apache2/apache2.conf') do config_file =
case platform[:family]
when 'debian'
'/etc/apache2/apache2.conf'
when 'redhat', 'fedora'
'/etc/httpd/conf/httpd.conf'
when 'suse'
'/etc/apache2/httpd.conf'
# `linux` here is sufficient for `arch`
when 'linux'
'/etc/httpd/conf/httpd.conf'
end
describe file(config_file) do
it { should be_file } it { should be_file }
it { should be_owned_by 'root' } it { should be_owned_by 'root' }
it { should be_grouped_into 'root' } it { should be_grouped_into 'root' }
@ -15,3 +27,13 @@ control 'apache configuration' do
end end
end end
end end
control 'apache configuration' do
title 'should be valid'
describe command('apachectl -t') do
its('stdout') { should eq '' }
its('stderr') { should include 'Syntax OK' }
its('exit_status') { should eq 0 }
end
end

View File

@ -1,20 +1,17 @@
# frozen_string_literal: true # frozen_string_literal: true
# Overide by OS
package_name = 'bash'
package_name = 'cronie' if (os[:name] == 'centos') && os[:release].start_with?('6')
control 'apache package' do control 'apache package' do
title 'should be installed' title 'should be installed'
package_name = package_name =
case platform[:family] case platform[:family]
when 'debian', 'suse' when 'debian', 'suse'
'apache2' 'apache2'
when 'redhat', 'fedora' when 'redhat', 'fedora'
'httpd' 'httpd'
when 'arch' # `linux` here is sufficient for `arch`
'apache' when 'linux'
'apache'
end end
describe package(package_name) do describe package(package_name) do

View File

@ -1,13 +1,17 @@
# frozen_string_literal: true # frozen_string_literal: true
# Overide by OS
service_name = 'apache2'
service_name = 'httpd' if (os[:name] == 'centos')
control 'apache service' do control 'apache service' do
impact 0.5 impact 0.5
title 'should be running and enabled' title 'should be running and enabled'
service_name =
case platform[:family]
when 'debian', 'suse'
'apache2'
when 'redhat', 'fedora', 'linux'
'httpd'
end
describe service(service_name) do describe service(service_name) do
it { should be_enabled } it { should be_enabled }
it { should be_running } it { should be_running }

View File

@ -9,6 +9,8 @@ control 'apache mod_security configuration' do
'/etc/httpd/conf.d/mod_security.conf' '/etc/httpd/conf.d/mod_security.conf'
when 'debian' when 'debian'
'/etc/modsecurity/modsecurity.conf-recommended' '/etc/modsecurity/modsecurity.conf-recommended'
when 'suse'
'/etc/apache2/conf.d/mod_security2.conf'
end end
describe file(modspec_file) do describe file(modspec_file) do

View File

@ -5,12 +5,12 @@ control 'apache mod_security package' do
package_name = package_name =
case platform[:family] case platform[:family]
when 'debian', 'suse' when 'debian'
'libapache2-mod-security2' 'libapache2-mod-security2'
when 'redhat', 'fedora' when 'redhat', 'fedora'
'mod_security' 'mod_security'
when 'suse' when 'suse'
'apache2-mod_security2' 'apache2-mod_security2'
end end
describe package(package_name) do describe package(package_name) do

View File

@ -3,14 +3,14 @@
control 'apache server_status configuration' do control 'apache server_status configuration' do
title 'should match desired lines' title 'should match desired lines'
server_status_stanza = <<-SS_STANZA server_status_stanza = <<~SS_STANZA
<Location "/server-status"> <Location "/server-status">
SetHandler server-status SetHandler server-status
Require local Require local
Require host foo.example.com Require host foo.example.com
Require ip 10.8.8.0/24 Require ip 10.8.8.0/24
</Location> </Location>
SS_STANZA SS_STANZA
confdir = confdir =
case platform[:family] case platform[:family]
@ -20,7 +20,8 @@ SS_STANZA
'/etc/httpd/conf.d' '/etc/httpd/conf.d'
when 'suse' when 'suse'
'/etc/apache2/conf.d' '/etc/apache2/conf.d'
when 'arch' # `linux` here is sufficient for `arch`
when 'linux'
'/etc/httpd/conf/extra' '/etc/httpd/conf/extra'
end end

View File

@ -1,13 +1,17 @@
# frozen_string_literal: true # frozen_string_literal: true
# Overide by OS
service_name = 'apache2'
service_name = 'httpd' if (os[:name] == 'centos')
control 'apache service' do control 'apache service' do
impact 0.5 impact 0.5
title 'should be running and enabled' title 'should be running and enabled'
service_name =
case platform[:family]
when 'debian', 'suse'
'apache2'
when 'redhat', 'fedora', 'linux'
'httpd'
end
describe service(service_name) do describe service(service_name) do
it { should be_enabled } it { should be_enabled }
it { should_not be_running } it { should_not be_running }