Spec-Zone.ru › Chef 18

Ресурс habitat_sup

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

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


Используйте ресурс habitat_sup для запуска супервайзера Chef Habitat для одной или нескольких служб Chef Habitat. Ресурс обычно используется в сочетании с habitat_service, который будет управлять службами, загруженными и запущенными в супервайзере.

Новое в Chef Infra Client 17.3.

Синтаксис


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

habitat_sup 'name' do
  auth_token                    String
  auto_update                   true, false # default value: false
  bldr_url                      String
  event_stream_application      String
  event_stream_cert             String
  event_stream_environment      String
  event_stream_site             String
  event_stream_token            String
  event_stream_url              String
  gateway_auth_token            String
  hab_channel                   String
  health_check_interval         String, Integer
  keep_latest                   String
  launcher_version              String
  license                       String
  limit_no_files                String
  listen_ctl                    String
  listen_gossip                 String
  listen_http                   String
  org                           String # default value: "default"
  peer                          String, Array
  permanent_peer                true, false # default value: false
  ring                          String
  service_version               String
  sup_version                   String
  toml_config                   true, false # default value: false
  update_condition              String
  action                        Symbol # defaults to :run if not specified
end

где:

  • habitat_sup — это ресурс.
  • name — это имя, присвоенное блоку ресурса.
  • action определяет, какие действия предпримет клиент Chef Infra для приведения узла в желаемое состояние.
  • auth_token, auto_update, bldr_url, event_stream_application, event_stream_cert, event_stream_environment, event_stream_site, event_stream_token, event_stream_url, gateway_auth_token, hab_channel, health_check_interval, keep_latest, launcher_version, license, limit_no_files, listen_ctl, listen_gossip, listen_http, org, peer, permanent_peer, ring, service_version, sup_version, toml_config, и update_condition — это свойства, доступные для этого ресурса.

Действия


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

:nothing
Этот блок ресурса не действует, если не получит уведомление от другого ресурса о необходимости действия. После получения уведомления этот блок ресурса либо запускается немедленно, либо помещается в очередь для запуска в конце работы клиента Chef Infra.
:run
Действие run обрабатывает установку Habitat с помощью ресурса habitat_install, гарантирует, что установлены соответствующие версии пакетов core/hab-sup и core/hab-launcher с помощью habitat_package, а затем добавляет соответствующие определения системы инициализации и управляет службой. (по умолчанию)
:stop

Свойства


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

auth_token
Тип Ruby: String

Маркер аутентификации для доступа к частной организации на bldr. Это значение используется в соответствующем файле службы.

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

Передает --auto-update. Это настроит супервайзер Habitat на автоматическое обновление всякий раз, когда будет выпущен стабильная версия.

bldr_url
Тип Ruby: String

URL-адрес Habitat Builder для ресурса habitat_package, если это необходимо.

event_stream_application
Тип Ruby: String

Имя вашего приложения, которое будет отображаться на панели приложений Chef Automate.

event_stream_cert
Тип Ruby: String

С Intermediary Certificates или Automate 2, настроенным на использование TLS с действительным сертификатом, вам потребуется предоставить Habitat с вашим сертификатом для работы связи с Automate. Выполните следующие шаги!.

event_stream_environment
Тип Ruby: String

Среда приложения для супервайзера, используется для группировки на панели приложений.

event_stream_site
Тип Ruby: String

Метка панели приложений для «сайта» приложения — может быть отфильтрована на панели.

event_stream_token
Тип Ruby: String

Маркер Chef Automate для отправки данных потока событий приложения.

event_stream_url
Тип Ruby: String

AUTOMATE_HOSTNAME:4222 — URL-адрес Chef Automate с указанным портом 4222

Примечание

Порт можно изменить при необходимости.

gateway_auth_token
Тип Ruby: String

Маркер аутентификации для доступа к шлюзу HTTP супервайзера. Это значение используется в соответствующем файле службы.

hab_channel
Тип Ruby: String

Канал для установки Habitat. По умолчанию — stable

health_check_interval
Тип Ruby: String, Integer

Интервал (секунды) для выполнения проверок работоспособности.

keep_latest
Тип Ruby: String

Автоматически очищает старые пакеты. Если этот флаг включен, запуск службы инициирует удаление всех предыдущих версий связанного пакета. Это также применимо, когда служба перезапускается из-за обновления. Если в этот аргумент передается число, будет сохранено это количество последних версий. Та же логика применяется к пакету супервайзера env:HAB_KEEP_LATEST_PACKAGES=1

Примечание

Это требует версии Habitat 1.5.86+

launcher_version
Тип Ruby: String

Позволяет выбрать, какую версию программы запуска установить.

license
Тип Ruby: String Допустимые значения: "accept"

Указывает на принятие лицензии Habitat, если установлено значение accept.

limit_no_files
Тип Ruby: String

позволяет установить LimitNOFILE в службе systemd при использовании

Примечание

Только для Linux.

listen_ctl
Тип Ruby: String

Действительно только для действия :run, передает --listen-ctl с указанным адресом и портом, например, 0.0.0.0:9632, в команду hab.

listen_gossip
Тип Ruby: String

Действительно только для действия :run, передает --listen-gossip с указанным адресом и портом, например, 0.0.0.0:9638, в команду hab.

listen_http
Тип Ruby: String

Действительно только для действия :run, передает --listen-http с указанным адресом и портом, например, 0.0.0.0:9631, в команду hab.

org
Тип Ruby: String | Значение по умолчанию: default

Действительно только для действия :run, передает --org с указанным именем организации в команду hab.

peer
Тип Ruby: String, Array

Действительно только для действия :run, передает --peer с указанным начальным участником в команду hab.

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

Действительно только для действия :run, передает --permanent-peer в команду hab.

ring
Тип Ruby: String

Действительно только для действия :run, передает --ring с указанным именем ключа кольца в команду hab.

service_version
Тип Ruby: String

Позволяет выбрать, какую версию службы Windows установить.

sup_version
Тип Ruby: String

Позволяет выбрать, какую версию супервайзера вы хотите установить.

Примечание

Если указана версия, она также установит эту версию Habitat, если она не была установлена ранее.

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

Поддерживает использование конфигурации Supervisor toml вместо передачи параметров exec в службу, ссылка.

update_condition
Тип Ruby: String

Передает --update-condition, определяя, когда следует обновлять эту службу. По умолчанию — latest. Варианты: latest или track-channel **_

Примечание

Это требует минимальной версии Habitat 1.5.71_** - latest: Запускает последний пакет, который можно найти в настроенном канале и локальных пакетах. - track-channel: Всегда запускает то, что находится в начале заданного канала. Это позволяет откатить службу, когда понижение версии пакета в канале приведет к откату пакета к более старой версии. Следствием включения этого условия является то, что пакеты, более новые, чем пакет в начале канала, будут автоматически удалены во время отката службы.


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


Ресурсы 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_sup в рецептах:

Настройка с использованием только значений по умолчанию

habitat_sup 'default'

Обновление портов прослушивания и использование конфигурации Supervisor toml

habitat_sup 'test-options' do
  listen_http '0.0.0.0:9999'
  listen_gossip '0.0.0.0:9998'
  toml_config true
end

Использование с локальным Habitat Builder. Примечание: доступ к общедоступному билдеру может быть недоступен из-за политики вашей компании

habitat_sup 'default' do
  bldr_url 'https://bldr.example.com'
end

Использование update_condition

habitat_sup 'default' do
  bldr_url 'https://bldr.example.com'
  habitat_channel 'dev'
  update_condition 'track-channel'
end

Предоставление информации event_stream_*

habitat_sup 'default' do
  license 'accept'
  event_stream_application 'myapp'
  event_stream_environment 'production'
  event_stream_site 'MySite'
  event_stream_url 'automate.example.com:4222'
  event_stream_token 'myawesomea2clitoken='
  event_stream_cert '/hab/cache/ssl/mycert.crt'
end

Предоставление определенных версий

habitat_sup 'default' do
  bldr_url 'https://bldr.example.com'
  sup_version '1.5.50'
  launcher_version '13458'
  service_version '0.6.0' # WINDOWS ONLY
end

Установить последнюю версию пакетов для сохранения

habitat_sup ‘default’ do bldr_url ‘https://bldr.example.com’ sup_version ‘1.5.86’ launcher_version ‘13458’ service_version ‘0.6.0’ # WINDOWS ONLY keep_latest ‘2’ 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_sup/

Spec-Zone.ru

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