Skip to main content

Заполнение файла параметров и инвентаря

Информация, приведенная на данной странице, является разработкой команды pre-sales и/или community KUMA и НЕ является официальной рекомендацией вендора.

Официальная документация по данному разделу приведена в Онлайн-справке на продукт:
https://support.kaspersky.com/help/XDR/1.4/ru-RU/271992.htm 
https://support.kaspersky.com/help/XDR/1.4/ru-RU/249240.htm 

Введение

В SMP для установки необходимо заполнить 2 файла с конфигурацией: param.yaml и inventory.yaml. Первый файл отвечает за настройку и развертывание SMP, а второй - за развертывание KUMA.

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


Примеры файлов параметров

Single node

Ниже приведен пример файла param.yaml для однонодовой инсталляции SMP с комментариями и советами по заполнению.

schemaType: ParameterSet
schemaVersion: 1.0.1
namespace: ""
name: bootstrap
project: xdr

nodes:
  - desc: cdt-1
    type: primary-worker
    host: 10.80.23.42 # Необходимо указать IP адрес целевого устройства
    access:
      ssh:
        user: root # Пользователь, от имени которого будет производиться установка
        key: /root/.ssh/id_rsa # Путь к ssh-ключу пользователя

parameters:
  - name: psql_dsn
    source:
# Необходимо заполнить строку подключения к БД: user_db - имя пользователя, password_db - пароль,
# (если пароль содержит спецсимволы их необходимо привести к URI кодировке)
# host_db - адрес узла с БД (для Single node это адерс указанный в параметре выше, port_db - порт БД 
# (по умолчанию 5432)
      value: "postgres://<user_db>:<password_db>@<host_db>:<port_db>"
  - name: ingress_ip
    source:
      value: 10.80.23.182 # Зарезервированный IP адрес
  - name: ssh_pk
    source:
      path: /root/.ssh/id_rsa # Значение должно совпадать с указанным выше значением key
  - name: admin_password
    source:
      value: "AdminKit2015!" # Пароль для доступа к интерфейсу, от 8 до 256 символов
                             # должен содержать буквы, цифры и спец. символы
  - name: inventory
    source:
      value: "/home/user/inventory.yml" # Путь к файлу инвентаря для установки компонентов KUMA
  - name: license
    source:
      value: "/home/user/license.key" # Путь к файлу ключа лицензии KUMA
  - name: smp_domain
    source:
      value: "smp.local" # Укажите домен для компонентов SMP
  - name: pki_host_list
    source:
      value: "admsrv api console kuma monitoring"
      
# По умолчанию размер тома для ядра - 4 Гб при low_resources = true
# Если хотите изменить это значение раскомментируйте блок параметров ниже
# И укажите требуемое значение

#  - name: core_request_low_resources
#    source:
#      value: "100Gi"

# Начало блока, который не нужно изменять
  - name: low_resources
    source:
      value: "true"
  - name: default_class_replica_count 
    source:
      value: "1"
  - name: vault_ha_mode
    source:
      value: "false"  
  - name: vault_standalone
    source:
      value: "true"

Multi node

Ниже приведен пример файла param.yaml для многонодовой инсталляции SMP с комментариями и советами по заполнению.

schemaType: ParameterSet
schemaVersion: 1.0.1
namespace: ""
name: bootstrap
project: xdr

nodes:
 # одна нода контроллера
  - desc: cdt-primary1
    type: primary
    host: 10.80.23.42 # IP-адрес ноды контроллера. Данный адрес, 
                      # а также все адрес приведенные ниже, должны быть из одной подсети
    access:
      ssh:
        user: root # Пользователь, от имени которого будет производиться установка
        key: /root/.ssh/id_rsa # Путь к ssh-ключу пользователя
# три рабочие ноды       
  - desc: cdt-w1
    type: worker
    host: 10.80.23.141 # IP-адрес 1-ой рабочей ноды
    access:
      ssh:
        user: root # Пользователь, от имени которого будет производиться установка
        key: /root/.ssh/id_rsa # Путь к ssh-ключу пользователя
  - desc: cdt-w2
    type: worker
    host: 10.80.23.45 # IP-адрес 2-ой рабочей ноды
    access:
      ssh:
        user: root # Пользователь, от имени которого будет производиться установка
        key: /root/.ssh/id_rsa # Путь к ssh-ключу пользователя
  - desc: cdt-w3
    type: worker
    host: 10.80.23.30 # IP-адрес 3-ей рабочей ноды
    access:
      ssh:
        user: root # Пользователь, от имени которого будет производиться установка
        key: /root/.ssh/id_rsa # Путь к ssh-ключу пользователя
    kind: admsrv # Данный параметр необходимо указать для одной любой рабочей ноды

parameters:
# Необходимо заполнить строку подключения к БД: user_db - имя пользователя, password_db - пароль,
# (если пароль содержит спецсимволы их необходимо привести к URI кодировке)
# host_db - адрес узла с БД (для Single node это адерс указанный в параметре выше, port_db - порт БД 
# (по умолчанию 5432)
  - name: psql_dsn
    source:
      value: "postgres://<user_db>:<password_db>@<host_db>:<port_db>"
  - name: ingress_ip
    source:
      value: 10.80.23.182 # Зарезервированный IP адрес
  - name: ssh_pk
    source:
      path: /root/.ssh/id_rsa # Значение должно совпадать с указанным выше значением key
  - name: admin_password
    source:
      value: "AdminKit2015!" # Пароль для доступа к интерфейсу, от 8 до 256 символов
                             # должен содержать буквы, цифры и спец. символы
  - name: core_disk_request
    source:
        value: 512Gi # Укажите размер тома ядра
  - name: inventory
    source:
      value: "/home/user/inventory.yml" # Путь к файлу инвентаря для установки компонентов KUMA
  - name: license
    source:
      value: "/home/user/license.key" # Путь к файлу ключа лицензии KUMA
  - name: smp_domain
    source:
      value: "smp.local" # Укажите домен для компонентов SMP
  - name: pki_host_list
    source:
      value: "admsrv api console kuma monitoring"

Примеры файлов инвентаря

All in one

Ниже приведен пример файла inventory.yaml для all in one инсталляции KUMA в рамках SMP с комментариями и советами по заполнению.

all:
  vars:
    deploy_example_services: false
    ansible_connection: local # не изменять
    ansible_user: nonroot # не изменять
kuma:
  vars:
    ansible_connection: ssh
    ansible_user: root # укажите имя пользователя, от имени которого будет производиться установка   
# В случае, если пользователь не root, раскомментируйте строки ниже
#    ansible_become: true
#    ansible_become_method: sudo
  children:
    kuma_utils:
      hosts:
        kuma.example.com: # укажите FQDN сервера для компонентов KUMA
          ansible_host: 0.0.0.0 # укажите IP сервера для компонентов KUMA
    kuma_collector:
      hosts:
        kuma.example.com: # укажите FQDN сервера для компонентов KUMA
          ansible_host: 0.0.0.0 # укажите IP сервера для компонентов KUMA
    kuma_correlator:
      hosts:
        kuma.example.com: # укажите FQDN сервера для компонентов KUMA
          ansible_host: 0.0.0.0 # укажите IP сервера для компонентов KUMA
    kuma_storage:
      hosts:
        kuma.example.com: # укажите FQDN сервера для компонентов KUMA
          ansible_host: 0.0.0.0 # укажите IP сервера для компонентов KUMA
          shard: 1
          replica: 1
          keeper: 1

Distributed

Ниже приведен пример файла inventory.yaml для distributed инсталляции KUMA в рамках SMP с комментариями и советами по заполнению.

all:
  vars:
    deploy_example_services: false
    ansible_connection: local # не изменять
    ansible_user: nonroot # не изменять
kuma:
  vars:
    ansible_connection: ssh
    ansible_user: root # укажите имя пользователя, от имени которого будет производиться установка   
# В случае, если пользователь не root, раскомментируйте строки ниже
#    ansible_become: true
#    ansible_become_method: sudo
  children:
    kuma_utils:
      hosts:
        kuma-utils.example.com: # укажите FQDN сервера для компонентов KUMA
          ansible_host: 0.0.0.0 # укажите IP сервера для компонентов KUMA
    kuma_collector:
      hosts:
        kuma-collector.example.com: # укажите FQDN сервера для коллектора KUMA
          ansible_host: 0.0.0.0 # укажите IP сервера для коллектора KUMA
    kuma_correlator:
      hosts:
        kuma-correlator.example.com: # укажите FQDN сервера для коррелятора KUMA
          ansible_host: 0.0.0.0 # укажите IP сервера для коррелятора KUMA
    kuma_storage:
      hosts:
        kuma-storage-1.example.com: # укажите FQDN сервера для хранилища KUMA
          ansible_host: 0.0.0.0 # укажите IP сервера для хранилища KUMA
          shard: 1
          replica: 1
          keeper: 1
        kuma-storage-2.example.com: # укажите FQDN сервера для хранилища KUMA
          ansible_host: 0.0.0.0 # укажите IP сервера для хранилища KUMA
          shard: 1
          replica: 2
          keeper: 2
        kuma-storage-3.example.com: # укажите FQDN сервера для хранилища KUMA
          ansible_host: 0.0.0.0 # укажите IP сервера для хранилища KUMA
          shard: 2
          replica: 1
          keeper: 3
        kuma-storage-4.example.com: # укажите FQDN сервера для хранилища KUMA
          ansible_host: 0.0.0.0 # укажите IP сервера для хранилища KUMA
          shard: 2
          replica: 2

Указывайте в файле инвентаря только необходимое количество нод коллекторов, корреляторов и хранилищ.


Сценарии изменения параметров

Изменение доменных имен по умолчанию

По умолчанию используются следующие имена: kuma, admsrv, api, monitoring, console. Если по какой-либо причине вы хотите их изменить, следуйте инструкции ниже.

kuma

Добавьте в файл param.yaml следующий блок, где kuma-new - новое доменное имя для kuma. Пример:

  - name: kuma_host
    source:
      value: "kuma-new"

А также в блоке pki_host_list измените kuma на новое доменное имя. Пример:

  - name: pki_host_list
    source:
      value: "admsrv api console kuma-new monitoring"
api

Добавьте в файл param.yaml следующий блок, где api-new - новое доменное имя для api. Пример:

  - name: api_host
    source:
      value: "api-new"

А также в блоке pki_host_list измените api на новое доменное имя. Пример:

  - name: pki_host_list
    source:
      value: "admsrv api-new console kuma monitoring"
monitoring

Добавьте в файл param.yaml следующий блок, где monitoring-new - новое доменное имя для monitoring. Пример:

  - name: monitoring_host
    source:
      value: "monitoring-new"

А также в блоке pki_host_list измените monitoring на новое доменное имя. Пример:

  - name: pki_host_list
    source:
      value: "admsrv api console kuma monitoring-new"
admsrv

Добавьте в файл param.yaml следующий блок, где admsrv-new - новое доменное имя для admsrv. Пример:

  - name: admsrv_host
    source:
      value: "admsrv-new"

А также в блоке pki_host_list измените admsrv на новое доменное имя. Пример:

  - name: pki_host_list
    source:
      value: "admsrv-new api console kuma monitoring"
console

Добавьте в файл param.yaml следующие блоки, где console-new - новое доменное имя для console. Пример:

  - name: nwc_host
    source:
      value: "console-new"
  - name: flow_host
    source:
      value: "console-new"
  - name: hydra_host
    source:
      value: "console-new"
  - name: login_host
    source:
      value: "console-new"
  - name: console_host
    source:
      value: "console-new"
  - name: gateway_host
    source:
      value: "console-new"

А также в блоке pki_host_list измените console на новое доменное имя. Пример:

  - name: pki_host_list
    source:
      value: "admsrv api console-new kuma monitoring"

Ниже расположен пример файла инвентаря со всеми измененными доменными именами

Пример файла инвентаря с переопределенными именами
schemaType: ParameterSet
schemaVersion: 1.0.1
namespace: ""
name: bootstrap
project: xdr

nodes:
  - desc: cdt-1
    type: primary-worker
    host: 10.80.23.42
    access:
      ssh:
        user: user
        key: /home/user/.ssh/id_rsa 
parameters:
  - name: psql_dsn
    source:
      value: "postgres://postgres:postgres@10.80.23.40:5432"
  - name: ingress_ip
    source:
      value: 10.80.23.182
  - name: ssh_pk
    source:
      path: /root/.ssh/id_rsa
  - name: admin_password
    source:
      value: "AdminKit2015!"
  - name: inventory
    source:
      value: "/home/user/inventory.yml"
  - name: license
    source:
      value: "/home/user/license.key"
  - name: smp_domain
    source:
      value: "smp.local"
  - name: core_request_low_resources
    source:
      value: "100Gi"
# Начало блока с изменение доменных имен
  - name: pki_host_list
    source:
      value: "admsrv-new api-new console-new kuma-new monitoring-new"
  - name: kuma_host
    source:
      value: "kuma-new"
  - name: admsrv_host
    source:
      value: "admsrv-new"
  - name: api_host
    source:
      value: "api-new"
  - name: monitoring_host
    source:
      value: "monitoring-new" 
  - name: nwc_host
    source:
      value: "console-new"
  - name: flow_host
    source:
      value: "console-new"
  - name: hydra_host
    source:
      value: "console-new"
  - name: login_host
    source:
      value: "console-new"
  - name: console_host
    source:
      value: "console-new"
  - name: gateway_host
    source:
      value: "console-new"
# Конец блока с изменение доменных имен
      
# Начало блока, который не нужно изменять
  - name: low_resources
    source:
      value: "true"
  - name: default_class_replica_count 
    source:
      value: "1"
  - name: vault_ha_mode
    source:
      value: "false"  
  - name: vault_standalone
    source:
      value: "true"

Изменение сертификата web-консоли

Для изменения сертификатов публичных служб существует 2 способа: указание конечных сертификатов, либо промежуточных для генерации сертификатов самой консолью. В обоих случаях в параметр необходимо предоставить сертификат в формате PEM и незашифрованный закрытый ключ.

Важно! Указать пользовательский сертификат для внешних служб возможно только до первоначальной установки!

Использование промежуточного сертификата

Добавьте следующие параметры в файл установки, где /path/cert.pem - полный путь к промежуточному сертификату с незашифрованным закрытым ключом в формате PEM. На основе данного сертификата консолью будут сгенерированы сертификаты для публичных служб.

  - name: intermediate_enableintermediate_enabled
    source:
      value: true
  - name: intermediate_bundle
    source:
      value: "/path/cert.pem"
Использование конечного сертификата

Добавьте следующие параметры в файл установки, где /console/cert.pem, /admsrv/cert.pem, /api/cert.pem - пути к сетификатам с незашифрованными закрытыми ключами в формате PEM для консоли SMP, KSC и API соответственно.

  - name: intermediate_enabled
    source:
      value: false
  - name: console_bundle
    source:
      value: "/console/cert.pem"
  - name: admsrv_bundle
    source:
      value: "/admsrv/cert.pem"
  - name: api_bundle
    source:
      value: "/api/cert.pem"

Изменение параметров после установки

Изменение некоторых параметров возможно и после установки системы, например, доменных имен или IP-адресов. Ниже рассмотрим данный процесс.

1. Перейти в директорию, где располагается kdt

2. Выполняем экспорт текущих параметров:

./kdt ec -e new_param.yaml

3. Вносим необходимые изменения в файл и применяем параметры, где /path/new_param.yaml - полный путь к ранее экспортированному и измененному файлу конфигурации

./kdt apply -i /path/new_param.yaml

Внимание! Применение параметров может занимать более 10-20 минут!