Spec-Zone.ru › Chef 16

Ресурс chef_acl

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

Справочная страница ресурсов


Используйте ресурс chef_acl для взаимодействия с списками управления доступом (ACL), которые существуют на сервере Chef Infra.

Синтаксис


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

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

где:

  • chef_acl сообщает клиенту Chef Infra использовать Chef::Provider::ChefAcl провайдер во время выполнения клиента Chef Infra
  • name — имя блока ресурса; когда свойство path не указано в рамках рецепта, name также является именем клиента Chef Infra.
  • attribute — ноль или более доступных свойств для этого ресурса
  • action определяет действия, которые клиент Chef Infra выполнит для приведения узла в желаемое состояние

Действия


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

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

Свойства


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

chef_server

URL сервера Chef Infra.

complete

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

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

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

notifies
Тип Ruby: Символ, Chef::Resource\[String\]

Ресурс может уведомить другой ресурс о действии при изменении его состояния. Укажите 'resource[name]', :action действия, которое должен выполнить другой ресурс, и :timer для этого действия. Ресурс может уведомлять несколько ресурсов; для каждого уведомляемого ресурса используйте оператор notifies.

Если указанный ресурс не существует, будет поднята ошибка. В отличие от subscribes, если исходный ресурс не найден, ошибка не будет поднята.

Таймер определяет момент во время выполнения клиента Chef Infra, когда выполняется уведомление. Доступны следующие таймеры:

:before

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

:delayed

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

:immediate, :immediately

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

Синтаксис для notifies:

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

Путь к каталогу в chef-repo, к которому применяется ACL. Например: nodes, nodes/*, nodes/my_node, */*, **, roles/base, data/secrets, cookbooks/apache2, /users/*, и так далее.

raw_json

Клиент Chef Infra в формате JSON. Например:

{
  "clientname": "client_name",
  "orgname": "org_name",
  "validator": false,
  "certificate": "-----BEGIN CERTIFICATE-----\n
                  ...
                  1234567890abcdefghijklmnopq\n
                  ...
                  -----END CERTIFICATE-----\n",
  "name": "node_name"
}
recursive

Используется для применения изменений к дочерним объектам. Используйте :on_change для применения изменений к дочерним объектам только при изменении родительского объекта. Установите в true для применения изменений, даже если родительский объект не изменился. Установите в false для предотвращения любых изменений. Значение по умолчанию: :on_change.

remove_rights

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

remove_rights :read, :users => 'jkeiser', :groups => [ 'admins', 'users' ]

или:

remove_rights [ :create, :read ], :users => [ 'jkeiser', 'adam' ]

или:

remove_rights :all, :users => [ 'jkeiser', 'adam' ]
retries
Тип Ruby: Целое число | Значение по умолчанию: 0

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

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

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

rights

Используется для добавления прав. Синтаксис: :right, :right => 'user', :groups => [ 'group', 'group']. Например:

rights :read, :users => 'jkeiser', :groups => [ 'admins', 'users' ]

или:

rights [ :create, :read ], :users => [ 'jkeiser', 'adam' ]

или:

rights :all, :users => 'jkeiser'
subscribes
Тип Ruby: Символ, Chef::Resource\[String\]

Ресурс может отслеживать другой ресурс и выполнять действие, если состояние отслеживаемого ресурса изменится. Укажите '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_acl
  • Синтаксис
  • Действия
  • Свойства
  • Примеры

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

Spec-Zone.ru

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