Spec-Zone.ru › Chef 16

Ресурс chef_vault_secret

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

Страница справки по ресурсам


Используйте ресурс chef_vault_secret для хранения секретов в элементах хранилища Chef Vault. В тех случаях, где это возможно и уместно, этот ресурс пытается отобразить поведение и функциональность подкоманд knife vault.

Новое в Chef Infra Client 16.0.

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса chef_vault_secret:

chef_vault_secret 'name' do
  admins           String, Array
  clients          String, Array
  data_bag         String
  environment      String
  id               String # default value: 'name' unless specified
  raw_data         Hash, ChefUtils::Mash # default value: {}
  search           String # default value: "*:*"
  action           Symbol # defaults to :create if not specified
end

где:

  • chef_vault_secret — это ресурс.
  • name — имя блока ресурса.
  • action определяет, какие шаги Chef Infra Client предпримет, чтобы привести узел в нужное состояние.
  • admins, clients, data_bag, environment, id, raw_data, и search — это доступные свойства этого ресурса.

Действия


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

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

Свойства


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

admins
Тип в Ruby: Строка, массив | REQUIRED

Список администраторов, которые должны иметь доступ к элементу. Соответствует параметру «admin» при использовании плагина chef-vault knife. Может быть указан как строка с разделителями запятыми или как массив.

clients
Тип в Ruby: Строка, массив

Запрос поиска для API-клиентов узлов, которые должны иметь доступ к элементу.

data_bag
Тип в Ruby: Строка | REQUIRED

Пакет данных, содержащий элемент.

environment
Тип в Ruby: Строка

Среда Chef пакета данных, если хранятся значения по средам.

id
Тип в Ruby: Строка | Значение по умолчанию: The resource block's name

Имя элемента пакета данных, если оно отличается от имени блока ресурса.

raw_data
Тип в Ruby: Хэш, ChefUtils::Mash | Значение по умолчанию: {}

Необработанные данные в виде Ruby-хэша, которые будут храниться в элементе.

search
Тип в Ruby: Строка | Значение по умолчанию: *:*

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


Общие функции ресурсов


Ресурсы Chef включают общие свойства, уведомления и защитные механизмы ресурсов.

Общие свойства

Следующие свойства являются общими для всех ресурсов:

compile_time

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

Управляет фазой, в которой ресурс выполняется на узле. Установите в true, чтобы запустить его во время построения коллекции ресурсов (compile phase). Установите в false, чтобы запустить его во время настройки узла Chef Infra Client (converge phase).

ignore_failure

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

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

retries

Тип в Ruby: Целое число | Значение по умолчанию: 0

Количество попыток перехватить исключения и повторить ресурс.

retry_delay

Тип в Ruby: Целое число | Значение по умолчанию: 2

Задержка повтора (в секундах).

sensitive

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

Убедиться, что конфиденциальные данные ресурса не регистрируются Chef InfraClient.

Уведомления

notifies

Тип в Ruby: Символ, '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: Символ, '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 Infra Client. Основываясь на результатах этой оценки, защитный механизм используется для того, чтобы сказать Chef Infra Client, следует ли ему продолжать выполнение ресурса. Защитный механизм принимает либо строковое значение, либо значение блока Ruby:

  • Строка выполняется как команда оболочки. Если команда возвращает 0, защитный механизм применяется. Если команда возвращает любое другое значение, то свойство защитного механизма не применяется. Строковые защитные механизмы в powershell_script выполняют команды Windows PowerShell и могут возвращать true в дополнение к 0.
  • Блок выполняется как код Ruby, который должен вернуть либо true или false. Если блок возвращает true, свойство защитного механизма применяется. Если блок возвращает false, свойство защитного механизма не применяется.

Свойство защитного механизма полезно для обеспечения идемпотентности ресурса, позволяя этому ресурсу проверять желаемое состояние по мере выполнения, а затем, если желаемое состояние присутствует, для Chef Infra Client не выполнять никаких действий.

Свойства

Следующие свойства могут использоваться для определения защитного механизма, который оценивается во время фазы выполнения Chef Infra Client:

not_if

Запретить выполнение ресурса, когда условие возвращает true.

only_if

Разрешить выполнение ресурса только в том случае, если условие возвращает true.

Примеры


В следующих примерах показаны различные подходы к использованию ресурса chef_vault_secret в рецептах:

Для создания элемента «foo» в существующем пакете данных «bar»:

chef_vault_secret 'foo' do
  data_bag 'bar'
  raw_data({ 'auth' => 'baz' })
  admins 'jtimberman'
  search '*:*'
end

Для предоставления нескольким администраторам доступа к элементу:

chef_vault_secret 'root-password' do
  admins 'jtimberman,paulmooring'
  data_bag 'secrets'
  raw_data({ 'auth' => 'DoNotUseThisPasswordForRoot' })
  search '*:*'
end
Ресурс chef_vault_secret
  • Синтаксис
  • Действия
  • Свойства
  • Общие возможности ресурса
    • Общие свойства
    • Уведомления
    • Защиты
  • Примеры

© 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_vault_secret/

Spec-Zone.ru

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