Шаг 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 используется для примера.

  1. Создайте пользователя kafka, выполнив команды:

    useradd kafka
    
  2. Создайте каталоги с правами 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/
    
  3. Установите пакеты unzip, java-11-openjdk и acl, выполнив команду yum install unzip java-11-openjdk acl -y.

  4. Увеличьте лимит количества файлов, выполнив команду echo ‘fs.file-max=262144’ > /etc/sysctl.d/50-fs.conf и примените параметры, выполнив команду sysctl -p.

  5. Увеличьте PAM лимиты на хосте, добавив в /etc/security/limits.conf параметры

    #<domain>      <type>  <item>         <value>
    *               soft    nproc          512000
    *               hard    nproc          512000
    *               soft    nofile         512000
    *               soft    nofile         512000
    
  6. Добавьте каталог с утилитой Keytool (входит в JDK) в переменную PATH пользователя, с правами которого будет выполняться установка.

  7. Настройте Firewall, разрешив сетевое взаимодействие между серверами кластера и клиентами кластера.

Распаковка ansible сценариев из дистрибутива#

  1. Распакуйте дистрибутив командой unzip /tmp/installer/distrib.zip -d /tmp/installer/distrib/.

  2. Распакуйте архив с ansible сценариями командой unzip /tmp/installer/distrib/kfka-deploy-<версия продукта>-distrib.zip -d /tmp/installer/ansible/.

  3. Переместите 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.

Подготовка хостов, на которые планируется выполнить установку#

  1. Создайте пользователя kafka и группу kafka, выполнив команду useradd kafka.

  2. Создайте каталог для группы crxsr /opt/Apache/ с правами 775 и владельцем kafka:kafka с помощью команды:

    install -d -o kafka -g kafka -m 775 /opt/Apache/
    
  3. Установите пакеты unzip, java-11-openjdk и acl, выполнив команду yum unzip install java-11-openjdk acl -y.

  4. Настройте Firewall, разрешив сетевое взаимодействие между серверами кластера и клиентами кластера согласно диаграмме развертывания.

Распаковка ansible сценариев из дистрибутива#

  1. Распакуйте дистрибутив командой unzip /tmp/installer/distrib.zip -d /tmp/installer/distrib/.

  2. Распакуйте архив с ansible сценариями командой unzip /tmp/installer/distrib/kfka-deploy-<Platform V Corax version>-distrib.zip -d /tmp/installer/ansible/.

  3. Переместите 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.

Подготовка хостов, на которые планируется выполнить установку#

  1. Создайте пользователя kafka и группу kafka, выполнив команду useradd kafka.

  2. Создайте каталог для группы crxui /opt/Apache/ с правами 775 и владельцем kafka:kafka с помощью команды:

    install -d -o kafka -g kafka -m 775 /opt/Apache/
    
  3. Установите пакеты unzip, java-11-openjdk и acl, выполнив команду yum unzip install java-11-openjdk acl -y.

  4. Настройте Firewall, разрешив сетевое взаимодействие между серверами кластера и клиентами кластера согласно диаграмме развертывания.

Распаковка ansible сценариев из дистрибутива#

  1. Распакуйте дистрибутив командой unzip /tmp/installer/distrib.zip -d /tmp/installer/distrib/.

  2. Распакуйте архив с ansible сценариями командой unzip /tmp/installer/distrib/kfka-deploy-<Platform V Corax version>-distrib.zip -d /tmp/installer/ansible/.

  3. Переместите 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 сценариев из дистрибутива#

  1. Распакуйте дистрибутив командой unzip /tmp/installer/distrib.zip -d /tmp/installer/distrib/.

  2. Распакуйте архив с ansible сценариями командой unzip /tmp/installer/distrib/kfka-deploy-<Platform V Corax version>-distrib.zip -d /tmp/installer/ansible/.

  3. Переместите 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

Описание

kafka-zookeeper.yml

Запускает ansible-роли zookeeper, kafka, kafka_topics, kafka_acl

kafka.yml

Запускает ansible-роль kafka (установка kafka)

kafka_acls.yml

Запускает ansible-роль kafka_acl (создание списка доступа к топикам)

kafka_topics.yml

Запускает ansible-роль kafka_topics (создание топиков)

update_broker.yml

Запускает ansible-роль update_broker (обновление брокеров поочередно)

zookeeper.yml

Запускает ansible-роль zookeeper (установка ZooKeeper)

kafka-zookeeper-sr-ui.yml

Запускает ansible-роли zookeeper, kafka, kafka_topics, kafka_acl, crxsr, crxui

kafka-zookeeper-ui.yml

Запускает ansible-роли zookeeper, kafka, kafka_topics, kafka_acl, crxui