Установка
Эта инструкция описывает базовую установку. Перед началом убедитесь, что выполнены требования.
Подготовка
Заголовок раздела «Подготовка»1. Подготовьте PostgreSQL
Заголовок раздела «1. Подготовьте PostgreSQL»Создайте базу данных и пользователя:
CREATE USER opsman WITH PASSWORD 'strong-password';CREATE DATABASE opsman OWNER opsman;GRANT ALL PRIVILEGES ON DATABASE opsman TO opsman;Запишите connection string:
postgres://opsman:[email protected]:5432/opsman?sslmode=require2. Создайте namespace и image-pull-secret
Заголовок раздела «2. Создайте namespace и image-pull-secret»kubectl create namespace opsmankubectl -n opsman create secret docker-registry opsman-registry \ --docker-server=registry.company.com \ --docker-username=<user> \ --docker-password=<password>3. Подготовьте RSA-ключ для подписей токенов
Заголовок раздела «3. Подготовьте RSA-ключ для подписей токенов»openssl genrsa -out jwt-private.pem 2048kubectl -n opsman create secret generic opsman-jwt --from-file=private.pem=jwt-private.pemУстановка API-службы
Заголовок раздела «Установка API-службы»-
Распакуйте полученный архив с Helm-чартами, перейдите в
charts/api-service. -
Создайте
values.prod.yaml:image:repository: registry.company.com/opsman/api-servicetag: "1.0.0"pullSecrets:- opsman-registryenv:JWT_PRIVATE_KEY_PATH: "/etc/jwt/private.pem"SMTP_HOST: "smtp.company.com"SMTP_PORT: "587"SMTP_PASS: "***"volumes:- name: jwt-keysecret:secretName: opsman-jwtvolumeMounts:- name: jwt-keymountPath: /etc/jwtreadOnly: trueresources:limits: { cpu: 2, memory: 4Gi }requests: { cpu: 500m, memory: 1Gi }ingress:enabled: truehost: api-opsman.company.comtls:enabled: truesecretName: api-opsman-tls -
Примените чарт:
Окно терминала helm upgrade --install api-service ./charts/api-service \-n opsman \-f values.prod.yaml -
Проверьте, что API поднялся:
Окно терминала kubectl -n opsman rollout status deploy/api-servicecurl -sf https://api-opsman.company.com/healthzДолжны получить HTTP 200.
Миграции БД применяются автоматически при первом старте. В логах вы увидите строки о применении каждой миграции.
Установка консоли
Заголовок раздела «Установка консоли»-
Перейдите в
charts/console. -
Создайте
values.prod.yaml:image:repository: registry.company.com/opsman/consoletag: "1.0.0"pullSecrets:- opsman-registryenv:NODE_ENV: "production"PORT: "3000"HOST: "0.0.0.0"API_BASE_URL: "https://api-opsman.company.com"resources:limits: { cpu: 1, memory: 1Gi }requests: { cpu: 200m, memory: 256Mi }ingress:enabled: truehost: console.company.comtls:enabled: truesecretName: console-tls -
Установите:
Окно терминала helm upgrade --install console ./charts/console \-n opsman \-f values.prod.yaml -
Откройте
https://console.company.com— увидите страницу логина.
Первая учётная запись
Заголовок раздела «Первая учётная запись»Откройте https://console.company.com/register. Введите данные — создастся и компания, и первый пользователь. Он получит расширенные права автоматически.
Если политика не разрешает открытую регистрацию, отключите её на ingress (например, правилом NGINX, запрещающим POST /api/v1/auth/register) и создайте пользователя вручную. Команда готова в составе дистрибутива — scripts/create-admin.sh:
./scripts/create-admin.sh \ --db "postgres://opsman:***@pg.internal:5432/opsman?sslmode=require" \ --company "Acme" \ --password "***"Проверка
Заголовок раздела «Проверка»После установки обязательны три проверки:
- Логин:
https://console.company.com, учётная запись создана. - API:
curl https://api-opsman.company.com/healthz→ 200 OK. - Регистрация компании и получение company token: после логина зайдите в Settings → Integrations → Kubernetes Clusters → Add — увидите инструкцию с вашим токеном, его используют агенты.