nginx_conf ресурс
Используйте nginx_conf ресурс Chef InSpec для проверки данных конфигурации сервера NGINX, расположенного по адресу /etc/nginx/nginx.conf на платформах Linux и Unix.
Стабильность: Экспериментальная
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Версия
Этот ресурс впервые стал доступен в версии v1.37.6 InSpec.
Синтаксис
Блок ресурса nginx_conf объявляет данные конфигурации клиента NGINX для проверки:
describe nginx_conf.params['pid'] do
it { should cmp 'logs/nginx.pid' }
end
где
-
nginx_conf— это ресурс для ссылки на вашу конфигурацию NGINX -
paramsполучает доступ ко всем его параметрам -
params['pid']выбирает записьpidиз глобальной конфигурации NGINX -
{ should cmp 'logs/nginx.pid' }проверяет, установлено ли значение PID вlogs/nginx.pid(черезcmpматчер)
Примеры
Следующие примеры показывают, как использовать этот ресурс проверки аудита Chef InSpec.
Найти определенный сервер
servers = nginx_conf.servers
domain2 = servers.find { |s| s.params['server_name'].flatten.include? 'domain2.com' }
describe 'No server serves domain2' do
subject { domain2 }
it { should be_nil }
end
Проверка параметра непосредственно из конфигурации
describe nginx_conf.params['worker_processes'].flatten do
it { should cmp 5 }
end
Матчеры
Полный список доступных матчеров можно найти на нашей странице матчеров.
http
Получает все http записи в файле конфигурации.
nginx_conf.http
=> nginx_conf /etc/nginx/nginx.conf, http entries
Он предоставляет дальнейший доступ ко всем отдельным записям, серверам и расположениям.
nginx_conf.http.entries
=> [nginx_conf /etc/nginx/nginx.conf, http entry ...]
nginx_conf.http.servers
=> [nginx_conf /etc/nginx/nginx.conf, server entry ...]
nginx_conf.http.locations
=> [nginx_conf /etc/nginx/nginx.conf, location entry ...]
Вы можете получить доступ к каждому из них из массива и дополнительно его проверить (см. ниже).
серверы
Получить все servers записи в конфигурации:
# all servers across all configs aggregated:
nginx_conf.servers
=> [nginx_conf /etc/nginx/nginx.conf, server entry ...]
# servers that belong to a specific http entry:
nginx_conf.http.entries[0].servers
=> [nginx_conf /etc/nginx/nginx.conf, server entry ...]
Серверы предоставляют доступ ко всем их расположениям, родительской записи http и параметрам непосредственно из конфигурации:
server = nginx_conf.servers[0]
server.locations
=> [nginx_conf /etc/nginx/nginx.conf, location entry ...]
server.parent
=> nginx_conf /etc/nginx/nginx.conf, http entry
server.params
=> {"listen"=>[["85"]],
"server_name"=>[["domain1.com", "www.domain1.com"]],
"root"=>[["html"]],
"location"=>[{"_"=>["~", "\\.php$"], "fastcgi_pass"=>[["127.0.0.1:1025"]]}]}
расположения
Получить все location записи в конфигурации:
# all locations across all configs aggregated:
nginx_conf.locations
=> [nginx_conf /etc/nginx/nginx.conf, location entry ...]
# locations of a http entry aggregated:
nginx_conf.http.entries[0].locations
=> [nginx_conf /etc/nginx/nginx.conf, location entry ...]
# locations of a specific server:
nginx_conf.servers[0].locations
=> [nginx_conf /etc/nginx/nginx.conf, location entry ...]
Расположения предоставляют доступ к родительской записи сервера и параметрам непосредственно из конфигурации:
location = nginx_conf.locations[0]
location.parent
=> nginx_conf /etc/nginx/nginx.conf, server entry
location.params
=> {"_"=>["~", "\\.php$"], "fastcgi_pass"=>[["127.0.0.1:1025"]]}
путь к файлу конфигурации
Если файл конфигурации NGINX расположен не по умолчанию, /etc/nginx/nginx.conf, путь можно указать в качестве первого параметра блока describe:
describe nginx_conf('/opt/nginx/nginx.conf').params['pid'] do
it { should cmp 'logs/nginx.pid' }
end
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/nginx_conf/