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