Ресурс chef_client_systemd_timer
Эта страница сгенерирована из исходного кода Chef Infra Client. Чтобы предложить изменения, отредактируйте файл chef_client_systemd_timer.rb и отправьте запрос на вытягивание в репозиторий Chef Infra Client.
Используйте ресурс 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 # default value: []
delay_after_boot String # default value: "1min"
description String # default value: "Chef Infra Client periodic execution"
environment Hash # default value: {}
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- Добавить системный таймер, который запускает Chef Infra Client. (по умолчанию)
:nothing- Этот блок ресурса не действует, пока другой ресурс не уведомит его о действии. После уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.
:remove- Удалить системный таймер, который запускает Chef Infra Client.
Свойства
Ресурс chef_client_systemd_timer имеет следующие свойства:
-
accept_chef_license - Тип Ruby: true, false | Значение по умолчанию:
falseПринять соглашение об использовании и услугах Chef Online Master License. См. https://www.chef.io/online-master-agreement
-
chef_binary_path - Тип Ruby: Строка | Значение по умолчанию:
/opt/chef/bin/chef-clientПуть к исполняемому файлу chef-client.
-
config_directory - Тип Ruby: Строка | Значение по умолчанию:
/etc/chefПуть к каталогу конфигурации.
-
cpu_quota - Тип Ruby: Целое число, строка
Система systemd CPUQuota для запуска процесса chef-client. Это процентное значение от общего времени процессора, доступного в системе. Если система имеет более одного ядра, это значение может быть больше 100.
Новое в Chef Infra Client 16.5
-
daemon_options - Тип Ruby: Массив | Значение по умолчанию:
[]Массив параметров, передаваемых команде chef-client.
-
delay_after_boot - Тип Ruby: Строка | Значение по умолчанию:
1minВремя ожидания после загрузки, прежде чем начнется интервал. Оно выражается как временной интервал systemd, например,
300seconds,1hr, или1m. См. https://www.freedesktop.org/software/systemd/man/systemd.time.html для полного списка разрешенных значений временных интервалов.
-
description - Тип Ruby: Строка | Значение по умолчанию:
Chef Infra Client periodic executionОписание, которое нужно добавить к системному таймеру. Оно будет отображаться при запуске
systemctl statusдля таймера.
-
environment - Тип Ruby: Хэш | Значение по умолчанию:
{}Хэш, содержащий дополнительные произвольные переменные среды, в которых будет выполняться системный таймер в формате
({'ENV_VARIABLE' => 'VALUE'}).
-
interval - Тип Ruby: Строка | Значение по умолчанию:
30minИнтервал ожидания между выполнениями. Он выражается как временной интервал systemd, например,
300seconds,1hr, или1m. См. https://www.freedesktop.org/software/systemd/man/systemd.time.html для полного списка разрешенных значений временных интервалов.
-
job_name - Тип Ruby: Строка | Значение по умолчанию:
chef-clientИмя создаваемого системного таймера.
-
run_on_battery - Тип Ruby: true, false | Значение по умолчанию:
trueЗапустить таймер для Chef Infra Client, если система работает от батареи.
-
splay - Тип Ruby: Строка | Значение по умолчанию:
5minИнтервал от 0 до X для добавления к интервалу, чтобы все команды chef-client не выполнялись одновременно. Он выражается как временной интервал systemd, например,
300seconds,1hr, или1m. См. https://www.freedesktop.org/software/systemd/man/systemd.time.html для полного списка разрешенных значений временных интервалов.
-
user - Тип Ruby: Строка | Значение по умолчанию:
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: Целое число | Значение по умолчанию:
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.
Примеры
В следующих примерах демонстрируются различные подходы к использованию ресурса 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/