Spec-Zone.ru › Chef 16

Ресурс windows_task

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

Страница справочника по ресурсам


Используйте ресурс windows_task для создания, удаления или запуска запланированной задачи Windows.

Примечание

Ресурс windows_task, предоставленный как часть поваренной книги windows, включал действие :change, которое было удалено из windows_task в клиенте Chef. Вместо этого можно использовать действие :create для обновления существующей задачи.

Новое в Chef Infra Client 13.0.

Синтаксис


Полный синтаксис для всех свойств, доступных ресурсу windows_task, следующий:

windows_task 'name' do
  command                             String
  cwd                                 String
  day                                 String, Integer
  description                         String
  disallow_start_if_on_batteries      true, false # default value: false
  execution_time_limit                String, Integer # default value: "PT72H (72 hours in ISO8601 duration format)"
  force                               true, false # default value: false
  frequency                           Symbol
  frequency_modifier                  Integer, String # default value: 1
  idle_time                           Integer
  interactive_enabled                 true, false # default value: false
  minutes_duration                    String, Integer
  minutes_interval                    String, Integer
  months                              String
  password                            String
  priority                            Integer # default value: 7
  random_delay                        String, Integer
  run_level                           Symbol # default value: :limited
  start_day                           String # default value: The current date.
  start_time                          String
  start_when_available                true, false # default value: false
  stop_if_going_on_batteries          true, false # default value: false
  task_name                           String # default value: 'name' unless specified
  user                                String # default value: The localized SYSTEM user for the node.
  action                              Symbol # defaults to :create if not specified
end

где:

  • windows_task — это ресурс.
  • name — это имя, присвоенное блоку ресурса.
  • action определяет, какие шаги предпримет клиент Chef Infra для приведения узла в желаемое состояние.
  • command, cwd, day, description, disallow_start_if_on_batteries, execution_time_limit, force, frequency, frequency_modifier, idle_time, interactive_enabled, minutes_duration, minutes_interval, months, password, priority, random_delay, run_level, start_day, start_time, start_when_available, stop_if_going_on_batteries, task_name и user — это свойства, доступные для этого ресурса.

Действия


Ресурс windows_task имеет следующие действия:

:create
Создает задачу или обновляет существующую задачу, если изменилось какое-либо свойство.
:delete
Удаляет задачу.
:disable
Отключает задачу.
:enable
Включает задачу.
:end
Завершает задачу.
:nothing
Этот блок ресурсов не выполняет никаких действий, пока не получит уведомление от другого ресурса о необходимости принять меры. После получения уведомления этот блок ресурсов либо запускается немедленно, либо помещается в очередь для запуска в конце выполнения клиента Chef Infra.
:run
Запускает задачу.

Свойства


Ресурс windows_task имеет следующие свойства:

command
Тип Ruby: String

Команда, которая будет выполнена запланированной задачей Windows.

cwd
Тип Ruby: String

Каталог, из которого будет запущена задача.

day
Тип Ruby: String, Integer

День(дни), в которые выполняется задача.

  • Используется с частотой задач :monthly и :weekly,
  • Допустимые значения с частотой :weekly — это MON-SUN или \*.
  • Допустимые значения с частотой :monthly — это 1-31 или MON до SUN и LASTDAY.
    • Используйте MON-SUN или LASTDAY, если вы устанавливаете frequency_modifier как "FIRST, SECOND, THIRD etc.", иначе используйте 1-31.
    • Несколько дней должны быть разделены запятыми. Например, "1, 2, 3" или "MON, WEN, FRI".
description
Тип Ruby: String

Описание задачи.

Новое в Chef Client 14.7

disallow_start_if_on_batteries
Тип Ruby: true, false | Значение по умолчанию: false

Запретить запуск задачи, если система работает от батареи.

Новое в Chef Client 14.4

execution_time_limit
Тип Ruby: String, Integer | Значение по умолчанию: PT72H (72 hours in ISO8601 duration format)

Максимальное время выполнения задачи. Это поле принимает либо секунды, либо значение продолжительности в формате ISO8601.

force
Тип Ruby: true, false | Значение по умолчанию: false

При использовании с create обновит задачу.

frequency
Тип Ruby: SymbolДопустимые значения: :daily, :hourly, :minute, :monthly, :none, :on_idle, :on_logon, :once, :onstart, :weekly
  • Частота выполнения задачи.
  • Это обязательное свойство в Chef 14.1
  • Допустимые значения: :minute, :hourly, :daily, :weekly, :monthly, :none, :once, :on_logon, :onstart, :on_idle.
  • Значение :once требует свойства start_time.
frequency_modifier
Тип Ruby: Integer, String | Значение по умолчанию: 1
  • Для частоты :minute допустимые значения — от 1 до 1439

  • Для частоты :hourly допустимые значения — от 1 до 23

  • Для частоты :daily допустимые значения — от 1 до 365

  • Для частоты :weekly допустимые значения — от 1 до 52

  • Для частоты :monthly допустимые значения — ('FIRST', 'SECOND', 'THIRD', 'FOURTH', 'LAST') ИЛИ 1-12.

    : - например, если пользователь хочет запустить задачу на second week of the month, используйте значение frequency_modifier как SECOND. Несколько значений для недель месяца должны быть разделены запятыми, например "FIRST, THIRD, LAST". - Чтобы запускать задачу каждый (n) месяц, пользователь использует значения «1-12».

idle_time
Тип Ruby: Integer

Для частоты :on_idle, время (в минутах) без активности пользователя, которое должно пройти для запуска задачи, от 1 до 999.

interactive_enabled
Тип Ruby: true, false | Значение по умолчанию: false

Разрешить задаче выполняться интерактивно или неинтерактивно. Требуется также указать пользователя и пароль.

minutes_duration
Тип Ruby: String, Integer
minutes_interval
Тип Ruby: String, Integer
months
Тип Ruby: String

Месяцы года, в которые выполняется задача, например: JAN, FEB или *. Несколько месяцев должны быть разделены запятыми. Например, Jan, Feb, Mar, Dec.

password
Тип Ruby: String

Пароль пользователя. Если используется это свойство, то должно быть установлено свойство user.

priority
Тип Ruby: Integer | Значение по умолчанию: 7

Используется для установки уровней приоритета в диапазоне от 0 до 10.

random_delay
Тип Ruby: String, Integer

Задерживает задачу до заданного времени (в секундах).

run_level
Тип Ruby: Symbol | Значение по умолчанию: :limitedДопустимые значения: :highest, :limited

Запуск с правами :limited или :highest.

start_day
Тип Ruby: String | Значение по умолчанию: The current date.

Указывает первую дату выполнения задачи в формате MM/DD/YYYY.

start_time
Тип Ruby: String

Указывает время начала выполнения задачи в формате HH:mm.

start_when_available
Тип Ruby: true, false | Значение по умолчанию: false

Для запуска задачи в любое время после истечения ее запланированного времени.

Новое в Chef Client 14.15

stop_if_going_on_batteries
Тип Ruby: true, false | Значение по умолчанию: false

Параметр запланированной задачи при переходе системы на батарейное питание.

Новое в Chef Client 14.4

task_name
Тип Ruby: String | Значение по умолчанию: The resource block's name

Необязательное свойство для задания имени задачи, если оно отличается от имени блока ресурса. Пример: Task Name или /Task Name

user
Тип Ruby: String | Значение по умолчанию: The localized SYSTEM user for the node.

Пользователь, от имени которого будет запущена задача.


Общие функции ресурса


Ресурсы 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: Символ, '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.

Примеры


Следующие примеры демонстрируют различные подходы к использованию ресурса windows_task в рецептах:

Создание запланированной задачи для запуска каждые 15 минут как пользователь Администратор:

windows_task 'chef-client' do
  user 'Administrator'
  password 'password'
  command 'chef-client'
  run_level :highest
  frequency :minute
  frequency_modifier 15
end

Создание запланированной задачи для запуска каждые 2 дня:

windows_task 'chef-client' do
  command 'chef-client'
  run_level :highest
  frequency :daily
  frequency_modifier 2
end

Создание запланированной задачи для запуска в определённые дни недели:

windows_task 'chef-client' do
  command 'chef-client'
  run_level :highest
  frequency :weekly
  day 'Mon, Thu'
end

Создание запланированной задачи для запуска только один раз:

windows_task 'chef-client' do
  command 'chef-client'
  run_level :highest
  frequency :once
  start_time '16:10'
end

Создание запланированной задачи для запуска в текущий день каждые 3 недели и задержкой до 1 минуты:

windows_task 'chef-client' do
  command 'chef-client'
  run_level :highest
  frequency :weekly
  frequency_modifier 3
  random_delay '60'
end

Создание запланированной задачи для запуска еженедельно, начиная с 28 декабря 2018 года:

windows_task 'chef-client 8' do
  command 'chef-client'
  run_level :highest
  frequency :weekly
  start_day '12/28/2018'
end

Создание запланированной задачи для запуска каждую понедельник и пятницу каждые 2 недели:

windows_task 'chef-client' do
  command 'chef-client'
  run_level :highest
  frequency :weekly
  frequency_modifier 2
  day 'Mon, Fri'
end

Создание запланированной задачи для запуска при простоях компьютера с длительностью простоя 20 минут:

windows_task 'chef-client' do
  command 'chef-client'
  run_level :highest
  frequency :on_idle
  idle_time 20
end

Удаление задачи с именем «старая задача»:

windows_task 'old task' do
  action :delete
end

Включение задачи с именем «chef-client»:

windows_task 'chef-client' do
  action :enable
end

Отключение задачи с именем «ProgramDataUpdater» с путём задачи «\Microsoft\Windows\Application Experience\ProgramDataUpdater»

windows_task '\Microsoft\Windows\Application Experience\ProgramDataUpdater' do
  action :disable
end
Ресурс windows_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/windows_task/

Spec-Zone.ru

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