Ресурс chef_client_scheduled_task
Эта страница генерируется из исходного кода Chef. Чтобы предложить изменение, отредактируйте файл chef_client_scheduled_task.rb и отправьте запрос на вытягивание в репозиторий Chef.
Страница справочника по ресурсам
Используйте ресурс chef_client_scheduled_task для настройки запуска клиента Chef Infra в качестве запланированной задачи Windows. Этот ресурс также создаст указанный каталог журналов, если он ещё не существует.
Новое в Chef Infra Client 16.0.
Синтаксис
Полный синтаксис для всех свойств, доступных ресурсу chef_client_scheduled_task:
chef_client_scheduled_task 'name' do
accept_chef_license true, false # default value: false
chef_binary_path String # default value: "C:/opscode/chef/bin/chef-client"
config_directory String # default value: "/etc/chef"
daemon_options Array
frequency String # default value: "minute"
frequency_modifier Integer, String # default value: "30 if frequency is 'minute', 1 otherwise"
log_directory String # default value: "CONFIG_DIRECTORY/log"
log_file_name String # default value: "client.log"
password String
run_on_battery true, false # default value: true
splay Integer, String # default value: 300
start_date String
start_time String
task_name String # default value: "chef-client"
user String # default value: "System"
action Symbol # defaults to :add if not specified
endгде:
-
chef_client_scheduled_taskявляется ресурсом. -
name— имя, присвоенное блоку ресурса. -
actionопределяет, какие действия предпримет клиент Chef Infra для приведения узла в желаемое состояние. -
accept_chef_license,chef_binary_path,config_directory,daemon_options,frequency,frequency_modifier,log_directory,log_file_name,password,run_on_battery,splay,start_date,start_time,task_name, иuser— свойства, доступные для этого ресурса.
Действия
Ресурс chef_client_scheduled_task имеет следующие действия:
:add- Добавить запланированную задачу Windows, которая запускает Chef Infra Client.
:nothing- Этот блок ресурса не выполняет никаких действий, если не получит уведомление от другого ресурса о необходимости действий. После получения уведомления этот блок ресурса либо запускается немедленно, либо помещается в очередь для запуска в конце выполнения клиента Chef Infra.
:remove- Удалить запланированную задачу Windows, которая запускает Chef Infra Client.
Свойства
Ресурс chef_client_scheduled_task имеет следующие свойства:
accept_chef_license-
Тип Ruby: true, false | Значение по умолчанию:
falseПринять лицензионное соглашение и соглашение об услугах Chef Online Master. См. https://www.chef.io/online-master-agreement/
chef_binary_path-
Тип Ruby: String | Значение по умолчанию:
C:/opscode/chef/bin/chef-clientПуть к бинарному файлу chef-client.
config_directory-
Тип Ruby: String | Значение по умолчанию:
/etc/chefПуть к каталогу конфигурации.
daemon_options-
Тип Ruby: Array | Значение по умолчанию:
lazy defaultМассив параметров для передачи в команду chef-client.
frequency-
Тип Ruby: String | Значение по умолчанию:
minuteДопустимые значения:"daily", "hourly", "minute", "monthly", "on_idle", "on_logon", "once", "onstart"Частота выполнения задачи.
frequency_modifier-
Тип Ruby: Integer, String | Значение по умолчанию:
30 if frequency is 'minute', 1 otherwiseЧисловое значение, соответствующее частоте запланированной задачи
log_directory-
Тип Ruby: String | Значение по умолчанию:
CONFIG_DIRECTORY/logПуть к каталогу, в котором будет создан файл журнала.
log_file_name-
Тип Ruby: String | Значение по умолчанию:
client.logИмя файла журнала для использования.
password-
Тип Ruby: String
Пароль для пользователя, от имени которого работает клиент Chef Infra.
run_on_battery-
Тип Ruby: true, false | Значение по умолчанию:
trueЗапускать задачу клиента Chef Infra, когда система работает от батареи.
splay-
Тип Ruby: Integer, String | Значение по умолчанию:
300Случайное количество секунд от 0 до X для добавления к интервалу, чтобы все команды chef-client не выполнялись одновременно.
start_date-
Тип Ruby: String
Дата начала задачи в формате м:д:ГГГГ (например: 12/17/2020).
start_time-
Тип Ruby: String
Время начала задачи в формате ЧЧ:мм (например: 14:00). Если частота — минута, время начала по умолчанию будет равно Time.now плюс количество минут, указанное в frequency_modifier.
task_name-
Тип Ruby: String | Значение по умолчанию:
chef-clientИмя создаваемой запланированной задачи.
user-
Тип Ruby: String | Значение по умолчанию:
SystemИмя пользователя, от имени которого работает клиент Chef Infra.
Общие функции ресурса
Ресурсы Chef включают общие свойства, уведомления и средства защиты ресурсов.
Общие свойства
Следующие свойства являются общими для всех ресурсов:
compile_time-
Тип Ruby: true, false | Значение по умолчанию:
falseУправление фазой, во время которой ресурс запускается на узле. Установите значение true для запуска во время построения коллекции ресурсов (
compile phase). Установите значение false для запуска во время настройки узла клиентом Chef Infra (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 InfraClient.
Уведомления
notifies-
Тип Ruby: Symbol, 'Chef::Resource[String]'
Ресурс может уведомить другой ресурс о необходимости действий при изменении его состояния. Укажите
'resource[name]',:action, которое должен предпринять этот ресурс, а затем:timerдля этого действия. Ресурс может уведомить более чем один ресурс; используйте инструкциюnotifiesдля каждого ресурса, который необходимо уведомить.Если указанный ресурс не существует, возникает ошибка. В отличие от этого,
subscribesне завершится ошибкой, если исходный ресурс не найден.
Таймер указывает момент выполнения клиента Chef Infra, в который выполняется уведомление. Доступны следующие таймеры:
:beforeУказывает, что действие с уведомлённым ресурсом должно быть выполнено до обработки блока ресурса, в котором находится уведомление.
:delayedЗначение по умолчанию. Указывает, что уведомление должно быть помещено в очередь, а затем выполнено в конце выполнения клиента Chef Infra.
-
: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, в который выполняется уведомление. Доступны следующие таймеры:
:beforeУказывает, что действие с уведомлённым ресурсом должно быть выполнено до обработки блока ресурса, в котором находится уведомление.
:delayedЗначение по умолчанию. Указывает, что уведомление должно быть помещено в очередь, а затем выполнено в конце выполнения клиента Chef Infra.
-
:immediate,:immediately Указывает, что уведомление должно быть выполнено немедленно для каждого уведомлённого ресурса.
Синтаксис для subscribes:
subscribes :action, 'resource[name]', :timer
Средства защиты
Свойство защиты может использоваться для оценки состояния узла на этапе выполнения выполнения клиента Chef Infra. На основе результатов этой оценки свойство защиты используется для того, чтобы сообщить клиенту Chef Infra, следует ли продолжать выполнение ресурса. Свойство защиты принимает либо строковое значение, либо значение блока 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.
Примеры
В следующих примерах демонстрируются различные подходы к использованию ресурса chef_client_scheduled_task в рецептах:
Настройка Chef Infra Client для запуска с использованием стандартной частоты 30 минут:
chef_client_scheduled_task 'Run Chef Infra Client as a scheduled task'
Запуск Chef Infra Client при запуске системы:
chef_client_scheduled_task 'Chef Infra Client on start' do
frequency 'onstart'
end
Запуск Chef Infra Client с дополнительными параметрами, переданными клиенту:
chef_client_scheduled_task 'Run an override recipe' do
daemon_options ['--override-runlist mycorp_base::default']
end
Запуск Chef Infra Client ежедневно в 01:00, указав именованный список запуска:
chef_client_scheduled_task 'Run chef-client named run-list daily' do
frequency 'daily'
start_time '01:00'
daemon_options ['-n audit_only']
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/chef_client_scheduled_task/