Spec-Zone.ru › Chef 17

Ресурс 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 etc.”, иначе используйте 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

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

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[String]'

Ресурс может уведомить другой ресурс о выполнении действия при изменении его состояния. Укажите '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[String]'

Ресурс может следить за другим ресурсом и выполнять действия, если состояние отслеживаемого ресурса изменяется. Укажите 'resource[name]', действие, которое должно быть выполнено, и затем :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