Spec-Zone.ru › Chef 18

parse_config ресурс

[править на GitHub]

Используйте 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, а затем выполнить проверку по этому выводу
  • может использовать параметры для определения способа парсинга конфигурационных данных

Параметры

Этот ресурс поддерживает несколько параметров для парсинга конфигурационных данных. Используйте параметры в блоке options , указанном за пределами (и непосредственно перед) фактическим тестом. Например:

options = {
    assignment_regex: /^\s*([^:]*?)\s*:\s*(.*?)\s*$/,
    multiple_values: true
  }

output = command('some-command').stdout

describe parse_config(output,  options) do
  its('setting') { should eq 1 }
end

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'

Примеры

Этот ресурс основан на ресурсе parse_config_file. См. parse_config_file ресурс для примеров.

Сопоставители

Полный список доступных сопоставителей можно найти на нашей странице сопоставителей.

© 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API