Ресурс 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_serverURL сервера 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 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/