Ресурс chef_client
Эта страница сгенерирована из исходного кода Chef. Чтобы предложить изменение, отредактируйте файл chef_client.rb и отправьте запрос на вытягивание в репозиторий Chef. Chef source code.
Используйте ресурс chef_client для создания клиентов на вашем сервере Chef Infra из кода кулинарной книги Chef Infra.
Синтаксис
Синтаксис использования ресурса chef_client в рецепте следующий:
chef_client 'name' do
attribute 'value' # see properties section below
...
action :action # see actions section below
end
где:
-
chef_clientуказывает клиенту Chef Infra Client использовать поставщикChef::Provider::ChefClientво время выполнения клиента Chef Infra Client -
name— имя блока ресурса; когда свойствоnameне указано в рамках рецепта,nameтакже является именем клиента Chef Infra Client -
attribute— ноль (или более) доступных свойств для данного ресурса -
actionопределяет действия, которые клиент Chef Infra Client выполнит, чтобы привести узел в желаемое состояние
Действия
Ресурс chef_client имеет следующие действия:
:create- По умолчанию. Используется для создания chef-клиента.
:delete- Используется для удаления chef-клиента.
:nothing- Этот блок ресурса не действует, пока другой ресурс не уведомит его о действии. После уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения клиента Chef Infra Client.
:regenerate_keys- Используется для перегенерации открытого ключа RSA для chef-клиента.
Свойства
Ресурс chef_client имеет следующие свойства:
adminИспользуйте для указания, является ли клиент Chef Infra Client API-клиентом.
chef_serverURL сервера Chef Infra.
completeИспользуйте для указания, определяет ли этот ресурс chef-клиент полностью. Когда
true, любое свойство, не указанное этим ресурсом, будет сброшено до значений свойств по умолчанию.
ignore_failure-
Тип Ruby: true, false | Значение по умолчанию:
falseПродолжать выполнение рецепта, если ресурс завершится неудачей по любой причине.
nameИмя клиента Chef Infra Client.
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
output_key_formatИспользуйте для указания формата открытого ключа. Возможные значения:
pem,derилиopenssh. Значение по умолчанию:openssh.
output_key_pathИспользуйте для указания пути к расположению, в котором будет записан открытый ключ.
raw_json-
Данные клиента Chef Infra в формате JSON. Например:
{ "clientname": "client_name", "orgname": "org_name", "validator": false, "certificate": "-----BEGIN CERTIFICATE-----\n ... 1234567890abcdefghijklmnopq\n ... -----END CERTIFICATE-----\n", "name": "node_name" }
retries-
Тип Ruby: Integer | Значение по умолчанию:
0Количество попыток перехвата исключений и повторной попытки ресурса.
retry_delay-
Тип Ruby: Integer | Значение по умолчанию:
2Задержка повтора (в секундах).
source_keyИспользуйте для копирования открытого или закрытого ключа, но при этом применяйте другое
formatиpassword. Используйте совместно сsource_key_pass_phraseиsource_key_path.
source_key_pass_phraseФраза доступа для открытого ключа. Используйте совместно с
source_keyиsource_key_path.
source_key_pathПуть к открытому ключу. Используйте совместно с
source_keyиsource_key_pass_phrase.
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
validatorИспользуйте для указания, является ли клиент Chef Infra Client chef-валидатором.
Примеры
У данного ресурса нет примеров.
© 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/