Spec-Zone.ru › Chef 16

Ресурс chef_client_cron

Эта страница сгенерирована из исходного кода Chef. Чтобы предложить изменение, отредактируйте файл chef_client_cron.rb и отправьте запрос на включение изменений в репозиторий Chef.

Страница справочника по ресурсам


Используйте ресурс chef_client_cron для настройки запуска клиента Chef Infra в качестве задания cron. Этот ресурс также создаст указанный каталог журналов, если он ещё не существует.

Новое в Chef Infra Client 16.0.

Синтаксис


Полный синтаксис для всех свойств, доступных ресурсу chef_client_cron, следующий:

chef_client_cron 'name' do
  accept_chef_license      true, false # default value: false
  append_log_file          true, false # default value: true
  chef_binary_path         String # default value: "/opt/chef/bin/chef-client"
  comment                  String
  config_directory         String # default value: "/etc/chef"
  daemon_options           Array
  day                      Integer, String # default value: "*"
  environment              Hash
  hour                     Integer, String # default value: "*"
  job_name                 String # default value: "chef-client"
  log_directory            String
  log_file_name            String # default value: "client.log"
  mailto                   String
  minute                   Integer, String # default value: "0,30"
  month                    Integer, String # default value: "*"
  nice                     Integer, String
  splay                    Integer, String # default value: 300
  user                     String # default value: "root"
  weekday                  Integer, String # default value: "*"
  action                   Symbol # defaults to :add if not specified
end

где:

  • chef_client_cron — это ресурс.
  • name — это имя, присвоенное блоку ресурса.
  • action определяет, какие действия выполнит клиент Chef Infra для приведения узла в желаемое состояние.
  • accept_chef_license, append_log_file, chef_binary_path, comment, config_directory, daemon_options, day, environment, hour, job_name, log_directory, log_file_name, mailto, minute, month, nice, splay, user, и weekday — это свойства, доступные для этого ресурса.

Действия


Ресурс chef_client_cron имеет следующие действия:

:add
Добавить задание cron для запуска клиента Chef Infra
:nothing
Этот блок ресурса не выполняет никаких действий, если не получит уведомление от другого ресурса о необходимости выполнить действие. После получения уведомления этот блок ресурса либо запускается немедленно, либо помещается в очередь для запуска в конце выполнения клиента Chef Infra.
:remove
Удалить задание cron для клиента Chef Infra

Свойства


Ресурс chef_client_cron имеет следующие свойства:

accept_chef_license
Тип Ruby: true, false | Значение по умолчанию: false

Принять лицензионное соглашение и условия обслуживания Chef Online Master. См. https://www.chef.io/online-master-agreement/

append_log_file
Тип Ruby: true, false | Значение по умолчанию: true

Добавлять в файл журнала вместо перезаписи файла журнала при каждом запуске.

chef_binary_path
Тип Ruby: String | Значение по умолчанию: /opt/chef/bin/chef-client

Путь к бинарному файлу chef-client.

comment
Тип Ruby: String

Комментарий для размещения в файле cron.d.

config_directory
Тип Ruby: String | Значение по умолчанию: /etc/chef

Путь к каталогу конфигурации.

daemon_options
Тип Ruby: Array

Массив параметров для передачи в команду chef-client.

day
Тип Ruby: Integer, String | Значение по умолчанию: *

День месяца, в который должен запускаться клиент Chef Infra (1 - 31) или шаблон cron, например, ‘1,7,14,21,28’.

environment
Тип Ruby: Hash

Хэш, содержащий дополнительные произвольные переменные среды, в которых будет выполняться задание cron в формате ({'ENV_VARIABLE' => 'VALUE'}).

hour
Тип Ruby: Integer, String | Значение по умолчанию: *

Час, в который должен запускаться клиент Chef Infra (0 - 23) или шаблон cron, например, ‘0,12’.

job_name
Тип Ruby: String | Значение по умолчанию: chef-client

Имя создаваемого задания cron.

log_directory
Тип Ruby: String | Значение по умолчанию: /Library/Logs/Chef on macOS and /var/log/chef otherwise

Путь к каталогу, в котором будет создан файл журнала.

log_file_name
Тип Ruby: String | Значение по умолчанию: client.log

Имя используемого файла журнала.

mailto
Тип Ruby: String

Адрес электронной почты для отправки сообщений о любых сбоях задания cron.

minute
Тип Ruby: Integer, String | Значение по умолчанию: 0,30

Минута, в которую должен запускаться клиент Chef Infra (0 - 59) или шаблон cron, например, ‘0,30’.

month
Тип Ruby: Integer, String | Значение по умолчанию: *

Месяц в году, в который должен запускаться клиент Chef Infra (1 - 12, январь-декабрь или *).

nice
Тип Ruby: Integer, String

Приоритет процесса для запуска процесса chef-client. Значение -20 — наивысший приоритет, а 19 — наименьший приоритет.

Новое в Chef Infra Client 16.5

splay
Тип Ruby: Integer, String | Значение по умолчанию: 300

Случайное количество секунд от 0 до X для добавления к интервалу, чтобы все команды chef-client не выполнялись одновременно.

user
Тип Ruby: String | Значение по умолчанию: root

Имя пользователя, от которого запускается клиент Chef Infra.

weekday
Тип Ruby: Integer, String | Значение по умолчанию: *

День недели, в который должен запускаться клиент Chef Infra (0-7, понедельник-воскресенье или *), где воскресенье — это и 0, и 7.


Общие функции ресурса


Ресурсы Chef включают общие свойства, уведомления и средства защиты ресурсов.

Общие свойства

Следующие свойства являются общими для каждого ресурса:

compile_time

Тип Ruby: true, false | Значение по умолчанию: false

Управление фазой, во время которой ресурс запускается на узле. Установите значение true для запуска во время построения коллекции ресурсов (compile phase). Установите значение false для запуска во время настройки узла клиентом Chef Infra (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, в который запускается уведомление. Доступны следующие таймеры:

:before

Указывает, что действие в уведомленном ресурсе должно быть выполнено до обработки блока ресурса, в котором находится уведомление.

:delayed

Значение по умолчанию. Указывает, что уведомление должно быть помещено в очередь, а затем выполнено в конце выполнения клиента Chef Infra.

: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, в который запускается уведомление. Доступны следующие таймеры:

: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_cron в рецептах:

Настройка Chef Infra Client для выполнения с умолчательной периодичностью в 30 минут:

chef_client_cron 'Run Chef Infra Client as a cron job'

Выполнение Chef Infra Client дважды в день:

chef_client_cron 'Run Chef Infra Client every 12 hours' do
  minute 0
  hour '0,12'
end

Выполнение Chef Infra Client с дополнительными параметрами, переданными клиенту:

chef_client_cron 'Run an override recipe' do
  daemon_options ['--override-runlist mycorp_base::default']
end
Ресурс chef_client_cron
  • Синтаксис
  • Действия
  • Свойства
  • Общие функции ресурса
    • Общие свойства
    • Уведомления
    • Защиты
  • Примеры

© 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_cron/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API