Ресурс windows_task
Эта страница сгенерирована из исходного кода Chef Infra Client. Чтобы предложить изменения, отредактируйте файл windows_task.rb и отправьте запрос на включение изменений в репозиторий Chef Infra Client.
Используйте ресурс 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/