Заполнение файла параметров и инвентаря
Введение
В 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 - пароль,
# 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 - пароль,
# 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
# ansible_ssh_private_key_file: /home/user/.ssh/id_rsa # укажите путь к закрытому ssh-ключу пользователя
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
# ansible_ssh_private_key_file: /home/user/.ssh/id_rsa # укажите путь к закрытому ssh-ключу пользователя
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_enable
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 минут!