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