Spec-Zone.ru › Chef 18

Ресурс chef_node

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

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


Узел — это любое устройство (физическое, виртуальное, облачное, сетевое и т. д.), которое управляется 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/

Spec-Zone.ru

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