Ресурс chef_node
Эта страница сгенерирована из исходного кода Chef Infra Client. Чтобы предложить изменение, отредактируйте файл chef_node.rb и отправьте запрос на включение изменений в репозиторий Chef Infra Client.
Узел — это любое устройство (физическое, виртуальное, облачное, сетевое и т. д.), которое управляется Chef Infra.
Используйте ресурс chef_node для управления узлами.
Синтаксис
Синтаксис использования ресурса chef_node в рецепте следующий:
chef_node 'name' do
attribute 'value' # see properties section below
...
action :action # see actions section below
end
где:
-
chef_nodeуказывает Chef Infra Client использовать поставщикChef::Provider::ChefNodeво время выполнения Chef Infra Client -
name— имя блока ресурса -
attribute— ноль или более свойств, доступных для этого ресурса -
actionопределяет действия Chef Infra Client для приведения узла в нужное состояние
Действия
Ресурс chef_node имеет следующие действия:
:create- По умолчанию. Используется для создания узла.
:delete- Используется для удаления узла.
:nothing- Этот блок ресурса не выполняет действий, пока не получит уведомление от другого ресурса. После уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь на выполнение в конце выполнения Chef Infra Client.
Свойства
Ресурс chef_node имеет следующие свойства:
-
automatic_attributes -
Атрибут
automaticсодержит данные, идентифицированные Ohai в начале каждого выполнения Chef Infra Client. Атрибутautomaticне может быть изменён и всегда имеет наивысший приоритет среди атрибутов.Значение по умолчанию:
{}.
-
chef_environment -
Среда Chef Infra Server, в которой должен существовать (или существует) этот узел.
-
chef_server -
URL сервера Chef Infra Server.
-
complete -
Указывает, полностью ли определяет этот ресурс узел. Если
true, любые не указанные свойства этого ресурса будут сброшены до значений по умолчанию.
-
default_attributes -
Атрибут
defaultавтоматически сбрасывается в начале каждого выполнения Chef Infra Client и имеет наименьший приоритет среди атрибутов. Используйте атрибутыdefaultв кулинарных книгах как можно чаще.Значение по умолчанию:
{}.
-
ignore_failure - Тип Ruby: true, false | Значение по умолчанию:
falseПродолжать выполнение рецепта, если ресурс завершился неудачно по любой причине.
-
name -
Уникальный идентификатор узла.
-
normal_attributes -
Атрибут
normal— это настройка, которая сохраняется в объекте узла. Атрибутnormalимеет больший приоритет, чем атрибутdefault.Значение по умолчанию:
{}.
-
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
-
override_attributes -
Атрибут
overrideавтоматически сбрасывается в начале каждого выполнения Chef Infra Client и имеет больший приоритет, чем атрибутыdefault,force_default, иnormal. Атрибутoverrideчаще всего указывается в рецепте, но может быть указан в файле атрибутов, для роли и/или среды. Кулинарная книга должна быть написана таким образом, чтобы использовать атрибутыoverrideтолько по мере необходимости.Значение по умолчанию:
{}.
-
raw_json -
Узел в формате JSON-данных. Например:
{ "overrides": {}, "name": "latte", "chef_type": "node", "json_class": "Chef::Node", "attributes": { "hardware_type": "laptop" }, "run_list": [ "recipe[apache2]" ], "defaults": {} }
-
run_list -
Список ролей и/или рецептов, которые должны быть применены (через запятую). Значение по умолчанию:
[]. Например:["recipe[default]","recipe[apache2]"]
-
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 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_node/