Spec-Zone.ru › Chef 17

Ресурс habitat_package

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

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


Используйте habitat_package для установки или удаления пакетов Chef Habitat из Habitat Builder.

Новое в Chef Infra Client 17.3.

Синтаксис


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

habitat_package 'name' do
  auth_token        String
  binlink           true, false, force # default value: false
  bldr_url          String # default value: "https://bldr.habitat.sh"
  channel           String # default value: "stable"
  exclude           String
  keep_latest       String
  no_deps           true, false # default value: false
  options           String
  package_name      String, Array
  source            String
  timeout           String, Integer
  version           String, Array
  action            Symbol # defaults to :install if not specified
end

где:

  • habitat_package — это ресурс.
  • name — это имя, присвоенное блоку ресурса.
  • action определяет, какие действия Chef Infra Client предпримет для приведения узла к желаемому состоянию.
  • auth_token, binlink, bldr_url, channel, exclude, keep_latest, no_deps, options, package_name, source, timeout, и version — это свойства, доступные для этого ресурса.

Действия


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

:install
(по умолчанию)
:lock
:nothing
Этот блок ресурса не выполняет действий, пока не получит уведомление от другого ресурса. После получения уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.
:purge
:reconfig
:remove
:unlock
:upgrade

Свойства


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

auth_token
Тип Ruby: Строка

Токен аутентификации для установки пакета из частной организации на Habitat builder.

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

Если habitat должен попытаться выполнить binlink пакета. Допустимые значения: true, false, :force. Неудачно при binlinking, если установлено true и существует двоичный или binlink.

bldr_url
Тип Ruby: Строка | Значение по умолчанию: https://bldr.habitat.sh

URL сервера habitat builder, откуда будут загружаться пакеты. По умолчанию используется общедоступный Habitat Builder

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

Канал выпуска, из которого нужно установить пакет.

exclude
Тип Ruby: Строка

Идентификатор одного или нескольких пакетов, которые не должны быть удалены. (например: core/redis, core/busybox-static/1.42.2/21120102031201)

keep_latest
Тип Ruby: Строка

Возможность удаления с сохранением указанной версии. Эта функция работает только в Habitat 1.5.86+

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

Удалить пакет, но сохранить зависимости.

options
Тип Ruby: Строка

Передача дополнительных параметров команде habitat package.

package_name
Тип Ruby: Строка, Массив

Необязательное свойство для установки имени пакета, если оно отличается от имени блока ресурса.

source
Тип Ruby: Строка

Необязательный путь к пакету в локальной файловой системе.

timeout
Тип Ruby: Строка, Целое число

Время ожидания в секундах перед истечением времени.

version
Тип 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 Infra Client.

Уведомления

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.

Примеры


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

Установка core/redis

habitat_package 'core/redis'

Установка определенной версии пакета из канала unstable

habitat_package 'core/redis' do
  version '3.2.3'
  channel 'unstable'
end

Установка пакета с конкретной версией и ревизией

habitat_package 'core/redis' do
  version '3.2.3/20160920131015'
end

Установка пакета и принудительное связывание его бинарных файлов с системным путем

habitat_package 'core/nginx' do
  binlink :force
end

Установка пакета и связывание его бинарных файлов с системным путем

habitat_package 'core/nginx' do
  options '--binlink'
end

Удаление пакета и всех его версий

habitat_package 'core/nginx'
  action :remove
end

Удаление указанной версии пакета

habitat_package 'core/nginx/3.2.3'
  action :remove
end

Удаление пакета, но сохранение некоторых версий Примечание: Доступно начиная с Habitat 1.5.86

habitat_package 'core/nginx'
  keep_latest '2'
  action :remove
end
**Remove package but keep dependencies**
habitat_package 'core/nginx'
  no_deps false
  action :remove
end

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

Spec-Zone.ru

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