Spec-Zone.ru › Chef 18

Ресурс windows_task

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

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


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

Новинка в Chef Infra Client 13.0.

Синтаксис


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

windows_task 'name' do
  backup                              Integer, false # default value: 5
  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 Client предпримет для приведения узла в желаемое состояние.
  • backup, 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 Client.
:run
Выполняет задачу планировщика.

Свойства


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

backup
Тип Ruby: Целое число, false | Значение по умолчанию: 5

Количество резервных копий задачи при изменении/удалении. Установите значение false, чтобы отключить резервные копии.

Новинка в Chef Infra Client 17.0

command
Тип Ruby: Строка

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

cwd
Тип Ruby: Строка

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

day
Тип Ruby: Строка, Целое число

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

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

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

Новинка в Chef Client 14.7

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

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

Новинка в Chef Client 14.4

execution_time_limit
Тип Ruby: Строка, Целое число | Значение по умолчанию: PT72H (72 hours in ISO8601 duration format)

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

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

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

frequency
Тип Ruby: Символ Допустимые значения: :daily, :hourly, :minute, :monthly, :none, :on_idle, :on_logon, :once, :onstart, :weekly

Частота выполнения задачи.

Примечание

Это свойство обязательно в Chef Infra Client 14.1 или более поздних версиях.

Примечание

Значение :once требует установки свойства start_time.

frequency_modifier
Тип Ruby: Целое число, Строка | Значение по умолчанию: 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: Целое число

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

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

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

minutes_duration
Тип Ruby: Строка, Целое число
minutes_interval
Тип Ruby: Строка, Целое число
months
Тип Ruby: Строка

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

password
Тип Ruby: Строка

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

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

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

random_delay
Тип Ruby: Строка, Целое число

Откладывает задачу на указанное время (в секундах).

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

Выполнять с привилегиями :limited или :highest.

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

Указывает первую дату выполнения задачи в формате ДД.ММ.ГГГГ.

start_time
Тип Ruby: Строка

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

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: Строка | Значение по умолчанию: The resource block's name

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

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

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


Общие возможности ресурсов


Ресурсы Chef включают в себя общие свойства, уведомления и защитные механизмы ресурсов.

Общие свойства

Следующие свойства общие для всех ресурсов:

compile_time

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

Управляет фазой, в которой ресурс выполняется на узле. Установите в значение true, чтобы запустить его во время построения коллекции ресурсов (compile phase). Установите в значение false, чтобы запустить его во время конфигурирования узла Chef Infra Client (converge phase).

ignore_failure

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

Продолжать выполнение рецепта, если ресурс завершился неудачно по любой причине. :quiet не отобразит полный стек вызовов, и рецепт будет продолжен, если ресурс завершится неудачно.

retries

Тип Ruby: Целое число | Значение по умолчанию: 0

Количество попыток перехватить исключения и повторить ресурс.

retry_delay

Тип Ruby: Целое число | Значение по умолчанию: 2

Задержка в секундах между попытками повтора.

sensitive

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

Убедиться, что конфиденциальные данные ресурса не регистрируются Chef Infra Client.

Уведомления

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

© 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