Spec-Zone.ru › Chef 18

Ресурс 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