Сервер
Эта инструкция описывает системные требования и порядок развёртывания сервера подсистемы топологии.
Системные требования
Для развёртывания сервера подсистемы топологии требуется один узел с характеристиками не ниже указанных:
| Параметр | Значение |
|---|---|
Количество ядер CPU |
4 |
Объём оперативной памяти, ГБ |
16 |
Дисковое пространство, ГБ |
40 |
Скорость работы сетевого интерфейса, ГБит/с |
1 |
Операционные системы
Узел для развёртывания подсистемы топологии должен работать под управлением ОС из этого списка:
-
Альт 8 СП c10f2.2;
-
Альт 8 СП c10f1.
Установка
Чтобы развернуть сервер подсистемы топологии:
-
Загрузите на узел файл установщика
foliage-new-26W23HF02-135.run. -
Сделайте файл установщика исполняемым:
chmod +x foliage-new-26W23HF02-135.run -
Запустите установщик и дождитесь завершения его работы:
./foliage-new-26W23HF02-135.run
Настройка конфигурации
Чтобы настроить конфигурацию подсистемы топологии:
-
Перейдите в директорию
/opt/foliage/build/configs/.cd /opt/foliage/build/configs/ -
Заполните конфигурационные файлы, соблюдая следующие требования:
-
Файлы должны иметь кодировку UTF-8.
-
Структура файлов формата JSON должна полностью соответствовать предоставленному шаблону.
-
Параметры указывайте в соответствии с данными, содержащимися в инсталляционной карте (ИК).
-
/opt/foliage/build/configs/common/nats/nats-machine.json
В конфигурационном файле nats-machine.conf:
-
В значении параметра
jetstream.domainукажите название пространства (REALM), созданного в IAM. -
При необходимости в секции
authorizationукажите учётные данные для подключения к сторонней службе NATS.
# ...
jetstream {
store_dir: /data/jetstream
max_file_store: 40G
domain: "GENOME"
}
# ...
authorization {
users = [
{
user: "nats-user",
password: "********"
}
]
}
/opt/foliage/build/configs/machine/main_config.json
В конфигурационном файле main_config.json в блоке oob_connectors укажите параметры подключения:
-
oob_connectors.basis_dynamix— к Basis Dynamix; -
oob_connectors.dso— к дисковым полкам; -
oob_connectors.eso— к коммутаторам; -
oob_connectors.nmrd— к NRMD; -
oob_connectors.snmrd.vision— к подсистеме мониторинга.
При необходимости в секции external_services укажите параметры сервиса, ссылку на который нужно добавить на главную страницу топологии нужного ПАК.
{
// ...
"oob_connectors": {
"basis_dynamix": {
"repeat_interval_sec": 30
},
"dso": {
"repeat_interval_sec": 30,
"snmp_community_string": "public"
},
"eso": {
"repeat_interval_sec": 40,
"snmp_community_string": "public"
},
"nnmrd": {
"repeat_interval_sec": 30
},
"snmrd": {
"repeat_interval_sec": 30,
"vision": {
"url": "http://<monitoring>:8080/vision/api/v1/object/",
"auth": {
"bearer_token": "<token>"
}
}
}
},
// ...
"external_services": [
{
"name": "Service Name",
"remote_url": "https://mbdp-service.example.com",
"type": "cmdb",
"hss_id": "МБД.П-001"
}
]
}
Здесь:
-
<monitoring>— IP-адрес или доменное имя сервера подсистемы мониторинга; -
<token>— токен, созданный на этапе Генерация токена.
/opt/foliage/build/docker-compose-machine.yaml
В конфигурационном файле docker-compose-machine.yaml настройте порты контейнеров сервисов:
---
services:
nats-machine:
image: ${SKALA_COMPOSE_IMAGE_PREFIX:-}library/nats:2.12.4
networks:
- backend_network
- frontend_network
restart: always
command: -c /etc/nats/nats.conf
ports:
- "4223:4222"
- "6223:6222"
- "7423:7422"
- "8223:8222"
- "11443:443"
volumes:
- ./configs/common/nats/nats-machine.conf/:/etc/nats/nats.conf
- ../data/nats/machine:/data/jetstream
/opt/foliage/build/configs/common/nmrd/networks.json
В конфигурационный файл networks.json добавьте сведения о сетях ПАК.
{
"1": {
"role": "client",
"subnet": "101.53.19.0/24",
"vlan_name": "vlan1"
},
"100": {
"role": "mgmt",
"subnet": "116.43.18.0/24",
"vlan_name": "vlan100"
},
"102": {
"role": "intrcn",
"subnet": "10.73.74.0/24",
"vlan_name": "vlan102"
}
}
| Атрибут | Лист ИК | Поля в ИК | Пример | Комментарий |
|---|---|---|---|---|
|
L3 interfaces |
Столбец "H" |
100 |
Идентификатор VLAN |
|
L3 interfaces |
Столбец "P" |
mgmt |
Роль сети |
|
IP map |
Столбец "L"/Столбец "K" |
116.43.18.0/24 |
Подсеть с маской |
|
— |
— |
vlan100 |
Название VLAN |
|
|
/opt/foliage/build/configs/common/nmrd/virtual_location.json
В конфигурационном файле virtual_location.json укажите сведения о размещении узлов в серверных стойках.
{
"sites": [
{
"name": "B4",
"rooms": [
{
"name": "30H8"
},
{
"name": "30H9"
}
]
},
{
"name": "A2",
"rooms": [
{
"name": "10A1"
}
]
}
],
"racks": [
{
"name": "E010",
"description": null,
"height_ru": 48,
"power_limit": 8000,
"total_power": 4767,
"total_max_power": 9590,
"total_BTU_hr": 32721.08,
"total_C14_plugs": 24,
"total_C20_plugs": 0
},
{
"name": "E011",
"description": null,
"height_ru": 48,
"power_limit": 8000,
"total_power": 4767,
"total_max_power": 9590,
"total_BTU_hr": 32721.08,
"total_C14_plugs": 24,
"total_C20_plugs": 0
}
],
"devices": [
{
"name": "SWGenom2",
"description": "PG-1 - BS access switch 2",
"type": "switch",
"location": {
"site": "B4",
"room": "30H8",
"row": null,
"rack": "E010",
"units": [48]
}
},
{
"name": "srv1.eu-west-1.domain.name",
"description": "PG-1 - DB service node 1",
"type": "server",
"location": {
"site": "B4",
"room": "30H8",
"row": null,
"rack": "E010",
"units": [15, 16]
}
},
{
"name": "mock-disk-shelf-1",
"description": "PG-1 - BS backup shelf 1",
"type": "storage",
"location": {
"site": "B4",
"room": "30H8",
"row": null,
"rack": "E010",
"units": [1, 4]
}
}
]
}
| Атрибут | Лист ИК | Поля в ИК | Пример | Комментарий |
|---|---|---|---|---|
|
Racks |
Столбец "A" |
ADM2 |
Название площадки (venue) |
|
Racks |
Столбец "B" |
D6.02 |
Комната |
|
Racks |
Столбец "C" |
F09 |
Название стойки с оборудованием |
|
Racks |
Столбец "D" |
null |
Описание стойки с оборудованием, может быть не заполнено (null) |
|
Racks |
Столбец "E" |
48 |
Высота стойки в юнитах |
|
Racks |
Столбец "F" |
8000 |
— |
|
Racks |
Столбец "G" |
1645 |
— |
|
Racks |
Столбец "H" |
4900 |
— |
|
Racks |
Столбец "I" |
15319,88 |
— |
|
Racks |
Столбец "J" |
10 |
— |
|
Racks |
Столбец "K" |
0 |
— |
|
Devices |
Столбец "A" |
p1-m1-node1 |
Имя узла |
|
Devices |
Столбец "E" |
null |
Описание узла, может быть не заполнено (null) |
|
Devices |
Столбец "F" |
server |
Тип узла |
|
Devices |
Столбец "G" |
ADM2 |
— |
|
Devices |
Столбец "H" |
D6.02 |
— |
|
— |
— |
null |
Не используется |
|
Devices |
Столбец "I" |
F09 |
— |
/opt/foliage/build/configs/common/nmrd/tatlin_mgmt_ports_macs.json
Если в состав ПАК входит СХД Tatlin, укажите сведения о MAC-адресах её сетевых портов в конфигурационном файле tatlin_mgmt_ports_macs.json.
| Для получения сведений о MAC-адресах авторизуйтесь в веб-интерфейсе СХД Tatlin и перейдите в раздел . |
tatlin_mgmt_ports_macs.json{
"mgmt_ports_macs": [
{
"p30_address": "14:52:90:02:4d:18",
"mgmt_address": "a0:c5:f2:13:b4:4c"
},
{
"p30_address": "14:52:90:02:4d:98",
"mgmt_address": "a0:c5:f2:13:5e:a6"
}
]
}
Здесь:
| MAC | Описание |
|---|---|
|
Порт управления SP-0 |
|
Порт управления SP-1 |
|
Порт Ethernet SP-0 p30 |
|
Порт Ethernet SP-1 p30 |
/opt/foliage/build/configs/machine/genome_metamodel.yaml
Конфигурационный файл genome_metamodel.yaml заполните по образцу:
---
version: v1
kind: GenomeInstallationMap
# Конфигурационные единицы
ci:
# Конфигурационная единица Геном
- id: ci-001
type: genome
props:
name: Геном
version: "2.0.1"
deployId: dep-20260630-001
deployTimestamp: "2026-06-30T10:00:00Z"
# Прочие конфигурационные единицы
# ...
# Связи между конфигурационными единицами
rel:
- id: rel-001
type: consists_of
fromId: ci-001
toId: platform
Все конфигурационные единицы заполняйте по образцу:
-
id— уникальный идентификатор. -
type— тип конфигурационной единицы:-
genome— Геном.Конфигурационная единица с типом genomeдолжна быть единственной. -
subsystem— подсистема. -
component— компонент. -
instance— экземпляр компонента.
-
-
props— свойства конфигурационной единицы. Список полей зависит от значения, указанного в полеtype.
Возможные значения props для типа genome:
-
deployId— идентификатор развёртывания; -
deployTimestamp— метка времени развёртывания в формате ISO 8601; -
name— название системы; -
version— версия системы.
Возможные значения props для типа subsystem:
-
deployId— идентификатор развёртывания; -
deployTimestamp— метка времени развёртывания в формате ISO 8601; -
name— название системы; -
version— версия системы.
Возможные значения props для типа component:
-
name— название компонента; -
type— тип компонента:-
agent— агент; -
cluster— кластерный компонент (из нескольких узлов); -
proxy— прокси; -
single— одноузловой компонент.
-
Возможные значения props для типа instance:
-
hostname— сетевое имя узла. -
ipAddresses— список IP-адресов узла.Значения в этом поле должны быть указаны в виде корректного списка в формате YAML:
# ... ci: # ... - id: platform-postgres-01 type: instance props: hostname: platform-postgres-01 ipAddresses: - 10.10.20.11 - 10.10.120.11 type: nodeТакже допускается сокращённая запись:
# ... ci: # ... - id: platform-postgres-01 type: instance props: hostname: platform-postgres-01 ipAddresses: [ 10.10.20.11, 10.10.120.11 ] type: node -
type— тип экземпляра:-
node— только если родительский компонент имеет типcluster; -
standalone— если родительский компонент имеет типagent,proxyилиsingle.
-
Связи указывайте в следующем формате:
rel:
- id: rel-001 (1)
type: consists_of (2)
fromId: ci-001 (3)
toId: platform (4)
Здесь:
| 1 | Идентификатор связи.
Идентификаторы связей указывайте в формате Корректные идентификаторы: |
||
| 2 | Тип связи.
|
||
| 3 | Идентификатор родительского объекта. | ||
| 4 | Идентификатор дочернего объекта. |
Связь всегда направлена от родителя к дочернему элементу, при этом не допускаются связи с пропуском уровней. Допустимые уровни связей приведены в таблице:
| fromId | toId | Описание |
|---|---|---|
|
|
Система содержит подсистемы |
|
|
Подсистема содержит компоненты |
|
|
Компонент содержит экземпляры |
/pot/foliage/build/configs/machine/.env
В конфигурационном файле .env:
-
В значении параметра
OSM_APP_HUB_DOMAINукажите название пространства, созданного в IAM. -
Укажите учётные данные и параметры подключения к соответствующим службам:
-
Arenadata Cluster Manager:
-
ADCM_ADMIN_password— пароль; -
ADCM_ADMIN_username— название учётной записи.
-
-
Basis.Dynamix:
-
DYNAMIX_API_KEY— ключ доступа к API Basis.Dynanix; -
DYNAMIX_API_URL— URL конечной точки доступа к API Basis.Dynamix; -
DYNAMIX_APP_ID— идентификатор приложения для авторизации в Basis.Dynamix; -
DYNAMIX_SSO_URL— URL конечной точки доступа для SSO Basis Dynamix; -
NATS_URL— строка подключения к NATS.
-
-
Хранилище S3:
-
MICROVAULT_REALM1_SECRET_ID— секрет S3 REALM; -
MICROVAULT_REALM1_PASSWORD_SECRET_ID— пароль пользователя S3 REALM.
-
-
OSM_APP_HUB_DOMAIN=GENOME
ADCM_ADMIN_username=admin
ADCM_ADMIN_password=admin
MICROVAULT_REALM1_SECRET_ID=6QNDN...JVU7
MICROVAULT_REALM1_PASSWORD_SECRET_ID=P@ss*****0rD
DYNAMIX_API_KEY="5a********COGQD"
DYNAMIX_API_URL="https://dynamix.example.com/"
DYNAMIX_APP_ID="29sX********0d9pF"
DYNAMIX_SSO_URL="https://sso-dynamix.example.com/v1/oauth/access_token"
/opt/foliage/build/configs/modules/seeder/ik/s3_realms.yml
При использовании ПАК МХД.О в файле s3_realms.yml укажите параметры подключения к хранилищу S3.
В поле items создайте записи для каждого REALM, используемого в ПАК.
-
iam_realm— название REALM в IAM; -
api_url— URL точки доступа к API Спектр S3. Заполняйте по шаблону:http://spectrum-s3.example.com:6006/s3gateway/api -
client_id— идентификатор клиента IAM; -
client_secret_ref— название ключа в Microvault, в котором хранится секрет клиента IAM; -
iam_url— URL IAM Спектр S3. Заполняйте по шаблону:http://spectrum-s3.example.com:8443/ -
password_ref— название ключа в Microvault, в котором хранится пароль для доступа к IAM; -
tls_check— проверка TLS-сертификатов при подключении к IAM:-
true— включена; -
false— выключена.
-
-
username— название учётной записи администратора IAM.
---
type: ik-realm
root_id: scala_hlm_seeder_root
items:
- iam_realm: spectre
api_url: http://spectrum-s3.example.com:6006/s3gateway/api
client_id: admin-cli
client_secret_ref: MICROVAULT_REALM1_SECRET_ID
iam_url: http://spectrum-s3.example.com:8443
password_ref: MICROVAULT_REALM1_PASSWORD_SECRET_ID
tls_check: false
username: admin
|
В значениях полей |
/opt/foliage/build/configs/modules/seeder/ik/arenadata.yml
При использовании ПАК МБД.Х в файле arenadata.yml укажите параметры подключения к Basis Virtual Security.
В блоке items создайте записи, в которых укажите параметры подключения к БД:
-
id— сетевое имя узла, на котором развёрнут ADCM.Если ИК представлена в виде электронной таблицы, нужное значение возьмите с листа spec из колонки hostname.
Если ИК представлена в виде YAML-файла, найдите блок с полем
Description, в значении которого указаноADCM. -
cred_ref— название ключа в MicroVault, в котором хранится название учётной записи ADCM; -
hostname— доменное имя или IP-адрес мастера соответствующего кластера. -
label— название кластера, отображаемое на страницах топологии. -
url— URL для доступа к API ADCM кластера.
---
type: ik_arenadata
root_id: arenadata
items:
- id: adcm-mbdg
cred_ref: ADCM_ADMIN_MBDG
hostname: adcm-mbdg
label: ADCM MBD.G
url: http://adcm-mbdg.example.com:8000
- id: adcm-mbdh
cred_ref: ADCM_ADMIN_MBDH
hostname: adcm-mbdh
label: ADCM MBD.H
url: http://adcm-mbdh.example.com:8000
Развёртывание
После заполнения конфигурационных файлов:
-
Примените изменения:
cd /opt/foliage && ./start.sh --prod --machine --ui -
Чтобы не допустить утечки конфиденциальных данных, переместите файл
/opt/foliage/build/configs/machine/.envв надёжное место.
Проверка корректности
Проверьте статусы контейнеров:
docker ps
Проверка считается успешной, если:
-
сервис NATS слушает порт 4223;
-
интерфейс мониторинга NATS слушает порт 8223;
-
для JetStream настроено пространство (REALM);
-
данные подсистемы топологии отображаются в веб-интерфейсе подсистемы мониторинга.