Ресурс chef_role
Эта страница сгенерирована из исходного кода клиента Chef Infra. Чтобы предложить изменение, отредактируйте файл chef_role.rb и отправьте запрос на вытягивание в репозиторий клиента Chef 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/