Spec-Zone.ru › Chef 18

Ресурс chef_data_bag_item

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

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


Мешок данных — это контейнер, содержащий связанные элементы мешка данных, где каждый отдельный элемент мешка данных — это файл JSON. Утилита knife может загрузить элемент мешка данных, указав имя мешка данных, к которому он принадлежит, а затем имя файла элемента мешка данных. Единственное структурное требование для элемента мешка данных заключается в том, что он должен иметь id.

{
  /* This is a supported comment style */
  // This style is also supported
  "id": "ITEM_NAME",
  "key": "value"
}

где

  • key и value являются key:value парой для каждого дополнительного атрибута внутри элемента мешка данных
  • /* ... */ и // ... показывают два способа добавления комментариев к элементу мешка данных

Используйте ресурс chef_data_bag_item для управления элементами мешка данных.

Синтаксис


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

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

где:

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

Действия


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

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

Свойства


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

chef_server

URL сервера Chef Infra.

complete

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

encrypt

Используется для указания, используется ли шифрование для элемента мешка данных.

encryption_version

Минимальная требуемая версия шифрования мешка данных. Возможные значения: 0, 1, 2, и 3. Когда все машины в организации работают с клиентом chef-client версии 13.0.113 (или выше), рекомендуется установить это значение на 3.

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
raw_data

Используется для создания мешка данных из локального файла из ./data_bags/bag_name/file.

raw_json

Элемент мешка данных в формате JSON. Например:

{
  "id": "adam",
  "real_name": "Adam Brent Jacob"
}
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_data_bag_item/

Spec-Zone.ru

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