Spec-Zone.ru › Chef 18

Ресурс chef_client_scheduled_task

Эта страница сгенерирована из исходного кода клиента Chef Infra. Чтобы предложить изменение, отредактируйте файл chef_client_scheduled_task.rb и отправьте запрос на вытягивание в репозиторий Chef Infra Client.

Все страницы ресурсов Infra


Используйте ресурс 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/

Spec-Zone.ru

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