Spec-Zone.ru › Chef 18

Ресурс chef_container

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

Страница всех ресурсов Infra


Используйте ресурс chef_container для взаимодействия с объектами контейнеров, которые существуют на сервере Chef Infra.

Синтаксис


Синтаксис использования ресурса chef_container в рецепте:

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

где:

  • chef_container указывает Chef Infra Client использовать Chef::Provider::ChefContainer провайдер во время выполнения Chef Infra Client
  • name — имя блока ресурса
  • attribute — ноль или более свойств, доступных для этого ресурса
  • action определяет шаги, которые Chef Infra Client предпримет для приведения узла в нужное состояние

Действия


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

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

Свойства


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

chef_server

URL сервера Chef Infra.

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

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

name

Имя контейнера.

notifies
Тип Ruby: Symbol, Chef::Resource\[String\]

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

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

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

:before

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

:delayed

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

:immediate, :immediately

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

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

notifies :action, 'resource[name]', :timer
subscribes
Тип Ruby: Symbol, 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 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_container/

Spec-Zone.ru

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