Файл конфигурации InSpec
В данном документе описан формат файла конфигурации Chef InSpec, введённый в версии 3.5 InSpec и расширенный в последующих версиях.
Расположение файла конфигурации
По умолчанию, Chef InSpec ищет файл конфигурации в ~/.inspec/config.json. Chef InSpec может работать и без файла конфигурации.
Вы также можете указать расположение с помощью --config. Например, чтобы запустить shell с файлом конфигурации в /etc/inspec, используйте inspec shell --config /etc/inspec/config.json.
Версии формата файла конфигурации
Файлы конфигурации должны содержать ключевой элемент верхнего уровня version, который указывает формат файла. Это позволяет добавлять новые поля, не ломая старые установки.
Версия 1.1
Полный пример
{
"version": "1.1",
"cli_options":{
"color": "true"
},
"credentials": {
"ssh": {
"my-target": {
"host":"somewhere.there.com",
"user":"bob"
}
}
},
"reporter": {
"automate" : {
"stdout" : false,
"url" : "https://YOUR_A2_URL/data-collector/v0/",
"token" : "YOUR_A2_API_TOKEN",
"insecure" : true,
"node_name" : "inspec_test_node",
"environment" : "prod"
}
}
}
- version
- Должно иметь значение ‘1.1’.
- cli_options
- Любой параметр командной строки в длинном формате, без начальных дефисов.
- credentials
- Параметры, специфичные для транспортного средства. Храните параметры, сперва, используя имя транспортного средства, а затем — имя, которое вы будете использовать позже. Сочетание имени транспортного средства и выбранного вами имени может использоваться в параметре
--targetдляinspec exec, как--target transport-name://connection-name.
Например, если файл конфигурации содержит:
{
"credentials": {
"winrm": {
"myconn": {
"user": "Administrator",
"host": "prod01.east.example.com",
"disable_sspi": true,
"connection_retries": 10
}
}
}
}
Тогда используйте -t winrm://myconn для подключения к хосту с заданными дополнительными параметрами.
Каждый транспорт Train предлагает различные параметры. Использование механизма наборов данных credentials позволяет легко устанавливать параметры, которые недоступны через URI Train.
Вы можете иметь любое количество наборов credentials в файле конфигурации.
Если вы используете целевой URI и часть после :// не может быть сопоставлена с именем набора credentials, Chef InSpec отправит URI в Train для обработки как URI Train. Таким образом, вы всё ещё можете ssh://someuser@myhost.com.
Вы можете использовать набор credentials и затем переопределить отдельные параметры с помощью параметров командной строки.
Наборы credentials предназначены для совместной работы с внутренней системой хранения credentials для транспорта. Например, если у вас есть файл ~/.ssh/config, указывающий, что файл sally-key.pem должен использоваться с хостом somehost.com, и у вас есть набор credentials, который указывает на этот хост, то при попытке подключения Train к этому хосту, библиотека SSH автоматически воспользуется файлом конфигурации SSH для использования указанного ключа.
reporter
Вы также можете задать параметры вывода (reporter) в файле конфигурации. Подробную информацию смотрите на странице с отчётами.
Версия 1.2
Версия 1.2 добавляет поле верхнего уровня «plugins».
plugins
Используйте поле конфигурации верхнего уровня plugins для предоставления настроек конфигурации для плагинов, которые вы используете с Chef InSpec. Обратитесь к документации используемого плагина для получения подробной информации о доступных настройках.
Чтобы использовать эту новую функцию, добавьте новый ключ верхнего уровня в свой файл конфигурации под именем plugins. Затем создайте подключаемый элемент для каждого плагина, который вы хотите настроить. Каждый плагин будет иметь пару «ключ-значение», которую он может использовать по своему усмотрению — Chef Inspec не определяет структуру. Вот пример, с использованием вымышленных плагинов:
{
"version":"1.2",
"plugins": {
"inspec-training-wheels": {
"diameter": "4 inches"
},
"inspec-input-secrets": {
"security-tokens: [
"123456789".
"abcdef252875"
]
}
}
}
© 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/config/