Разворачивание тестового стенда системы Aitera MDM
Данный документ описывает технические требования и шаги по развёртыванию программного обеспечения у Заказчика с целью тестирования. Предназначен для DevOps-инженеров, системных администраторов и представителей заказчика.
От Заказчика требуется:
1.1. Предоставить сервер
Сервер (виртуальную машину) соответствующий аппаратным требованиям и с установленными необходимыми утилитами, helm-чартами и т.д. Либо только машину соответствующую аппаратным требованиям.
| Аппаратные требования | Программные требования |
|---|---|
| CPU: 4 ядра RAM: 8 ГБ Диск: 200 ГБ свободного места Интернет-доступ: требуется |
ОС: Ubuntu 22.04.3 LTS Kubernetes: v1.31.6 + k3s1 Helm: v3.17.3 Требования к сетевой среде: TCP/5432, TCP/6443, TCP/443, TCP/80, TCP/5672, TCP/6379, TCP/15672 |
1.2. Предоставить SSH-доступ к серверу
| SSH-доступ: |
|---|
| IP-адрес / домен Имя пользователя на сервере Публичный SSH-ключ Порт (если нестандартный) |
| Максимальные права доступа |
1.3. Предоставить домен с сертификатом шифрования (обязательно)
Для работы нужен внешний с сертификатом шифрования (приобрести публичный сертификат или выпустить сертификат от Let’s Encrypt).
1.4. Предоставить SMTP-сервер
Нужен для рассылки писем на email администраторам: при добавлении нового администратора, для восстановления пароля.
| Для подключения к SMTP-серверу нужно |
|---|
| Логин/Имя пользователя Пароль Адрес SMTP-сервера Порт SMTP Режим шифрования (STARTTLS / SSL) |
Шаги развёртывания (общая последовательность)
- Подготовка окружения:
- Установка Kubernetes, Helm;
- Настройка сетевых правил;
- Открытие необходимых портов.
- Запуск инфраструктуры:
- Установка и настройка Helm-чартов PostgreSQL, RabbitMQ, Redis, Minio;
- Запуск БД, кэша, очередей, S3-storage;
- Проверка доступности.
- Развертывание приложения:
- Установка и настройка EFK(Elastic + Filebeat + Kibana), Blackbox/Node exporter;
- Установка и настройка Helm-чарта MDM;
- Применение манифестов Kubernetes;
- Запуск контейнеров;
- Проверка логов и состояния подов.
- Настройка домена и SSL:
- Прописать DNS-записи;
- Загрузить/выпустить сертификаты;
- Настроить Ingress.
- Проверка работоспособности:
- Проверить доступность API/UI.
Архитектурная схема
[External User via Web-Service]
↓ (HTTPS)
[Ingress Controller]
↓
[Microservices Pods]
↓
[Redis]
↓
[RabbitMQ]
↓
[PostgreSQL]Сетевые проходы
| Направление | Протокол | Порт | Источник | Назначение | Комментарий |
|---|---|---|---|---|---|
| Внешний → Приложение | HTTPS | 443 | Интернет / внутренняя сеть | Ingress | Для доступа пользователей |
| Внешний → Приложение | HTTP | 80 | Интернет / внутренняя сеть | Ingress | Для доступа пользователей (редирект) |
| Приложение → БД | TCP | 5432 | Под приложения | База данных | PostgreSQL |
| Приложение → Брокер | TCP | 5672 | Под приложения | Брокер сообщений | RabbitMQ |
| Приложение → Кэш | TCP | 6379 | Под приложения | Кэш | Redis |
| Мониторинг → Приложение | HTTP | 8080 | Сервисы мониторинга | База данных(метрик) | Prometheus |
| Внешний → Мониторинг | HTTP | 3000 | Сервисы мониторинга | UI | Grafana |
| Внешний → Брокер | HTTP | 15672 | Под приложения | UI брокера сообщений | RabbitMQ-UI |
- Конфигурирование системы
2. Конфигурирование системы
После развертывания необходимо настроить конфигурационный файл и указать ряд доступов.
- Для OAuth2 в Google (для доставки приложений на устройства):
"GoogleCredeintialsOptons": {
"OAuth2Options": {
"ClientId": "###.apps.googleusercontent.com",
"ClientSecret": "###",
"RefreshToken": "###"
}
},- Для доступа в Android management (чтобы управлять устройствами на базе Android):
"AndroidServiceOptions": {
"CredentialPath": "../../../../certs/android_service_account_credential.json",
"AppName": "###",
"OAuthScope": "https://www.googleapis.com/auth/androidmanagement"
}- Для Apple Push Notification - отправка уведомлений на iOS. Необходимо сгенерировать сертификат и указать.
"ApnsOptions": {
"CertificatePath": "../../../../certs/mdm.p12",
"CertificatePassword": "###"
}- Для отправки уведомлений через RuStore:
"PushOptions": {
"FcmUrl": "https://vkpns.rustore.ru/v1/projects/###/messages:send",
"ProjectId": "###",
"AuthToken": "###",
"IosTeamId": "###",
"IosAuthKeyPath": "../../../../certs/AuthKey_###.p8",
"IosKeyId": "###",
"IosBundleId": "com.mdm.test"
}Корпоративный Google-аккаунт для APK/PWA
Для того чтобы добавлять на Android-устройства частные приложения (APK) или веб-приложения (PWA) необходимо зарегистрировать аккаунт разработчика Google Play и при первом добавлении APK/PWA войти с этой учетной записью. После этого вы сможете загружать в систему и распространять свои приложения среди пользователей системы.