Подготовка к установке Sage
Подготовка к развертыванию Sage выполняется на контрольном хосте и состоит из трех этапов:
- Проверка инфраструктуры — автоматическая проверка хостов утилитой Sage Precheck.
- Запуск контейнера установщика — подготовка изолированной среды для Ansible.
- Настройка контейнера — указание дополнительных параметров перед запуском установки (опционально).
Перед началом выполнения инструкции убедитесь, что соблюдены следующие условия:
- подготовлена инфраструктура (серверы, сеть, DNS) в соответствии с Требованиями;
- созданы SSH-ключи для доступа к целевым хостам;
- от инженеров техподдержки Т-Софт получены:
- ключ
key.jsonдля авторизации в репозитории с образами; - файл лицензии Sage;
- номер актуальной версии Sage.
- ключ
Этап 1. Проверка готовности инфраструктуры
Шаг 1. Получение утилиты Sage Precheck
Утилита распространяется в виде скрипта sage.sh, который загружает бинарный файл.
Если установка или обновление производится в изолированном окружении, скрипт sage.sh и утилиту sage-precheck необходимо заранее скопировать на контрольный хост.
-
Скачайте или скопируйте на контрольный хост скрипт-загрузчик
sage.sh. -
Поместите файл сервисного ключа
key.jsonв ту же директорию, где находится скрипт. -
Загрузите утилиту проверки:
chmod +x sage.sh./sage.sh precheck-downloadКоманда выполнит авторизацию в Yandex Cloud Storage и скачает утилиту на контрольный хост. В результате в текущей директории появится исполняемый файл
sage-precheck.
Шаг 2. Настройка конфигурации
-
Создайте в той же директории конфигурационный файл
config.yaml, в котором опишите доступы к целевым хостам и их роли.Пример конфигурации:
config.yamlusername: sage # Пользователь на целевых хостахprivateKeyPath: /private/key/path # Путь к приватному SSH-ключу на контрольном хостеprivateKeyPassword: privateKeyPassword # Пароль ключа (если есть), иначе оставить пустымhosts:- hostname: host1.sage.example.com # FQDN сервераssh_port: 22 # Порт SSH (опционально, по умолчанию 22)roles: ["USER_DATA", "WARM"] # Роли хоста# Справочник ролей:# USER_DATA — наличие раздела для хранения данных# WARM — разрешение на использование HDD
Шаг 3. Запуск проверки
-
Запустите утилиту для проверки требований:
chmod +x sage-precheck./sage-precheck -config config.yaml -output reportПосле завершения проверки в директории
reportбудут созданы три файла:report.txt— основной отчет по каждому хосту со списком требований, не прошедших проверку;report.json— структурированный результат для парсинга с итоговым статусом (OK/FAIL);raw_data.json— сырые данные, собранные с хостов.
-
Изучите
report.txtи при необходимости исправьте конфигурацию соответствующих хостов: настройте параметры ядра, установите пак еты, проверьте сеть. -
После исправлений запустите проверку повторно.
Приступайте к следующим этапам только после того, как все ошибки будут устранены.
Этап 2. Запуск контейнера установщика
Шаг 1. Авторизация в реестре образов
Образы компонентов Sage, включая образ контейнера установщика, хранятся в Yandex Cloud Container Registry. Для доступа к реестру используется сервисный ключ Yandex Cloud. Файл ключа key.json должен находиться в директории со скриптом sage.sh.
-
Убедитесь, что файл
key.jsonнаходится в директории со скриптомsage.sh. -
Авторизуйтесь в реестре образов:
./sage.sh loginПри успешной авторизации отобразится сообщение
Login succeeded.
Образы могут загружаться на контрольный хост напрямую из Yandex Cloud Container Registry либо из локального реестра. Если контрольный хост не имеет прямого доступа к реестру Yandex Cloud, скачайте образы в локальный реестр и укажите путь в переменной sage_images_source:
sage_images_source:
path: <адрес_локального_реестра>
username: json_key
password: ""
Подробнее см. в разделе Работа с файлами конфигурации.
Шаг 2. Подготовка окружения и конфигурации
На этом шаге нужно скачать образ с шаблонами конфигурации clans и подготовить служебные директории.
-
Задайте версию Sage — обязательно с префиксом
v:export SAGE_VERSION=<версия SAGE> # Пример: v1.12.41. Буква `v` обязательна -
Скопируйте шаблоны конфигурации и подготовьте служебные директории:
# Создать директорииmkdir -p certificates license step spirit/kratos sage-ssh# Установить права для директорийchmod -R 0777 certificates license step spirit# Скачать шаблон файла конфигурации из образа-примераsudo docker run --name sage-trukk-${SAGE_VERSION}-template --pull always cr.yandex/crp9e7v1gtl8rlvmji4q/sage-trukk-example:release-${SAGE_VERSION} bash# Скопировать шаблон конфигурации из контейнера в текущую директориюsudo docker cp sage-trukk-${SAGE_VERSION}-template:/home/trukker/ansible/clans ./# Удалить временный образsudo docker rm -f sage-trukk-${SAGE_VERSION}-template# Установить корректные права (UID/GID 1010 внутри контейнера)sudo chown -R 1010:1010 certificates step clans spirit -
Настройте инвентарь. Для этого:
-
Откройте файл
clans/example/prod/1vm/hosts.ymlдля флейвора 1VM илиclans/example/prod/3vm/hosts.ymlдля флейвора 3VM.ВниманиеЕсли вы разворачиваете Sage в конфигурации, требующей использования более трех хостов, обратитесь за помощью к инженерам техподдержки Т-Софт.
-
Замените
fqdn.host.exampleна реальные FQDN ваших серверов.
-
-
Подготовьте лицензию и SSH-ключи:
-
Поместите в директорию
licenseфайл лицензии.ВажноФайл лицензии должен называться строго
sage_license.json. Если ваш файл называется иначе, переименуйте его. -
Скопируйте в папку
sage-sshприватный SSH-ключ, с помощью которого вы подключаетесь к целевым хостам. Убедитесь, что файл имеет понятное имя (например,sage_key), чтобы не перепутать его сkey.json.mkdir sage-sshcp ~/.ssh/<KEY_FILENAME> sage-ssh -
Установите права внутри контейнера:
sudo chown -R 1010:1010 license sage-ssh
-
Шаг 3. Запуск контейнера установщика
Установщик Sage работает внутри Docker-контейнера sage-trukk, что гарантирует идентичность среды независимо от ОС контрольного хоста.
Замените <SSH_USER> и <KEY_FILENAME> на ваши значения и запустите контейнер установщика:
sudo docker run -it --name sage-trukk-${SAGE_VERSION} --pull always --network host \
-v "${PWD}/certificates:/home/trukker/ansible/files/certificates:rw" \
-v "${PWD}/step:/home/trukker/ansible/files/step:rw" \
-v "${PWD}/clans:/home/trukker/ansible/clans:rw" \
-v "${PWD}/sage-ssh:/home/trukker/.ssh:rw" \
-v "${PWD}/license:/home/trukker/ansible/files/licenses:rw" \
-v "${PWD}/key.json:/home/trukker/ansible/files/key.json:rw" \
-v "${PWD}/spirit/kratos:/home/trukker/ansible/files/spirit/kratos:rw" \
-e 'ANSIBLE_REMOTE_USER=<SSH_USER>' \
-e 'ANSIBLE_PRIVATE_KEY_FILE=/home/trukker/.ssh/<KEY_FILENAME>' \
cr.yandex/crp9e7v1gtl8rlvmji4q/sage-trukk-example:release-${SAGE_VERSION} bash
Пояснения к параметрам запуска
-v ...certificates...— Сертификаты для TLS/SSL.-v ...step...— Токены Sage и Spirit IAM (для управления доступом).-v ...clans...— Конфигурация Ansible (инвентари, переменные, плейбуки).-v ...sage-ssh...— SSH-ключи для доступа к целевым хостам (маппинг на домашнюю директорию пользователя внутри контейнера).-v ...license...— Файл лицензии Sage.-v ...key.json...— Сервисный ключ Yandex Cloud (для доступа к реестру изнутри контейнера).-v ...spirit/kratos...— Конфигурация Spirit IAM (Kratos, Hydra, OIDC).-e 'ANSIBLE_REMOTE_USER...'— Пользователь, от имени которого Ansible будет подключаться к целевым хостам.-e 'ANSIBLE_PRIVATE_KEY_FILE...'— Путь к приватному SSH-ключу внутри контейнера.cr.yandex/...— Имя образа установщика с версией, соответствующей переменнойSAGE_VERSION. Адрес соответствует выбранному реестру образов:cr.yandexдля Yandex Cloud Container Registry либо адрес локального реестра, указанного в переменнойsage_images_source.
При первом запуске контейнер запросит пароль для Ansible Vault — сгенерируйте пароль самостоятельно.
Запомните этот пароль! Он потребуется для шифрования секретов и последующих запусков установки.
После успешного ввода пароля вы окажетесь внутри контейнера — вас встретит приглашение ко вводу:
trukker@sage-trukk:~ $
Этап 3. Настройка внутри контейнера (Опционально)
Все дальнейшие команды выполняются внутри запущенного контейнера (в оболочке bash).
Шаг 1. Конфигурация установки
Для стандартных флейворов (1VM/3VM) базовая конфигурация уже готова.
Если вы используете индивидуальную конфигурацию и/или вам требуется тонкая настройка параметров (порты, пути, лимиты), см. справочник переменных и инструкцию по редактированию в разделе Конфигурация установки Sage.
Шаг 2. Установка секретов
По умолчанию в шаблонах используются безопасные значения-заглушки — например, changeme. Для установки собственных значений выполните следующие действия:
-
Откройте файл секретов:
- Для 1VM:
clans/example/prod/1vm/group_vars/sage/_secrets.yml - Для 3VM:
clans/example/prod/3vm/group_vars/sage/_secrets.yml
- Для 1VM:
-
Замените значения по умолчанию на свои.
При необходимости вы можете зашифровать пароль с помощью Ansible Vault:
ansible-vault encrypt_string 'my_super_password'
Скопируйте вывод и вставьте его в файл секретов вместо открытого текста.
Следующие шаги
В результате выполнения инструкции:
- Проверена готовность инфраструктуры.
- Подготовлен файл инвентаря
hosts.yml— указаны серверы для развертывания. - Запущен контейнер установщика.
На этом подготовка к развертыванию завершена. Подробнее о том, как запустить Ansible-плейбук и развернуть Sage, см. в разделе Процесс установки Sage.