Примеры инвентарей
Здесь собраны примеры файлов инвентаря inventory.yml для различных продуктов, используемых в тестах. Эти файлы содержат пример конфигурации инвентаря для каждого продукта.
Статический инвентарь — это вручную созданный текстовый файл со списком хостов, групп и переменных.
Динамический инвентарь — это файл для Ansible-плагина (например, генератора), который на основе данных динамически формирует список хостов, групп и переменных.
Сценарии для приложений и продуктов на основе Tarantool 3.x Enterprise Edition приведены в разделе Tarantool 3.x. Пример инвентаря для централизованного хранилища конфигурации на основе Tarantool приведен в разделе Tarantool Config Storage.
Сценарии для приложений и продуктов на основе Tarantool Cartridge приведены в разделе Tarantool Cartridge.
Централизованное хранилище конфигурации на основе Tarantool (Tarantool Config Storage) используется с кластерами на основе Tarantool 3.x. Подробная информация о таком типе хранилища приведена в документации Tarantool: Централизованное хранилище конфигурации.
Добавлено в версии 1.10.0
Добавлено в версии 1.10.0
Сценарии для работы с TCM приведены в разделе Tarantool Cluster Manager.
Добавлено в версии 1.19.0
Информация о настройке TCF и сценарии для работы с этим продуктом приведены в разделе Tarantool Clusters Federation.
Топология репликаторов данных между кластерами (Gateway и Destination) формируется автоматически на основе описания кластеров в инвентаре. Указывать её вручную необязательно -- автоматическая настройка покрывает типовые случаи. При необходимости топологию можно задать вручную.
Для настройки компонентов используются переменные, которые имеют значения по умолчанию. Их можно не задавать, если значения по умолчанию подходят. При необходимости переменные можно переопределить в конфигурации. Переменные конфигурации TCF подробно описаны в соответствующем разделе.
Информация о настройке TCS и сценарии для работы с этим продуктом приведены в разделе Tarantool Column Store.
Добавлено в версии 1.12.0
Не работает для версии TCS 1.1 и выше
Информация о настройке Tarantool DB и сценарии для работы с этим продуктом приведены в разделе Tarantool DataBase.
Сценарии для работы с TDG приведены в разделе Tarantool Data Grid.
Сценарии для работы с TQE приведены в разделе Tarantool Queue Enterprise (MQ).
Статический инвентарь (версия 2.х, несколько реплик/наборов реплик, бутстрап последнего экземпляра роутера)
Сценарии для работы с Tarantool CDC приведены в разделе Tarantool Change Data Capture.
Для использования динамического инвентаря укажите product: CDC и задайте параметры CDC-воркера в секции config компонента.
Ниже приведён пример инвентарей для топологии TDB (5 шардов) → TQE (3 шарда) → PostgreSQL.
Для развертывания этой топологии необходимо три отдельных файла динамического инвентаря, которые комбинируются при запуске через несколько ключей --inventory:
ansible-playbook -i inventory_tdb_source.yml -i inventory_tqe.yml -i inventory_cdc.yml playbooks/cdc_install.yml
Стандартный инвентарь Tarantool DB, используемый в качестве источника данных для CDC.
Для корректной работы репликации CDC необходимо включить расширенный формат WAL (wal.ext.old: true, wal.ext.new: true).
Инвентарь TQE для использования с CDC. gRPC-сервер TQE используется обработчиком CDC для подключения к очереди.
Конфигурация ниже актуальна для CDC 0.12.0+.
Для топологии через TQE используются два обработчика CDC:
- Source-обработчик — читает данные из TDB (
TarantoolConnector) и записывает в очередь TQE (TQESinkConnector); - Sink-обработчик — читает данные из очереди TQE (
TQESourceConnector) и записывает в PostgreSQL (JdbcSinkConnector).
Оба обработчика хранят контрольные точки в TQE (storage.type: tqe).
В примере ниже для топологии TDB (5 шардов) → TQE (3 шарда) → PostgreSQL используются пять source-воркеров CDC (по одному на каждый шард TDB) и один sink-воркер CDC.
Параметры, общие для любого инвентаря CDC:
- В параметре
cdc_worker_portкаждого воркера укажите уникальный порт сервера для подключения приложения, чтобы избежать конфликтов при запуске нескольких обработчиков на одном сервере. - В параметре
cdc_source_connector_params.connect.targetsукажите адрес узла соответствующего replicaset'а TDB-источника. - В параметре
cdc_source_connector_params.replication.idукажите уникальный идентификатор репликации для каждого воркера. - В параметре
cdc_sink_connector_params.connection.urlукажите JDBC-URL приёмника PostgreSQL. - Для корректного обнаружения плагинов (
TQESinkConnector,TQESourceConnector,JdbcSinkConnector) укажитеcdc_source_connector_package_name: ""иcdc_sink_connector_package_name: ""— это заставит сканер плагинов искать во всех подкаталогах бандла. Требуется бандлtarantool-cdc-jar-bundleверсии 0.11.0 и выше (содержитdebezium-connector-jdbc). - Если
spaces.includeне указан, CDC реплицирует все пространства источника. Укажите список пространств для выборочной репликации.
Специфично для топологии через TQE:
- В параметре
cdc_sink_connector_params.targetsource-обработчика укажите адрес gRPC-сервера TQE (совпадает сgrpc_host:grpc_portиз инвентаря TQE). - В параметре
cdc_source_connector_params.targetsink-обработчика укажите тот же адрес gRPC-сервера TQE. - И source-, и sink-обработчики хранят контрольные точки в TQE (
storage.type: tqe).
Ниже приведён пример инвентарей для топологии TDB (5 шардов) → PostgreSQL (без TQE). Для развертывания этой топологии необходимо два отдельных файла динамического инвентаря:
ansible-playbook -i inventory_tdb_source.yml -i inventory_cdc.yml playbooks/cdc_install.yml
Инвентарь TDB-источника аналогичен инвентарю из предыдущего примера (TDB → TQE → PostgreSQL: динамический инвентарь).
Обработчик CDC читает данные из TDB через source-коннектор (TarantoolConnector), записывает в PostgreSQL через sink-коннектор (JdbcSinkConnector) и хранит контрольные точки в файле (storage.type: file).
Общие параметры CDC (cdc_worker_port, connect.targets, replication.id, connection.url, пакеты плагинов, spaces.include) описаны в предыдущем разделе (TDB → TQE → PostgreSQL: динамический инвентарь).
Специфично для топологии без TQE:
cdc_sink_connector_paramsкаждого воркера должен использоватьJdbcSinkConnectorдля прямой записи в PostgreSQL.- В параметре
cdc_offset_params.storage.file.nameукажите путь к файлу контрольных точек на целевом сервере. Путь должен быть доступен для записи пользователю, от имени которого запускается CDC (cdc_user).