Avanpost CA : 2. Быстрый старт Avanpost CA в Docker

Назначение

Docker Quick Start позволяет быстро развернуть Avanpost CA для демонстрации, тестирования или пилотирования.

Конфигурация быстрого старта не является готовым шаблоном промышленной эксплуатации.

Когда использовать

  • демонстрация возможностей;
  • обучение;
  • функциональное тестирование;
  • пилот;
  • проверка интеграции;
  • подготовка сценария миграции.

Когда не использовать без доработки

  • промышленный корневой CA;
  • критичная инфраструктура без резервирования;
  • среда без постоянных томов;
  • среда без резервного копирования;
  • среда, где секреты хранятся в открытом .env;
  • среда без HTTPS, мониторинга и централизованных журналов.

Предварительные требования

  • поддерживаемая Linux ОС;
  • Docker Engine;
  • Docker Compose plugin;
  • ресурсы не ниже минимальных системных требований;
  • постоянное DNS-имя;
  • свободные TCP 80/443 либо опубликованные дистрибутивом порты;
  • дистрибутив Avanpost.CA.v*.zip;
  • доступ к постоянному дисковому хранилищу.

Проверьте:

docker version
docker compose version

1. Проверка дистрибутива

ls -lh <DISTRIBUTION_FILE>
sha256sum -c <CHECKSUM_FILE>

Не продолжайте, если проверка контрольной суммы завершилась ошибкой.

2. Распаковка

mkdir avanpost-ca-docker
unzip <DISTRIBUTION_FILE> -d avanpost-ca-docker
cd avanpost-ca-docker/compose

Фактическая структура может отличаться между версиями. Найдите файл compose.yaml, docker-compose.yml или инструкцию README.

3. Создание файла переменных

Создайте копию поставляемого шаблона:

cp ca.env.example ca.env
chmod 600 ca.env

Если шаблон называется иначе, используйте имя из дистрибутива.

Минимальные параметры текущей поставки:

API_URL=<CA_FQDN>
POSTGRES_USER=avanpost_ca
POSTGRES_PASSWORD=<STRONG_UNIQUE_PASSWORD>
POSTGRES_DB=avanpost_ca
CA_DATABASE_URL=postgres://avanpost_ca:<URL_ENCODED_PASSWORD>@postgres:5432/avanpost_ca?sslmode=disable

sslmode=disable допустим только для изолированной внутренней Docker-сети демонстрационного контура. При использовании внешней СУБД настройте TLS.

Не добавляйте ca.env в Git:

printf "\nca.env\n" >> .gitignore

Для производственной адаптации используйте Docker Secrets, Vault или другое средство управления секретами.

4. Проверка Compose-конфигурации

docker compose -p avanpost-ca config --quiet

Команда не должна возвращать ошибок.

Просмотрите перечень сервисов:

docker compose -p avanpost-ca config --services

Не публикуйте вывод полной конфигурации: он может содержать секреты.

5. Запуск

docker compose -p avanpost-ca up -d

Проверьте:

docker compose -p avanpost-ca ps

Все обязательные контейнеры должны иметь состояние running или healthy, если healthcheck предусмотрен.

6. Проверка журналов

docker compose -p avanpost-ca logs --tail=200

Для отдельного сервиса:

docker compose -p avanpost-ca logs --tail=200 <SERVICE_NAME>

Проверьте отсутствие:

  • ошибок подключения к PostgreSQL;
  • ошибок миграции;
  • циклических перезапусков;
  • ошибок прав на volumes;
  • конфликтов портов.

7. Проверка интерфейса

Если Docker установлен локально:

http://localhost

Если Docker установлен на сервере:

http://<CA_FQDN>

Для среды, доступной другим пользователям, настройте HTTPS до передачи стенда.

Проверьте:

curl --head http://<CA_FQDN>/

8. Перезапуск

docker compose -p avanpost-ca restart
docker compose -p avanpost-ca ps

Убедитесь, что данные сохранились после перезапуска.

9. Остановка

Остановить контейнеры без удаления:

docker compose -p avanpost-ca stop

Запустить:

docker compose -p avanpost-ca start

Удалить контейнеры и сеть, сохранив именованные volumes:

docker compose -p avanpost-ca down

Не используйте docker compose down -v, если требуется сохранить БД. Параметр -v удаляет именованные volumes и может привести к потере данных.

10. Резервное копирование

До значимых изменений:

  1. определите имя контейнера PostgreSQL;
  2. выполните pg_dump;
  3. скопируйте резервную копию за пределы Docker host;
  4. зафиксируйте используемую версию образов;
  5. проверьте восстановление.

Пример логического резервного копирования:

docker compose -p avanpost-ca exec -T postgres \
  pg_dump \
  --username=avanpost_ca \
  --format=custom \
  avanpost_ca > avanpost_ca.backup

Имя сервиса postgres необходимо заменить, если в compose-файле используется другое имя.

11. Минимальное усиление тестового контура

  • задайте уникальные пароли;
  • ограничьте доступ межсетевым экраном;
  • настройте HTTPS;
  • установите ограничение размера журналов Docker;
  • не публикуйте PostgreSQL наружу;
  • используйте постоянные volumes;
  • храните резервные копии вне Docker host;
  • зафиксируйте версии образов;
  • запретите использование тега latest;
  • настройте мониторинг свободного места;
  • ограничьте доступ к Docker socket;
  • регулярно устанавливайте обновления безопасности Docker host.

12. Переход к производственной среде

Перед промышленной эксплуатацией необходимо:

  • определить поддерживаемость контейнерного варианта для выбранной версии CA;
  • вынести СУБД в управляемый или резервируемый контур;
  • настроить TLS;
  • внедрить управление секретами;
  • настроить резервное копирование и восстановление;
  • настроить централизованные журналы;
  • настроить мониторинг;
  • определить процедуру обновления;
  • защитить закрытый ключ CA;
  • выполнить нагрузочное тестирование;
  • подготовить план аварийного восстановления.

Итоговый чек-лист

ПроверкаРезультат
Docker и Compose установлены☐
Контрольная сумма проверена☐
Используются уникальные пароли☐
ca.env имеет права 600☐
ca.env исключен из Git☐
Compose-конфигурация проходит проверку☐
Контейнеры запущены☐
PostgreSQL доступен приложению☐
Интерфейс Avanpost CA открывается☐
Данные сохраняются после перезапуска☐
Резервная копия создана☐
Восстановление проверено☐

Следующий шаг

Перейдите к странице Инициализация CA.

Обсуждение