Ресурс habitat_sup
Эта страница сгенерирована из исходного кода Chef Infra Client. Чтобы предложить изменение, отредактируйте файл habitat_sup.rb и отправьте запрос на вытягивание в репозиторий Chef Infra Client.
Используйте ресурс 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 Client выполнит для приведения узла к нужному состоянию. -
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 Client.
:run- Действие
runустанавливает Habitat с помощью ресурсаhabitat_install, гарантирует установку необходимых версий пакетовcore/hab-supиcore/hab-launcherс помощьюhabitat_package, а затем добавляет соответствующие определения системного инициализатора и управляет сервисом. (по умолчанию)
Свойства
Ресурс habitat_sup имеет следующие свойства:
-
auth_token - Тип в Ruby: Строка
Токен авторизации для доступа к закрытой организации на bldr. Это значение подставляется в соответствующий файл сервиса.
-
auto_update - Тип в Ruby: true, false | Значение по умолчанию:
falseПередает
--auto-update. Это настроит управляющий сервер Habitat на автоматическое обновление всякий раз, когда выпущена стабильная версия.
-
bldr_url - Тип в Ruby: Строка
URL Habitat Builder для ресурса
habitat_package, если необходимо.
-
event_stream_application - Тип в Ruby: Строка
Название вашей программы, которое будет отображаться в панели приложений Chef Automate.
-
event_stream_cert - Тип в Ruby: Строка
С
Intermediary Certificatesили, при настройке Automate 2 на использование TLS с действительным сертификатом, вам необходимо предоставитьHabitatс вашим сертификатом для работы с Automate. Следуйте этим шагам!.
-
event_stream_environment - Тип в Ruby: Строка
Среда приложений для управляющего сервера, это для группировки в панели приложений.
-
event_stream_site - Тип в Ruby: Строка
Метка панели приложений для «сайта» приложения — может фильтроваться в панели.
-
event_stream_token - Тип в Ruby: Строка
Токен Chef Automate для отправки данных потока событий приложения.
-
event_stream_url - Тип в Ruby: Строка
AUTOMATE_HOSTNAME:4222— URL Chef Automate с указанным портом 4222Примечание
Порт можно изменить при необходимости.
-
gateway_auth_token - Тип в Ruby: Строка
Токен авторизации для доступа к HTTP-шлюзу управляющего сервера. Это значение подставляется в соответствующий файл сервиса.
-
hab_channel - Тип в Ruby: Строка
Канал для установки Habitat. По умолчанию — stable
-
health_check_interval - Тип в Ruby: Строка, Целое число
Интервал (секунды) для выполнения проверок работоспособности.
-
keep_latest - Тип в Ruby: Строка
Автоматически очищает старые пакеты. Если этот флаг включен, запуск сервиса инициирует удаление всех предыдущих версий связанного пакета. Это также относится к перезапуску сервиса из-за обновления. Если в этот аргумент передано число, то будет сохраняться указанное число последних версий. Та же логика применяется к пакету управляющего сервера
env:HAB_KEEP_LATEST_PACKAGES=1Примечание
Это требует версию Habitat
1.5.86+
-
launcher_version - Тип в Ruby: Строка
Позволяет выбрать версию установщика.
-
license - Тип в Ruby: Строка Разрешенные значения:
"accept"Указывает на принятие лицензии habitat при установке в
accept.
-
limit_no_files - Тип в Ruby: Строка
позволяет установить LimitNOFILE в системной службе systemd при использовании
Примечание
Только для Linux.
-
listen_ctl - Тип в Ruby: Строка
Только для действия
:run, передает--listen-ctlпо указанному адресу и порту, например,0.0.0.0:9632, в команду hab.
-
listen_gossip - Тип в Ruby: Строка
Только для действия
:run, передает--listen-gossipпо указанному адресу и порту, например,0.0.0.0:9638, в команду hab.
-
listen_http - Тип в Ruby: Строка
Только для действия
:run, передает--listen-httpпо указанному адресу и порту, например,0.0.0.0:9631, в команду hab.
-
org - Тип в Ruby: Строка | Значение по умолчанию:
defaultТолько для действия
:run, передает--orgс указанным именем организации в команду hab.
-
peer - Тип в Ruby: Строка, Массив
Только для действия
:run, передает--peerс указанным начальным узлом в команду hab.
-
permanent_peer - Тип в Ruby: true, false | Значение по умолчанию:
falseТолько для действия
:run, передает--permanent-peerв команду hab.
-
ring - Тип в Ruby: Строка
Только для действия
:run, передает--ringс указанным именем ключа кольца в команду hab.
-
service_version - Тип в Ruby: Строка
Применимо только для службы Windows
-
sup_version - Тип в Ruby: Строка
Позволяет выбрать версию управляющего сервера, которую вы хотите установить.
Примечание
Если указана версия, также будет установлена эта версия habitat, если она ещё не установлена.
-
toml_config - Тип в Ruby: true, false | Значение по умолчанию:
falseПоддерживает использование конфигурации управляющего сервера toml вместо передачи параметров exec в сервис, ссылка.
-
update_condition - Тип в Ruby: Строка
Передает
--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]', действие, которое необходимо выполнить, и :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.private.net'
end
Использование update_condition
habitat_sup 'default' do
bldr_url 'https://bldr.private.net'
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.private.net:4222'
event_stream_token 'myawesomea2clitoken='
event_stream_cert '/hab/cache/ssl/mycert.crt'
end
Предоставление конкретных версий
habitat_sup 'default' do
bldr_url 'https://bldr.private.net'
sup_version '1.5.50'
launcher_version '13458'
service_version '0.6.0' # WINDOWS ONLY
end
Установите последнюю версию пакетов для сохранения
habitat_sup ‘default’ do bldr_url ‘https://bldr.private.net’ 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/