Spec-Zone.ru › Chef 17

Ресурс chef_client_launchd

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

Все страницы ресурсов Infra


Используйте ресурс chef_client_launchd для настройки Chef Infra Client для запуска по расписанию на macOS системах.

Новое в Chef Infra Client 16.5.

Синтаксис


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

chef_client_launchd '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"
  daemon_options           Array # default value: []
  environment              Hash # default value: {}
  interval                 Integer, String # default value: 30
  log_directory            String # default value: "/Library/Logs/Chef"
  log_file_name            String # default value: "client.log"
  low_priority_io          true, false # default value: true
  nice                     Integer, String
  splay                    Integer, String # default value: 300
  user                     String # default value: "root"
  working_directory        String # default value: "/var/root"
  action                   Symbol # defaults to :enable if not specified
end

где:

  • chef_client_launchd — это ресурс.
  • name — имя блока ресурса.
  • action определяет шаги, которые Chef Infra Client предпримет для приведения узла к желаемому состоянию.
  • accept_chef_license, chef_binary_path, config_directory, daemon_options, environment, interval, log_directory, log_file_name, low_priority_io, nice, splay, user, и working_directory — доступные свойства этого ресурса.

Действия


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

:disable
Отключить запуск Chef Infra Client по расписанию с помощью launchd
:enable
Включить запуск Chef Infra Client по расписанию с помощью launchd. (по умолчанию)
:nothing
Этот блок ресурса не выполняет действий, пока не получит уведомление от другого ресурса о действии. После уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.

Свойства


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

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

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

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

Путь к исполняемому файлу chef-client.

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

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

daemon_options
Тип Ruby: Массив | Значение по умолчанию: []

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

environment
Тип Ruby: Хэш | Значение по умолчанию: {}

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

interval
Тип Ruby: Целое число, Строка | Значение по умолчанию: 30

Время в минутах между выполнениями Chef Infra Client.

log_directory
Тип Ruby: Строка | Значение по умолчанию: /Library/Logs/Chef

Путь к каталогу для создания файла журнала.

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

Имя файла журнала.

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

Выполнять процесс chef-client с низким приоритетом дисковых операций ввода-вывода.

nice
Тип Ruby: Целое число, Строка

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

splay
Тип Ruby: Целое число, Строка | Значение по умолчанию: 300

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

user
Тип Ruby: Строка | Значение по умолчанию: root

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

working_directory
Тип Ruby: Строка | Значение по умолчанию: /var/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. На основе результатов этой оценки свойство блокировки используется для определения, следует ли продолжать выполнение ресурса. Свойство блокировки принимает либо строковое значение, либо значение блока 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_launchd в рецептах:

Настройка запуска Chef Infra Client по расписанию:

chef_client_launchd 'Setup the Chef Infra Client to run every 30 minutes' do
  interval 30
  action :enable
end

Отключение запуска Chef Infra Client по расписанию:

chef_client_launchd 'Prevent the Chef Infra Client from running on a schedule' 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/chef_client_launchd/

Spec-Zone.ru

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