Ресурс inspec_waiver_file_entry
Эта страница сгенерирована из исходного кода Chef Infra Client. Чтобы предложить изменение, отредактируйте файл inspec_waiver_file_entry.rb и отправьте запрос на вытягивание в репозиторий Chef Infra Client.
Используйте ресурс inspec_waiver_file_entry для добавления или удаления записей из файла InSpec waiver. Его можно использовать совместно с фазой проверки соответствия.
Новое в Chef Infra Client 17.1.
Синтаксис
Полный синтаксис всех свойств, доступных для ресурса inspec_waiver_file_entry:
inspec_waiver_file_entry 'name' do
backup false, Integer # default value: false
control String # default value: 'name' unless specified
expiration String
file_path String
justification String
run_test true, false
action Symbol # defaults to :add if not specified
endгде:
-
inspec_waiver_file_entry— это ресурс. -
name— это имя, заданное для блока ресурса. -
actionопределяет действия, которые Chef Infra Client предпримет для приведения узла к нужному состоянию. -
backup,control,expiration,file_path,justification, иrun_test— доступные для этого ресурса свойства.
Действия
Ресурс inspec_waiver_file_entry имеет следующие действия:
:add- (по умолчанию)
:nothing- Этот блок ресурса не действует, пока не будет уведомлен другим ресурсом о необходимости выполнения действия. После уведомления этот блок ресурса выполняется немедленно или помещается в очередь для выполнения в конце выполнения Chef Infra Client.
:remove
Свойства
Ресурс inspec_waiver_file_entry имеет следующие свойства:
-
backup - Тип в Ruby: false, Integer | Значение по умолчанию:
falseКоличество резервных копий, которые нужно сохранить в
/var/chef/backup(для платформ на основе UNIX и Linux) илиC:/chef/backup(для платформы Microsoft Windows). Установите вfalse, чтобы не сохранять резервные копии.
-
control - Тип в Ruby: String | Значение по умолчанию:
The resource block's nameИмя правила, которое добавляется или удаляется в файл waiver.
-
expiration - Тип в Ruby: String
Дата истечения срока действия данного waiver в формате ГГГГ-ММ-ДД
-
file_path - Тип в Ruby: String | Значение по умолчанию:
`/etc/chef/inspec_waivers.yml` on Linux/Unix and `C:\chef\inspec_waivers.yml` on Windows|REQUIREDПуть к файлу waiver, который изменяется
-
justification - Тип в Ruby: String
Любой текст, который вы хотите использовать, включая причину waiver и лицо, утвердившее waiver.
-
run_test - Тип в Ruby: true, false
Если присутствует и имеет значение
true, правило будет выполняться и отчитываться, но ошибки в нем не приведут к общему сбою выполнения. Если отсутствует или имеет значениеfalse, правило не будет выполняться.
Общие функциональные возможности ресурсов
Ресурсы Chef включают общие свойства, уведомления и защиты ресурсов.
Общие свойства
Следующие свойства являются общими для всех ресурсов:
compile_time-
Тип в Ruby: true, false | Значение по умолчанию:
falseУправление фазой, в которой ресурс выполняется на узле. Установите в true, чтобы запустить во время построения коллекции ресурсов (фаза
compile phase). Установите в false, чтобы запустить во время настройки узла Chef Infra Client (фазаconverge phase). ignore_failure-
Тип в Ruby: true, false, :quiet | Значение по умолчанию:
falseПродолжать выполнение рецепта, если ресурс завершится ошибкой по любой причине.
:quietне отобразит полный трассировку стека, и рецепт продолжит выполнение, если ресурс завершится ошибкой. retries-
Тип в Ruby: Integer | Значение по умолчанию:
0Количество попыток перехватить исключения и повторить ресурс.
retry_delay-
Тип в Ruby: Integer | Значение по умолчанию:
2Задержка в секундах между попытками повтора.
sensitive-
Тип в Ruby: true, false | Значение по умолчанию:
falseОбеспечьте, чтобы конфиденциальные данные ресурсов не регистрировались Chef Infra Client.
Уведомления
-
notifies -
Тип в Ruby: Symbol, 'Chef::Resource[String]'
Ресурс может уведомить другой ресурс о необходимости выполнения действия при изменении его состояния. Укажите
'resource[name]',:actionресурс должен принять, и:timerдля этого действия. Один ресурс может уведомить несколько ресурсов; используйте операторnotifiesдля каждого уведомляемого ресурса.Если указанный ресурс не существует, возникает ошибка. В отличие от этого,
subscribesне завершается ошибкой, если исходный ресурс не найден.
Таймер указывает момент выполнения уведомления во время выполнения Chef Infra Client. Доступны следующие таймеры:
:before-
Указывает, что действие с уведомленным ресурсом должно выполняться до обработки блока ресурса, в котором находится уведомление.
:delayed-
По умолчанию. Указывает, что уведомление должно помещаться в очередь и затем выполняться в конце выполнения Chef Infra Client.
-
:immediate,:immediately -
Указывает, что уведомление должно выполняться немедленно для каждого уведомленного ресурса.
Синтаксис для notifies:
notifies :action, 'resource[name]', :timer
-
subscribes -
Тип в Ruby: Symbol, 'Chef::Resource[String]'
Ресурс может следить за другим ресурсом и выполнять действие, если состояние отслеживаемого ресурса изменится. Укажите 'resource[name]', :action для выполнения, а затем :timer для этого действия.
Обратите внимание, что subscribes не применяет указанное действие к ресурсу, за которым он следит — например:
file '/etc/nginx/ssl/example.crt' do
mode '0600'
owner 'root'
end
service 'nginx' do
subscribes :reload, 'file[/etc/nginx/ssl/example.crt]', :immediately
end
В этом случае свойство subscribes перезагружает службу nginx всякий раз, когда файл сертификата, расположенный в /etc/nginx/ssl/example.crt, обновляется. subscribes не вносит никаких изменений в сам файл сертификата, а только следит за изменениями в файле и выполняет действие :reload для своего ресурса (в этом примере nginx) при обнаружении изменений.
Если другой ресурс не существует, подписка не вызовет ошибку. Это отличается от более строгих семантики notifies, которая приведет к ошибке, если другой ресурс не существует.
Таймер указывает момент выполнения уведомления во время выполнения Chef Infra Client. Доступны следующие таймеры:
:before-
Указывает, что действие с уведомленным ресурсом должно выполняться до обработки блока ресурса, в котором находится уведомление.
:delayed-
По умолчанию. Указывает, что уведомление должно помещаться в очередь и затем выполняться в конце выполнения Chef Infra Client.
-
:immediate,:immediately -
Указывает, что уведомление должно выполняться немедленно для каждого уведомленного ресурса.
Синтаксис для subscribes:
subscribes :action, 'resource[name]', :timer
Защиты
Свойство защиты может использоваться для оценки состояния узла во время фазы выполнения Chef Infra Client. Основываясь на результатах этой оценки, свойство защиты затем сообщает Chef Infra Client, следует ли продолжать выполнение ресурса. Свойство защиты принимает значение строки или значение блока Ruby:
- Строка выполняется как команда оболочки. Если команда возвращает
0, защита применяется. Если команда возвращает любое другое значение, свойство защиты не применяется. Строчные защиты в powershell_script выполняют команды Windows PowerShell и могут возвращатьtrueв дополнение к0. - Блок выполняется как код Ruby, который должен возвратить либо
trueилиfalse. Если блок возвращаетtrue, свойство защиты применяется. Если блок возвращаетfalse, свойство защиты не применяется.
Свойство защиты полезно для обеспечения идемпотентности ресурса, позволяя ресурсу проверять желаемое состояние во время его выполнения, а затем, если желаемое состояние присутствует, Chef Infra Client ничего не делает.
СвойстваСледующие свойства могут использоваться для определения защиты, которая оценивается во время фазы выполнения Chef Infra Client:
not_if-
Предотвращение выполнения ресурса, когда условие возвращает
true. only_if-
Разрешить выполнение ресурса только если условие возвращает
true.
Примеры
В следующих примерах демонстрируются различные подходы к использованию ресурса inspec_waiver_file_entry в рецептах:
Добавление записи InSpec waiver в заданный файл waiver:
inspec_waiver_file_entry 'Add waiver entry for control' do
file_path 'C:\chef\inspec_waiver_file.yml'
control 'my_inspec_control_01'
run_test false
justification "The subject of this control is not managed by Chef Infra Client on the systems in policy group #{node['policy_group']}"
expiration '2022-01-01'
action :add
end
Добавление записи InSpec waiver в заданный файл waiver с использованием свойства ‘name’ для идентификации правила:
inspec_waiver_file_entry 'my_inspec_control_01' do
justification "The subject of this control is not managed by Chef Infra Client on the systems in policy group #{node['policy_group']}"
action :add
end
Удаление записи InSpec waiver из заданного файла waiver:
inspec_waiver_file_entry "my_inspec_control_01" do
action :remove
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/resources/inspec_waiver_file_entry/