Шаг 5. Установка Kafka Connect (опциональный)#

Цель выполнения#

Роль для развертывания Kafka Connect и настройки для работы с S3 хранилищем.

Последовательность действий#

Подготовка конфигурации для использования#

Перед установкой выполните действия, приведенные в разделе Подготовка окружения.

Запуск ansible-playbook#

  1. Перейдите в каталог со сценариями ansible, выполнив команду cd /tmp/installer/ansible/.

  2. Выполните ansible-playbook:

    • Для установки Kafka Connect: ansible-playbook playbooks/kafka-connect.yml -i inventories/devops/host.yml -e security='SSL__ZK_mTLS_WITH_AUTH__KAFKA_SSL_WITH_AUTH'.

    • Для создания коннекторов: ansible-playbook playbooks/kafka-connect-create.yml -i inventories/devops/host.yml -e security='SSL__ZK_mTLS_WITH_AUTH__KAFKA_SSL_WITH_AUTH'.

    Дождитесь завершения выполнения.

Проверка результата#

Выполните ansible-playbook для получения статуса всех коннекторов: ansible-playbook playbooks/kafka-connect-status.yml -i inventories/devops/host.yml -e security='SSL__ZK_mTLS_WITH_AUTH__KAFKA_SSL_WITH_AUTH'.

В случае успешного выполнения в stdout, в разделе PLAY RECAP, должно появиться unreachable=0 failed=0 напротив каждого хоста и выведен статус коннектора.

Справочная информация#

Переменные роли#

Описания и значения по умолчанию для переменных можно найти в defaults/main:

Файл

Описание

main.yml

Переменные для установки Kafka Connect

Описание задач#

Файл

Описание

tasks/main.yml

Основной playbook, который включает все остальные в зависимости от параметра security

tasks/prepare.yml

Определяет переменную kafka_connect_listeners для установки в конфиг и для отправки запросов Kafka Connect

tasks/start_linger.yml

Выполняется при параметре enabled_service_user_defined = true — проверяет наличие пользовательского сервиса ~/.config/systemd/user/crx-s3.service, если есть то запускает

tasks/start_service.yml

Выполняется при параметре enabled_service_user_defined = false — проверяет наличие сервиса /etc/systemd/system/crx-s3.service, если есть то запускает

tasks/start.yml

Выполняет start_linger.yml или start_service.yml и, если установленных сервисов нет, то запускает Kafka Connect

tasks/stop_linger.yml

Выполняется при параметре enabled_service_user_defined = true — проверяет наличие пользовательского сервиса ~/.config/systemd/user/crx-s3.service, если есть то останавливает

tasks/stop_service.yml

Выполняется при параметре enabled_service_user_defined = false — проверяет наличие сервиса /etc/systemd/system/crx-s3.service, если есть то останавливает

tasks/stop.yml

Выполняет start_linger.yml или start_service.yml и, если установленных сервисов нет, то останавливает Kafka Connect

tasks/admin_playbooks/connect_create_all_secman.yml

Создание всех коннекторов указанных в ansible inventory при установке Corax с профилем с SecMan

tasks/admin_playbooks/connect_create_all_ssl.yml

Создание всех коннекторов указанных в ansible inventory при установке Corax с профилем без SSL

tasks/admin_playbooks/connect_create_all.yml

Создание всех коннекторов указанных в ansible inventory при установке Corax с профилем с SSL

tasks/admin_playbooks/connect_delete_all_secman.yml

Удаление всех коннекторов указанных в ansible inventory при установке Corax с профилем с SecMan

tasks/admin_playbooks/connect_delete_all_ssl.yml

Удаление всех коннекторов указанных в ansible inventory при установке Corax с профилем без SSL

tasks/admin_playbooks/connect_delete_all.yml

Удаление всех коннекторов указанных в ansible inventory при установке Corax с профилем без SSL

tasks/admin_playbooks/connect_pause_all_secman.yml

Пауза/временна остановка всех коннекторов указанных в ansible inventory при установке Corax с профилем с SecMan

tasks/admin_playbooks/connect_pause_all_ssl.yml

Пауза/временна остановка всех коннекторов указанных в ansible inventory при установке Corax с профилем без SSL

tasks/admin_playbooks/connect_pause_all.yml

Пауза/временна остановка всех коннекторов указанных в ansible inventory при установке Corax с профилем без SSL

tasks/admin_playbooks/connect_restart_all_secman.yml

Перезапуск всех коннекторов указанных в ansible inventory при установке Corax с профилем с SecMan

tasks/admin_playbooks/connect_restart_all_ssl.yml

Перезапуск всех коннекторов указанных в ansible inventory при установке Corax с профилем без SSL

tasks/admin_playbooks/connect_restart_all.yml

Перезапуск всех коннекторов указанных в ansible inventory при установке Corax с профилем без SSL

tasks/admin_playbooks/connect_resume_all_secman.yml

Запуск всех коннекторов, находящихся на паузе, указанных в ansible inventory при установке Corax с профилем с SecMan

tasks/admin_playbooks/connect_resume_all_ssl.yml

Запуск всех коннекторов, находящихся на паузе, указанных в ansible inventory при установке Corax с профилем без SSL

tasks/admin_playbooks/connect_resume_all.yml

Запуск всех коннекторов, находящихся на паузе, указанных в ansible inventory при установке Corax с профилем без SSL

tasks/admin_playbooks/connect_status_all_secman.yml

Состояние всех коннекторов указанных в ansible inventory при установке Corax с профилем с SecMan

tasks/admin_playbooks/connect_status_all_ssl.yml

Состояние всех коннекторов указанных в ansible inventory при установке Corax с профилем без SSL

tasks/admin_playbooks/connect_status_all.yml

Состояние всех коннекторов указанных в ansible inventory при установке Corax с профилем без SSL

Описание тегов для применения при установке#

Имя тега

Описание

root

Устанавливает сервис crx-s3

install

Останавливает, загружает дистрибутив на хосты, распаковывает дистрибутив, конфигурирует, запускает

always

Выполняться всегда, при любом теге

start

Запускает crxui, проверяет доступность порта и ищет в логе строку Started KafkaUiApplication

stop

Останавливает crxui

never

Выполняться только при запуске с тегом root

Пример inventory.ini#

[all:vars]
ansible_connection=ssh   #Способ подключения к серверу
ansible_user=sshlogin    #Логин пользователя для доступа по ssh
ansible_ssh_pass=sshpsw  #Пароль пользователя для доступа по ssh

[crxui]
10.XX.XX.XX

[kafka]
10.XX.XX.XX

[zookeeper]
10.XX.XX.XX

[kafka-connect]
10.40.12.60

Пример palybook#

---
- hosts: all
  tasks:
  - name: "Получение переменных по умолчанию"
    include_tasks: ../helper/get_default_vars.yml
    tags: always
  - set_fact:
      local_distribution_source: true



- hosts: kafka-connect
  roles:
    - kafka_connect

Плейбуки указаны в разделе Описание ansible-playbook из состава дистрибутива.