Ресурс chef_client_systemd_timer
Эта страница генерируется из исходного кода Chef. Чтобы предложить изменение, отредактируйте файл chef_client_systemd_timer.rb и отправьте запрос на включение изменений в репозиторий Chef.
Используйте ресурс chef_client_systemd_timer для настройки запуска клиента Chef Infra Client в качестве таймера systemd.
Новое в Chef Infra Client 16.0.
Синтаксис
Полный синтаксис для всех свойств, доступных ресурсу chef_client_systemd_timer:
chef_client_systemd_timer 'name' do
accept_chef_license true, false # default value: false
chef_binary_path String # default value: "/opt/chef/bin/chef-client"
config_directory String # default value: "/etc/chef"
cpu_quota Integer, String
daemon_options Array
delay_after_boot String # default value: "1min"
description String # default value: "Chef Infra Client periodic execution"
environment Hash
interval String # default value: "30min"
job_name String # default value: "chef-client"
run_on_battery true, false # default value: true
splay String # default value: "5min"
user String # default value: "root"
action Symbol # defaults to :add if not specified
endгде:
-
chef_client_systemd_timer— это ресурс. -
name— это имя, данное блоку ресурса. -
actionопределяет, какие шаги предпримет Chef Infra Client, чтобы привести узел в желаемое состояние. -
accept_chef_license,chef_binary_path,config_directory,cpu_quota,daemon_options,delay_after_boot,description,environment,interval,job_name,run_on_battery,splay, иuser— это свойства, доступные для этого ресурса.
Действия
Ресурс chef_client_systemd_timer имеет следующие действия:
:add- Добавить таймер systemd, который запускает Chef Infra Client.
:nothing- Этот блок ресурсов не действует, если не получит уведомление от другого ресурса о необходимости выполнить действие. После получения уведомления этот блок ресурсов либо запускается немедленно, либо помещается в очередь для запуска в конце выполнения Chef Infra Client.
:remove- Удалить таймер systemd, который запускает Chef Infra Client.
Свойства
Ресурс chef_client_systemd_timer имеет следующие свойства:
accept_chef_license-
Тип Ruby: true, false | Значение по умолчанию:
falseПринять Лицензионное соглашение и соглашение об услугах Chef Online Master. См. https://www.chef.io/online-master-agreement/
chef_binary_path-
Тип Ruby: String | Значение по умолчанию:
/opt/chef/bin/chef-clientПуть к бинарному файлу chef-client.
config_directory-
Тип Ruby: String | Значение по умолчанию:
/etc/chefПуть к каталогу конфигурации.
cpu_quota-
Тип Ruby: Integer, String
CPUQuota systemd для запуска процесса chef-client. Это процентное значение от общего времени процессора, доступного в системе. Если система имеет более 1 ядра, это может быть значение больше 100.
Новое в Chef Infra Client 16.5
daemon_options-
Тип Ruby: Array
Массив параметров для передачи в команду chef-client.
delay_after_boot-
Тип Ruby: String | Значение по умолчанию:
1minВремя ожидания после загрузки, прежде чем начнётся интервал. Это выражается как временной интервал systemd, например,
300seconds,1hrили1m. См. https://www.freedesktop.org/software/systemd/man/systemd.time.html для полного списка допустимых значений временного интервала.
description-
Тип Ruby: String | Значение по умолчанию:
Chef Infra Client periodic executionОписание для добавления в таймер systemd. Это будет отображаться при запуске
systemctl statusдля таймера.
environment-
Тип Ruby: Hash
Хэш, содержащий дополнительные произвольные переменные окружения, под которыми таймер systemd будет запущен в виде
({'ENV_VARIABLE' => 'VALUE'}).
interval-
Тип Ruby: String | Значение по умолчанию:
30minИнтервал ожидания между выполнениями. Это выражается как временной интервал systemd, например,
300seconds,1hrили1m. См. https://www.freedesktop.org/software/systemd/man/systemd.time.html для полного списка допустимых значений временного интервала.
job_name-
Тип Ruby: String | Значение по умолчанию:
chef-clientИмя создаваемого системного таймера.
run_on_battery-
Тип Ruby: true, false | Значение по умолчанию:
trueЗапустить таймер для Chef Infra Client, если система работает от батареи.
splay-
Тип Ruby: String | Значение по умолчанию:
5minИнтервал от 0 до X для добавления к интервалу, чтобы все команды chef-client не выполнялись одновременно. Это выражается как временной интервал systemd, например,
300seconds,1hrили1m. См. https://www.freedesktop.org/software/systemd/man/systemd.time.html для полного списка допустимых значений временного интервала.
user-
Тип Ruby: String | Значение по умолчанию:
rootИмя пользователя, от которого запускается Chef Infra Client.
Общие функции ресурса
Ресурсы 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: Integer | Значение по умолчанию:
0Количество попыток перехвата исключений и повтора попытки использования ресурса.
retry_delay-
Тип Ruby: Integer | Значение по умолчанию:
2Задержка повтора (в секундах).
sensitive-
Тип Ruby: true, false | Значение по умолчанию:
falseУбедитесь, что конфиденциальные данные ресурса не регистрируются Chef InfraClient.
Уведомления
notifies-
Тип Ruby: Symbol, '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: Symbol, 'Chef::Resource[String]'
Ресурс может прослушивать другой ресурс, а затем выполнять действие, если состояние прослушиваемого ресурса изменится. Укажите '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.
Примеры
В следующих примерах демонстрируются различные подходы к использованию ресурса chef_client_systemd_timer в рецептах:
Настройка Chef Infra Client для запуска с использованием стандартного 30-минутного цикла:
chef_client_systemd_timer 'Run Chef Infra Client as a systemd timer'
Запуск Chef Infra Client каждый час:
chef_client_systemd_timer 'Run Chef Infra Client every 1 hour' do
interval '1hr'
end
Запуск Chef Infra Client с дополнительными опциями, переданными клиенту:
chef_client_systemd_timer 'Run an override recipe' do
daemon_options ['--override-runlist mycorp_base::default']
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/chef_client_systemd_timer/