|
|
|
|
|
|
|
|
|
|
|
# Set defaults, use debian as base |
|
|
|
|
|
|
|
|
|
|
|
server_available = '/etc/nginx/sites-available' |
|
|
|
|
|
server_enabled = '/etc/nginx/sites-enabled' |
|
|
|
|
|
|
|
|
|
|
|
# Override by OS |
|
|
|
|
|
case os[:name] |
|
|
|
|
|
when 'redhat', 'centos', 'fedora' |
|
|
|
|
|
server_available = '/etc/nginx/conf.d' |
|
|
|
|
|
server_enabled = '/etc/nginx/conf.d' |
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
control 'Nginx configuration' do |
|
|
control 'Nginx configuration' do |
|
|
title 'should match desired lines' |
|
|
title 'should match desired lines' |
|
|
|
|
|
|
|
|
|
|
|
# main configuration |
|
|
describe file('/etc/nginx/nginx.conf') do |
|
|
describe file('/etc/nginx/nginx.conf') 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' } |
|
|
its('mode') { should cmp '0644' } |
|
|
its('mode') { should cmp '0644' } |
|
|
end |
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
# snippets configuration |
|
|
|
|
|
describe file('/etc/nginx/snippets/letsencrypt.conf') do |
|
|
|
|
|
it { should be_file } |
|
|
|
|
|
it { should be_owned_by 'root' } |
|
|
|
|
|
it { should be_grouped_into 'root' } |
|
|
|
|
|
its('mode') { should cmp '0644' } |
|
|
|
|
|
its('content') { should include 'location ^~ /.well-known/acme-challenge/ {' } |
|
|
|
|
|
its('content') { should include 'proxy_pass http://localhost:9999;' } |
|
|
|
|
|
its('content') { should include '{' } |
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
# sites configuration |
|
|
|
|
|
[server_available, server_enabled].each do |dir| |
|
|
|
|
|
|
|
|
|
|
|
describe file ("#{dir}/default") do |
|
|
|
|
|
it { should_not exist } |
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
describe file ("#{dir}/mysite") do |
|
|
|
|
|
it { should be_file } |
|
|
|
|
|
it { should be_owned_by 'root' } |
|
|
|
|
|
it { should be_grouped_into 'root' } |
|
|
|
|
|
its('mode') { should cmp '0644' } |
|
|
|
|
|
its('content') { should include 'server_name localhost;' } |
|
|
|
|
|
its('content') { should include 'listen 80 default_server;' } |
|
|
|
|
|
its('content') { should include 'index index.html index.htm;' } |
|
|
|
|
|
its('content') { should include 'location ~ .htm {' } |
|
|
|
|
|
its('content') { should include 'try_files $uri $uri/ =404;' } |
|
|
|
|
|
its('content') { should include 'include snippets/letsencrypt.conf;' } |
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
end |
|
|
end |
|
|
end |