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