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