Шаг 1. Подготовка окружения (обязательный)#
Установка выполняется с помощью ansible-сценариев путем запуска ansible-playbook из состава дистрибутива на локальном хосте для установки на локальном или удаленном хосте.
Примечание:
Все действия, за исключением раздела «Подготовка хостов, на которые планируется выполнить установку», выполняются на локальном хосте. В примерах ниже рабочим каталогом для процесса установки является
/tmp/installer/, а файл дистрибутива размещен в/tmp/installer/distrib.zip.При установке возможно сконфигурировать использование следующих профилей безопасности:
PLAINTEXT__KRAFT_PLAIN_NO_AUTH— профиль для работы без ZooKeeper и подключение без SSL;
PLAINTEXT__ZK_PLAIN_NO_AUTH__KAFKA_PLAINTEXT_NO_AUTH— подключение без SSL;
SSL__ZK_mTLS_WITH_AUTH__KAFKA_SSL_WITH_AUTH— подключение с SSL;
SSL__KRAFT_SSL_WITH_AUTH__KAFKA_SSL_WITH_AUTH— профиль для работы без ZooKeeper и подключение c SSL;
SSL__KRAFT_SSL_WITH_AUTH__KAFKA_SSL_WITH_AUTH__AUDIT— профиль для работы без ZooKeeper и подключение с SSL и аудитом;
SSL__ZK_mTLS_WITH_AUTH__KAFKA_SSL_WITH_AUTH__AUDIT— подключение с SSL и аудитом;
SSL__ZK_mTLS_WITH_AUTH__KAFKA_SSL_WITH_AUTH__SECMAN— подключение с SSL и Secret Management System (SecMan);
SSL__ZK_mTLS_WITH_AUTH__KAFKA_SSL_WITH_AUTH__AUDIT__SECMAN— подключение с SSL, аудитом и Secret Management System (SecMan).
Общие требования#
При подготовке окружения убедитесь в выполнении требований:
Установлены пакеты unzip и JDK.
Предоставлен доступ по SSH-соединению между узлами управления Ansible и хостами Corax.
Имеются привилегированные права. Ansible Role для Corax поддерживает разделение задач на основе тегов. Задачи разделяются на требующие и не требующие привилегированных прав
root. Обратите внимание: на некоторых шагах установки потребуетсяroot-доступ.
Настройка виртуального окружения в Python и установка Ansible#
Для настройки окружения и установки Ansible Role:
Установите пакет Ansible в соответствии с системными требованиями. Рекомендуем установить пакет Ansible вместо Ansible Core (
ansible-core), который содержит минимальное количество модулей и плагинов. Установка пакета Ansible избавляет от ручной установки дополнительных модулей и плагинов, которые необходимы для Corax Ansible Role.Установите виртуальное окружение:
python -m venv $HOME/python-venv/ansibleАктивируйте виртуальное окружение:
source $HOME/python-venv/ansible/bin/activateУстановите
ansible pip install ansibleилиpip install ansibleс соответствующей системным требованиям версией:pip install ansible == Х.Х.Х, где Х.Х.Х - версия Ansible.
Подготовка к установке Kafka и ZooKeeper#
Подготовка хостов, на которые планируется выполнить установку#
Примечание
Имя группы и пользователя выбирается на усмотрение администратора. В данном разделе kafka используется для примера.
Создайте пользователя
kafka, выполнив команды:useradd kafkaСоздайте каталоги с правами
775и владельцемkafka:kafka(указаны каталоги по умолчанию) с помощью команд:# Каталог только для хостов группы kafka, по умолчанию /KAFKADATA/ install -d -o kafka -g kafka -m 775 /KAFKADATA/ # Каталог только для хостов группы zookeeper, по умолчанию /zookeeper/ install -d -o kafka -g kafka -m 775 /zookeeper/ # Каталог для всех хостов, по умолчанию /opt/Apache/ install -d -o kafka -g kafka -m 775 /opt/Apache/Установите пакеты unzip, java-11-openjdk и acl, выполнив команду
yum install unzip java-11-openjdk acl -y.Увеличьте лимит количества файлов, выполнив команду
echo ‘fs.file-max=262144’ > /etc/sysctl.d/50-fs.confи примените параметры, выполнив командуsysctl -p.Увеличьте PAM лимиты на хосте, добавив в
/etc/security/limits.confпараметры#<domain> <type> <item> <value> * soft nproc 512000 * hard nproc 512000 * soft nofile 512000 * soft nofile 512000Добавьте каталог с утилитой Keytool (входит в JDK) в переменную
PATHпользователя, с правами которого будет выполняться установка.Настройте Firewall, разрешив сетевое взаимодействие между серверами кластера и клиентами кластера.
Распаковка ansible сценариев из дистрибутива#
Распакуйте дистрибутив командой
unzip /tmp/installer/distrib.zip -d /tmp/installer/distrib/.Распакуйте архив с ansible сценариями командой
unzip /tmp/installer/distrib/kfka-deploy-<версия продукта>-distrib.zip -d /tmp/installer/ansible/.Переместите zip архив с дистрибутивом командой
mv /tmp/installer/distrib.zip /tmp/installer/ansible/files/.
Подготовка ansible inventory#
Подготовьте файл ansible inventory в каталоге /tmp/installer/ansible/inventories/DEV/inventory.yml и заполните его по шаблону, указав IP адреса хостов, на которые планируется выполнять установку.
Внимание
Для установки требуется учетная запись с правами root (с помощью sudo).
all:
vars:
ansible_connection: ssh # Способ подключения к серверу
ansible_user: "sshlogin" # Логин пользователя для доступа по ssh
ansible_ssh_pass: "sshpassword" # Пароль пользователя для доступа по ssh
# Группа узлов, на которые будет установлена kafka. Требуется указать только Ansible inventory aliases (только IP адрес)
kafka:
hosts:
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
# Группа узлов, на которые будет установлен ZooKeeper. Требуется указать только Ansible inventory aliases (только IP адрес)
zookeeper:
hosts:
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
Подготовка к установке Schema Registry#
Установка Schema Registry производится с помощью Ansible-роли crxsr.
Подготовка хостов, на которые планируется выполнить установку#
Создайте пользователя
kafkaи группуkafka, выполнив командуuseradd kafka.Создайте каталог для группы crxsr
/opt/Apache/с правами775и владельцемkafka:kafkaс помощью команды:install -d -o kafka -g kafka -m 775 /opt/Apache/Установите пакеты unzip, java-11-openjdk и acl, выполнив команду
yum unzip install java-11-openjdk acl -y.Настройте Firewall, разрешив сетевое взаимодействие между серверами кластера и клиентами кластера согласно диаграмме развертывания.
Распаковка ansible сценариев из дистрибутива#
Распакуйте дистрибутив командой
unzip /tmp/installer/distrib.zip -d /tmp/installer/distrib/.Распакуйте архив с ansible сценариями командой
unzip /tmp/installer/distrib/kfka-deploy-<Platform V Corax version>-distrib.zip -d /tmp/installer/ansible/.Переместите zip архив с дистрибутивом командой
mv /tmp/installer/distrib.zip /tmp/installer/ansible/files/.
Подготовка ansible inventory#
Подготовьте файл ansible inventory в каталоге /tmp/installer/ansible/inventories/DEV/inventory.yml и заполните его по шаблону ниже, указав IP адреса хостов с установленным Corax, с узлом CRXSR.
Примечание:
Для установки требуется учетная запись с правами root (с помощью
sudo).
all:
vars:
ansible_connection: ssh # Способ подключения к серверу
ansible_user: "sshlogin" # Логин пользователя для доступа по ssh
ansible_ssh_pass: "sshpassword" # Пароль пользователя для доступа по ssh
# Группа узлов, на которые будет установлена kafka. Требуется указать только Ansible inventory aliases (только IP адрес)
kafka:
hosts:
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
# Группа узлов, на которые будет установлен ZooKeeper. Требуется указать только Ansible inventory aliases (только IP адрес)
zookeeper:
hosts:
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
# Узел, на котором будет установлен Corax-SR. Требуется указать только Ansible inventory aliases (только IP адрес)
crxsr:
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
Подготовка к установке Corax UI#
Установка Corax UI производится с помощью Ansible-роли crxui.
Подготовка хостов, на которые планируется выполнить установку#
Создайте пользователя
kafkaи группуkafka, выполнив командуuseradd kafka.Создайте каталог для группы crxui
/opt/Apache/с правами775и владельцемkafka:kafkaс помощью команды:install -d -o kafka -g kafka -m 775 /opt/Apache/Установите пакеты unzip, java-11-openjdk и acl, выполнив команду
yum unzip install java-11-openjdk acl -y.Настройте Firewall, разрешив сетевое взаимодействие между серверами кластера и клиентами кластера согласно диаграмме развертывания.
Распаковка ansible сценариев из дистрибутива#
Распакуйте дистрибутив командой
unzip /tmp/installer/distrib.zip -d /tmp/installer/distrib/.Распакуйте архив с ansible сценариями командой
unzip /tmp/installer/distrib/kfka-deploy-<Platform V Corax version>-distrib.zip -d /tmp/installer/ansible/.Переместите zip архив с дистрибутивом командой
mv /tmp/installer/distrib.zip /tmp/installer/ansible/files/.
Подготовка ansible inventory#
Подготовьте файл ansible inventory в каталоге /tmp/installer/ansible/inventories/DEV/inventory.ini и заполните его по шаблону ниже, указав IP адреса хостов с установленным Corax, с узлом CRXUI.
Примечание:
Для установки требуется учетная запись с правами root (с помощью
sudo).
all:
vars:
ansible_connection: ssh # Способ подключения к серверу
ansible_user: "sshlogin" # Логин пользователя для доступа по ssh
ansible_ssh_pass: "sshpassword" # Пароль пользователя для доступа по ssh
# Группа узлов, на которые будет установлена kafka. Требуется указать только Ansible inventory aliases (только IP адрес)
kafka:
hosts:
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
# Группа узлов, на которые будет установлен ZooKeeper. Требуется указать только Ansible inventory aliases (только IP адрес)
zookeeper:
hosts:
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
# Узел, на котором будет установлен Corax-UI. Требуется указать только Ansible inventory aliases (только IP адрес)
crxui:
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
Подготовка к установке Mirror Maker#
Установка Mirror Maker производится с помощью Ansible-роли crxmm на сервера с предварительно установленной Kafka.
Распаковка ansible сценариев из дистрибутива#
Распакуйте дистрибутив командой
unzip /tmp/installer/distrib.zip -d /tmp/installer/distrib/.Распакуйте архив с ansible сценариями командой
unzip /tmp/installer/distrib/kfka-deploy-<Platform V Corax version>-distrib.zip -d /tmp/installer/ansible/.Переместите zip архив с дистрибутивом командой
mv /tmp/installer/distrib.zip /tmp/installer/ansible/files/.
Подготовка ansible inventory#
Подготовьте файл ansible inventory в каталоге /tmp/installer/ansible/inventories/crx-mirror-maker.yml и заполните его по шаблону ниже, указав IP адреса хостов с установленным Corax, с узлом CRXMM.
all:
vars:
ansible_connection: ssh # Способ подключения к серверу
ansible_user: "sshlogin" # Логин пользователя для доступа по ssh
ansible_ssh_pass: "sshpassword" # Пароль пользователя для доступа по ssh
crxmm:
config:
property:
"destination.bootstrap.servers": "10.XX.XX.XX:YYYY"
"source.bootstrap.servers": "10.XX.XX.XX:YYYY"
"source->destination.topics": "<topic 1>[,<topic N>]"
custom_property:
- key: "sync.topic.acls.enabled"
value: "false"
state: 'present'
- key: "sync.topic.acls.interval.seconds"
value: "120"
state: 'present'
crxmm:
hosts:
10.XX.XX.XX:
ansible_host: 10.XX.XX.XX
Описание ansible-playbook из состава дистрибутива#
Имя ansible-playbook |
Описание |
|---|---|
|
Запускает ansible-роли zookeeper, kafka, kafka_topics, kafka_acl |
|
Запускает ansible-роль kafka (установка kafka) |
|
Запускает ansible-роль kafka_acl (создание списка доступа к топикам) |
|
Запускает ansible-роль kafka_topics (создание топиков) |
|
Запускает ansible-роль update_broker (обновление брокеров поочередно) |
|
Запускает ansible-роль zookeeper (установка ZooKeeper) |
|
Запускает ansible-роли zookeeper, kafka, kafka_topics, kafka_acl, crxsr, crxui |
|
Запускает ansible-роли zookeeper, kafka, kafka_topics, kafka_acl, crxui |