Сервер
Эта инструкция описывает системные требования и порядок развёртывания сервера подсистемы топологии.
Системные требования
Для развёртывания сервера подсистемы топологии требуется один узел с характеристиками не ниже указанных:
| Параметр | Значение |
|---|---|
Количество ядер CPU |
4 |
Объём оперативной памяти, ГБ |
16 |
Дисковое пространство, ГБ |
40 |
Скорость работы сетевого интерфейса, ГБит/с |
1 |
Операционные системы
Узел для развёртывания подсистемы топологии должен работать под управлением ОС из этого списка:
-
Альт 8 СП c10f2.2;
-
Альт 8 СП c10f1.
Установка
Чтобы развернуть сервер подсистемы топологии:
-
Загрузите на узел файл установщика
foliage-26w17HF1-45.run. -
Сделайте файл установщика исполняемым:
chmod +x foliage-26w17HF1-45.run -
Запустите установщик и дождитесь завершения его работы:
./foliage-26w17HF1-45.run
Настройка конфигурации
Чтобы настроить конфигурацию подсистемы топологии:
-
Перейдите в директорию
/opt/foliage/build/configs/.cd /opt/foliage/build/configs/Далее пути к файлам указываются относительно директории /opt/foliage/build/configs/, если явно не указано иное. -
Заполните конфигурационные файлы, соблюдая следующие требования:
-
Файлы должны иметь кодировку UTF-8.
-
Структура файлов формата JSON должна полностью соответствовать предоставленному шаблону.
-
Параметры указывайте в соответствии с данными, содержащимися в инсталляционной карте (ИК).
-
nats-machine.json
В конфигурационном файле common/nats/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: "********"
}
]
}
main_config.json
В конфигурационном файле machine/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>— токен, созданный на этапе Генерация токена.
docker-compose-machine.yaml
Конфигурационный файл /opt/foliage/build/docker-compose-machine.yaml приведите к следующему виду:
include:example$installation/docker-compose-machine.yaml[]
networks.json
В конфигурационный файл common/nmrd/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 |
|
|
virtual_location.json
В конфигурационном файле common/nmrd/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 |
— |
tatlin_mgmt_ports_macs.json
Если в состав ПАК входит СХД Tatlin, укажите сведения о MAC-адресах её сетевых портов в конфигурационном файле common/nmrd/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 |
genome_metamodel.yaml
Конфигурационный файл machine/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 | Описание |
|---|---|---|
|
|
Система содержит подсистемы |
|
|
Подсистема содержит компоненты |
|
|
Компонент содержит экземпляры |
.env
В конфигурационном файле machine/.env укажите значения параметров, обязательных для соответствующего типа ПАК.
-
МДИ.О (МВ.ДИ):
-
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.
-
-
МХД.О:
-
MICROVAULT_REALM1_SECRET_ID— секрет S3 REALM; -
MICROVAULT_REALM1_PASSWORD_SECRET_ID— пароль пользователя S3 REALM.
-
s3_realms.yml
При использовании ПАК МХД.О в файле configs/modules/seeder/ik/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:6006/ -
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:6006
password_ref: MICROVAULT_REALM1_PASSWORD_SECRET_ID
tls_check: false
username: admin
arenadata.yml
При использовании ПАК МБД.Х в файле configs/modules/seeder/ik/arenadata.yml укажите параметры подключения к Basis Virtual Security.
В блоке items создайте записи, в которых укажите параметры подключения к БД:
-
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 слушает порт 4222;
-
интерфейс мониторинга NATS слушает порт 8222;
-
для JetStream настроено пространство (REALM);
-
данные подсистемы топологии отображаются в веб-интерфейсе подсистемы мониторинга.