parse_config ресурс
Используйте ресурс проверки конфигурации Chef InSpec, чтобы протестировать произвольные конфигурационные файлы.
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Версия
Этот ресурс впервые стал доступен в версии v1.0.0 InSpec.
Синтаксис
Блок ресурса parse_config объявляет расположение конфигурационного параметра для тестирования, а затем значение, которое нужно проверить. Поскольку этот ресурс полагается на произвольные конфигурационные файлы, само тестирование часто произвольно и основано на пользовательском коде Ruby:
output = command('some-command').stdout
describe parse_config(output, { data_config_option: value } ) do
its('setting') { should eq 1 }
end
или:
audit = command('/sbin/auditctl -l').stdout
options = {
assignment_regex: /^\s*([^:]*?)\s*:\s*(.*?)\s*$/,
multiple_values: true
}
describe parse_config(audit, options) do
its('setting') { should eq 1 }
end
где каждое тестирование
- Должно объявить расположение конфигурационного файла, который нужно протестировать
- Должно объявить один (или несколько) параметров для тестирования
- Может выполнить команду, чтобы
stdout, а затем запустить тест на этом выводе - Может использовать параметры для определения того, как будет анализироваться конфигурационные данные
Обработчики
Полный список доступных обработчиков можно найти на нашей странице обработчиков.
assignment_regex
Используйте assignment_regex для проверки значения ключа с помощью регулярного выражения:
'key = value'
можно протестировать с помощью следующего регулярного выражения, которое определяет присвоение от ключа к значению:
assignment_regex: /^\s*([^=]*?)\s*=\s*(.*?)\s*$/
comment_char
Используйте comment_char для проверки комментариев в конфигурационном файле:
comment_char: '#'
key_values
Используйте key_values для проверки того, сколько значений содержит ключ:
key = a b c
содержит три значения. Чтобы проверить, что значение содержит только одно, используйте:
key_values: 1
multiple_values
Используйте multiple_values в случае, если исходный файл использует один и тот же ключ несколько раз. Все значения будут агрегированы в массив:
# # file structure:
# key = a
# key = b
# key2 = c
params['key'] = ['a', 'b']
params['key2'] = ['c']
Для использования обычного сопоставления ключ-значение используйте multiple_values: false.
# # file structure:
# key = a
# key = b
# key2 = c
params['key'] = 'b'
params['key2'] = 'c'
standalone_comments
Используйте standalone_comments для анализа комментариев как строки, в противном случае разрешаются встроенные комментарии:
'key = value # comment'
params['key'] = 'value # comment'
Используйте standalone_comments: false, для анализа следующего:
'key = value # comment'
params['key'] = 'value'
© 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/parse_config/