Spec-Zone.ru › Chef 18

Ресурс chef_role

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

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


Роль — это способ определения определенных шаблонов и процессов, которые существуют на узлах организации и относятся к одной функциональной обязанности. Каждая роль состоит из нуля (или более) атрибутов и списка выполнения. К каждому узлу может быть назначено ноль (или более) ролей. Когда роль выполняется на узле, детали конфигурации этого узла сравниваются с атрибутами роли, а затем содержимое списка выполнения этой роли применяется к деталям конфигурации узла. Когда запускается клиент 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 использовать Chef::Provider::ChefRole провайдер во время выполнения клиента Chef Infra
  • name — имя блока ресурса; когда свойство name не указано в рамках рецепта, name также является именем роли
  • attribute — ноль (или более) доступных свойств этого ресурса
  • action определяет шаги, которые клиент Chef Infra предпримет для приведения узла в нужное состояние

Действия


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

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

Свойства


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

chef_server

URL сервера Chef Infra.

complete

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

default_attributes

Атрибут default автоматически сбрасывается в начале каждого выполнения клиента Chef Infra и имеет самый низкий приоритет атрибутов. Используйте атрибуты 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, когда выполняется уведомление. Доступны следующие таймеры:

:before

Указывает, что действие над уведомленным ресурсом должно выполняться до обработки блока ресурса, в котором находится уведомление.

:delayed

По умолчанию. Указывает, что уведомление должно быть помещено в очередь и выполнено в конце выполнения клиента Chef Infra.

:immediate, :immediately

Указывает, что уведомление должно быть выполнено немедленно для каждого уведомленного ресурса.

Синтаксис notifies:

notifies :action, 'resource[name]', :timer
override_attributes

Атрибут override автоматически сбрасывается в начале каждого выполнения клиента Chef Infra и имеет более высокий приоритет атрибутов, чем атрибуты 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": {}
}
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, когда выполняется уведомление. Доступны следующие таймеры:

:before

Указывает, что действие над уведомленным ресурсом должно выполняться до обработки блока ресурса, в котором находится уведомление.

:delayed

По умолчанию. Указывает, что уведомление должно быть помещено в очередь и выполнено в конце выполнения клиента Chef Infra.

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

Spec-Zone.ru

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