Ресурс chef_client_scheduled_task
Эта страница сгенерирована из исходного кода клиента Chef Infra. Чтобы предложить изменение, отредактируйте файл chef_client_scheduled_task.rb и отправьте запрос на вытягивание в репозиторий Chef Infra Client.
Используйте ресурс chef_client_scheduled_task для настройки клиента Chef Infra Client на выполнение в виде задачи планировщика 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 # default value: []
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
priority Integer # default value: 7
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"
use_consistent_splay true, false # default value: false
user String # default value: "System"
action Symbol # defaults to :add if not specified
endгде:
-
chef_client_scheduled_task— это ресурс. -
name— имя, данное блоку ресурса. -
actionопределяет шаги, которые выполнит клиент Chef Infra Client для приведения узла к нужному состоянию. -
accept_chef_license,chef_binary_path,config_directory,daemon_options,frequency,frequency_modifier,log_directory,log_file_name,password,priority,run_on_battery,splay,start_date,start_time,task_name,use_consistent_splay, иuser— доступные свойства этого ресурса.
Действия
Ресурс chef_client_scheduled_task имеет следующие действия:
:add- Добавить задачу планировщика Windows для запуска Chef Infra Client. (по умолчанию)
:nothing- Этот блок ресурса не действует, пока не получит уведомление от другого ресурса для выполнения действия. После уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.
:remove- Удалить задачу планировщика Windows для запуска Chef Infra Client.
Свойства
Ресурс chef_client_scheduled_task имеет следующие свойства:
-
accept_chef_license - Тип Ruby: true, false | Значение по умолчанию:
falseПринять Лицензионное соглашение и Условия предоставления услуг для онлайн-мастера Chef. См. https://www.chef.io/online-master-agreement
-
chef_binary_path - Тип Ruby: Строка | Значение по умолчанию:
C:/opscode/chef/bin/chef-clientПуть к бинарному файлу chef-client.
-
config_directory - Тип Ruby: Строка | Значение по умолчанию:
/etc/chefПуть к директории конфигурации.
-
daemon_options - Тип Ruby: Массив | Значение по умолчанию:
[]Массив опций для передачи в команду chef-client.
-
frequency - Тип Ruby: Строка | Значение по умолчанию:
minuteРазрешенные значения:"daily", "hourly", "minute", "monthly", "on_idle", "on_logon", "once", "onstart"Частота выполнения задачи.
-
frequency_modifier - Тип Ruby: Целое число, Строка | Значение по умолчанию:
30 if frequency is 'minute', 1 otherwiseЧисловое значение для частоты выполнения задачи
-
log_directory - Тип Ruby: Строка | Значение по умолчанию:
CONFIG_DIRECTORY/logПуть к директории для создания файла журнала.
-
log_file_name - Тип Ruby: Строка | Значение по умолчанию:
client.logИмя файла журнала.
-
password - Тип Ruby: Строка
Пароль пользователя, от имени которого выполняется Chef Infra Client.
-
priority - Тип Ruby: Целое число | Значение по умолчанию:
7Используйте для установки уровней приоритетов в диапазоне от 0 до 10.
Новое в Chef Infra Client 17.5
-
run_on_battery - Тип Ruby: true, false | Значение по умолчанию:
trueЗапустить задачу Chef Infra Client, когда система работает от батарей.
-
splay - Тип Ruby: Целое число, Строка | Значение по умолчанию:
300Случайное количество секунд от 0 до X, добавляемых к интервалу, чтобы все команды chef-client не выполнялись одновременно.
-
start_date - Тип Ruby: Строка
Дата начала задачи в формате дд.мм.гггг (например: 17.12.2020).
-
start_time - Тип Ruby: Строка
Время начала задачи в формате ЧЧ:мм (например: 14:00). Если частота — минуты, время начала по умолчанию будет Time.now плюс значение frequency_modifier в минутах.
-
task_name - Тип Ruby: Строка | Значение по умолчанию:
chef-clientИмя создаваемой задачи планировщика.
-
use_consistent_splay - Тип Ruby: true, false | Значение по умолчанию:
falseВсегда использовать одно и то же случайное значение splay для каждого узла, чтобы обеспечить согласованную частоту выполнения chef-client.
Новое в Chef Infra Client 17.5
-
user - Тип Ruby: Строка | Значение по умолчанию:
SystemИмя пользователя, от имени которого выполняется Chef Infra Client.
Общие функциональные возможности ресурсов
Ресурсы 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: Целое число | Значение по умолчанию:
0Количество попыток перехвата исключений и повторной попытки выполнения ресурса.
retry_delay-
Тип Ruby: Целое число | Значение по умолчанию:
2Задержка в секундах между попытками повторного выполнения.
sensitive-
Тип Ruby: true, false | Значение по умолчанию:
falseОбеспечить, чтобы конфиденциальные данные ресурсов не регистрировались клиентом Chef Infra.
Уведомления
-
notifies -
Тип Ruby: Символ, 'Chef::Resource[Строка]'
Ресурс может уведомить другой ресурс о выполнении действия при изменении его состояния. Укажите
'resource[name]',:actionдействие этого ресурса, и затем:timerдля этого действия. Ресурс может уведомить более одного ресурса; используйтеnotifiesдля каждого уведомляемого ресурса.Если указанный ресурс не существует, возникает ошибка. В отличие от
subscribes, это не приведет к сбою, если источник ресурса не найден.
Таймер указывает момент во время выполнения Chef Infra Client, в который выполняется уведомление. Доступны следующие таймеры:
:before-
Указывает, что действие по уведомленному ресурсу должно быть выполнено до обработки блока ресурса, в котором находится уведомление.
:delayed-
По умолчанию. Указывает, что уведомление должно быть помещено в очередь и выполнено в конце выполнения Chef Infra Client.
-
:immediate,:immediately -
Указывает, что уведомление должно быть выполнено немедленно для каждого уведомленного ресурса.
Синтаксис для notifies:
notifies :action, 'resource[name]', :timer
-
subscribes -
Тип Ruby: Символ, 'Chef::Resource[Строка]'
Ресурс может следить за другим ресурсом и выполнять действие, если состояние отслеживаемого ресурса изменится. Укажите '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.
Примеры
Следующие примеры демонстрируют различные подходы к использованию ресурса 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 Infra Client с постоянной задержкой при каждом запуске, вычисленной один раз, аналогично тому, как работает ресурс chef_client_cron:
chef_client_scheduled_task 'Run chef-client with persistent splay' do
use_consistent_splay true
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/