Spec-Zone.ru › Chef 17

Ресурс chef_acl

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

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


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

Действия


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

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

Свойства


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

chef_server

URL сервера Chef Infra.

complete

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

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

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

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
path

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

raw_json

Chef Infra Client в формате 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' ]
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\[Строка\]

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

Spec-Zone.ru

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