Spec-Zone.ru › Chef 16

Ресурс 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_client_scheduled_task
  • Синтаксис
  • Действия
  • Свойства
  • Общие функции ресурсов
    • Общие свойства
    • Уведомления
    • Защиты
  • Примеры

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

Spec-Zone.ru

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