Группа команд stronghold bootstrap генерирует артефакты развёртывания Stronghold. Доступна начиная с версии v1.19.

Подкоманды:

ПодкомандаНазначение
serviceСгенерировать shell-скрипт подготовки одноузлового Linux-сервера (каталоги, конфигурация, TLS, systemd, пользователь, бинарный файл)
helmЗаписать на диск архив Helm-чарта Stronghold, встроенный в бинарный файл
dockerСобрать OCI-совместимый tar-архив Docker-образа с бинарным файлом Stronghold
stronghold bootstrap -help

Подготовка Linux-сервера

Команда stronghold bootstrap service генерирует shell-скрипт, который подготавливает одноузловое окружение Stronghold: каталоги в /opt/stronghold, файл конфигурации с хранилищем Raft, при необходимости самоподписанные TLS-сертификаты, systemd-unit, системного пользователя и установку бинарного файла.

Самоподписанные TLS-сертификаты подходят только для тестирования. Для production подготовьте собственные сертификаты и используйте параметр -no-tls.

По умолчанию скрипт выводится в stdout — его можно просмотреть перед применением:

stronghold bootstrap service | less

Примените скрипт:

stronghold bootstrap service | sudo sh

или выполните установку напрямую:

sudo stronghold bootstrap service -apply

После запуска сервиса инициализируйте и распечатайте Stronghold, как описано в разделе Установка.

Для развёртывания кластера в режиме HA базовое окружение на каждом узле можно подготовить с параметром -no-tls, а затем разместить собственные сертификаты и конфигурацию. См. Развёртывание кластера в режиме HA.

Параметры service

Полный список параметров доступен в справке:

stronghold bootstrap service -help

Часто используемые параметры:

ПараметрНазначение
-applyВыполнить сгенерированный скрипт вместо вывода в stdout
-base-dirБазовый каталог установки (по умолчанию /opt/stronghold)
-configПуть к файлу конфигурации Stronghold
-data-dirПуть к каталогу данных Raft
-tls-dirПуть к каталогу TLS-сертификатов
-bin-pathПуть назначения для бинарного файла Stronghold
-source-binaryИсходный путь бинарного файла Stronghold для установки (по умолчанию — текущий исполняемый файл)
-systemd-unitПуть к файлу systemd-unit (по умолчанию /etc/systemd/system/stronghold.service)
-userСистемный пользователь для запуска сервиса (по умолчанию stronghold)
-groupСистемная группа для запуска сервиса (по умолчанию stronghold)
-storageТип хранилища (поддерживается только raft)
-node-idИдентификатор узла Raft (по умолчанию — имя хоста)
-listener-addressАдрес TCP-listener в формате host:port (по умолчанию 0.0.0.0:8200)
-api-addrAPI-адрес, который Stronghold сообщает клиентам (определяется автоматически, если не задан)
-cluster-addrАдрес кластера для Raft (определяется автоматически, если не задан)
-no-user-createНе создавать системного пользователя
-no-systemdНе создавать и не включать systemd-unit
-no-tlsНе генерировать TLS-сертификаты
-tls-disableОтключить TLS в конфигурации listener (только для разработки)
-forceПерезаписать существующие файлы вместо ошибки

Извлечение Helm-чарта

Команда stronghold bootstrap helm записывает на диск архив Helm-чарта Stronghold, встроенный в бинарный файл. Используйте архив с helm install или helm template.

Предварительные требования: Helm 3 и доступ к кластеру Kubernetes.

Запишите архив чарта в текущий каталог (имя файла по умолчанию соответствует версии встроенного чарта):

stronghold bootstrap helm

или укажите путь явно:

stronghold bootstrap helm -output stronghold.tgz

Сформируйте манифесты без установки:

helm template stronghold stronghold.tgz > stronghold.yaml

Установите чарт:

helm install stronghold stronghold.tgz

Параметры helm

ПараметрНазначение
-outputПуть к выходному архиву (по умолчанию — имя файла встроенного чарта)
stronghold bootstrap helm -help

Сборка Docker-образа

Команда stronghold bootstrap docker собирает минимальный OCI-совместимый tar-архив образа на диске. По умолчанию в образ встраивается текущий бинарный файл Stronghold. Импортируйте архив командой docker load.

Соберите tar-архив образа:

stronghold bootstrap docker

По умолчанию файл называется stronghold-v<version>.tar в текущем каталоге, а тег образа — stronghold:<version>.

Загрузите и запустите образ:

docker load -i stronghold-v1.19.0.tar
docker run --rm -p 8200:8200 stronghold:1.19.0

Команда контейнера по умолчанию — stronghold server -dev. Для запуска, близкого к production, передайте собственные аргументы сервера и смонтируйте файл конфигурации.

Для динамически слинкованного бинарного файла встройте дополнительные разделяемые библиотеки или плагины параметром -extra-file в формате source=destination:

stronghold bootstrap docker \
  -extra-file /lib64/ld-linux-x86-64.so.2=/lib64/ld-linux-x86-64.so.2 \
  -extra-file /lib/x86_64-linux-gnu/libc.so.6=/lib/x86_64-linux-gnu/libc.so.6 \
  -extra-file /opt/aktivco/rutokenecp/amd64/librtpkcs11ecp.so=/lib/librtpkcs11ecp.so

Параметры docker

ПараметрНазначение
-outputПуть к выходному tar-архиву
-tagТег Docker-образа в формате repo:ref
-source-binaryИсходный путь бинарного файла Stronghold для встраивания (по умолчанию — текущий исполняемый файл)
-ca-certsПуть к бандлу CA-сертификатов для встраивания (по умолчанию /etc/ssl/certs/ca-certificates.crt)
-extra-fileДополнительный файл для встраивания в формате source=destination (можно указать несколько раз)
stronghold bootstrap docker -help