Spec-Zone.ru › Chef 16

Ресурс chef_node

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

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


Узел — это любое устройство: физическое, виртуальное, облачное, сетевое устройство и т. д., находящееся под управлением 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": {}
}
retries
Тип в Ruby: Целое число | Значение по умолчанию: 0

Количество попыток перехвата исключений и повторного выполнения ресурса.

retry_delay
Тип в Ruby: Целое число | Значение по умолчанию: 2

Задержка повторного выполнения (в секундах).

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_node
  • Синтаксис
  • Действия
  • Свойства
  • Примеры

© 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