Spec-Zone.ru › Chef 16

Ресурс chef_role

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

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


Роль — это способ определения определенных шаблонов и процессов, которые существуют на узлах организации и относятся к одному функциональному назначению. Каждая роль состоит из нуля (или более) атрибутов и списка выполнения. Каждый узел может иметь ноль (или более) назначенных ролей. Когда роль выполняется на узле, детали конфигурации этого узла сравниваются с атрибутами роли, а затем содержимое списка выполнения этой роли применяется к деталям конфигурации узла. При запуске клиента Chef Infra он объединяет собственные атрибуты и списки выполнения со списками, содержащимися в каждой назначенной роли.

Используйте ресурс chef_role для управления ролями.

Синтаксис


Синтаксис использования ресурса chef_role в рецепте следующий:

chef_role 'name' do
  attribute 'value' # see properties section below
  ...
  action :action # see actions section below
end

где:

  • chef_role сообщает клиенту Chef Infra Client использовать поставщик Chef::Provider::ChefRole во время работы клиента Chef Infra Client
  • name — имя блока ресурса; когда свойство name не указано в составе рецепта, name также является именем роли
  • attribute — ноль (или более) доступных свойств для этого ресурса
  • action определяет, какие шаги клиент Chef Infra Client предпримет для перевода узла в нужное состояние

Действия


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

:create
По умолчанию. Используется для создания роли.
:delete
Используется для удаления роли.
:nothing
Этот блок ресурса не действует, пока не получит уведомление от другого ресурса для выполнения действия. После получения уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце работы клиента Chef Infra Client.

Свойства


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

chef_server

URL сервера Chef Infra.

complete

Используется для указания, определяет ли этот ресурс роль полностью. При true любое свойство, не указанное в этом ресурсе, будет сброшено до значений свойств по умолчанию.

default_attributes

Атрибут default автоматически сбрасывается в начале каждого запуска клиента Chef Infra Client и имеет наименьший приоритет атрибутов. В кулинарных книгах следует использовать атрибуты default как можно чаще.

Значение по умолчанию: {}.

description

Описание роли. Это значение заполняет поле описания роли на сервере Chef Infra.

env_run_lists

Список выполнения роли, специфичный для среды. Значение по умолчанию: []. Например: ["env_run_lists[webserver]"]

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

Продолжить выполнение рецепта, если ресурс завершится неудачно по любой причине.

name

Имя роли.

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-данных. Например:

{
  "name": "webserver",
  "chef_type": "role",
  "json_class": "Chef::Role",
  "default_attributes": {},
  "description": "A webserver",
  "run_list": [
    "recipe[apache2]"
  ],
  "override_attributes": {}
}
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_role
  • Синтаксис
  • Действия
  • Свойства
  • Примеры

© 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_role/

Spec-Zone.ru

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