Ресурс 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 и т.д.», в противном случае используйте значения от 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/