Установка через Ansible Tarantool Enterprise
Ansible Tarantool Enterprise (ATE) — это набор сценариев (playbooks) для развертывания и последующего обслуживания продуктов Tarantool Enterprise. Инсталлятор ATE — основной способ установки и запуска Tarantool DB, который используется для развертывания кластера на промышленном сервере.
Есть два способа установки Tarantool DB с помощью ATE:
- через Ansible-коллекцию;
- через Docker-образ.
Конечный результат установки Tarantool DB через ATE одинаков для обоих вариантов.
В обоих вариантах используется один и тот же установочный пакет Tarantool DB в формате tar.gz-архива.
Архив имеет название вида tarantooldb-<VERSION>.<OS>.<ARCH>.tar.gz.
Здесь:
VERSION— версия продукта не ниже 3.0.0;OS— поддерживаемая операционная система;ARCH— архитектура процессора.
Узнать больше про публикуемые версии и архивы Tarantool DB: Публикуемые версии.
Кроме того, для установки TCM используется отдельный установочный пакет в формате tar.gz-архива.
Получить архивы Tarantool DB и TCM можно несколькими способами:
-
скачать в личном кабинете на сайте Tarantool в следующих разделах:
- Tarantool DB — tarantooldb/release/for_deploy;
- TCM — tarantool-cluster-manager/release.
Если у вас нет доступа к личному кабинету, свяжитесь с нами через форму обратной связи или напишите на sales@tarantool.io;
-
получить напрямую от доверенного лица — по почте или иным способом.
Минимальные системные требования под инсталлятор Ansible Tarantool Enterprise:
- 4 Core 2.6ГГц +;
- 4 Гб RAM.
Подробные требования к серверу под ATE описаны в документации по инсталлятору ATE в разделе Настройка среды: Требования к серверу под инсталлятор. Смотрите также: Требования к инфраструктуре для Tarantool DB.
Перед установкой Tarantool DB необходимо настроить серверы под использование Tarantool, а также подготовить файлы инвентаря, в которых описана топология вашего решения и настроек приложения или продукта. Поддерживается два типа файлов инвентаря:
- статический инвентарь — созданный вручную текстовый файл со списком хостов, групп и переменных;
- динамический инвентарь — файл для Ansible-плагина (например, генератора), который на основе данных динамически формирует список хостов, групп и переменных. Инструкция по настройке динамического инвентаря приведена в документации по инсталлятору ATE: Использование динамического инвентаря.
Для установки Tarantool DB требуются следующие файлы инвентаря:
- инвентарь кластера Tarantool DB;
- инвентарь для веб-интерфейса Tarantool Cluster Manager (TCM).
Примеры файлов инвентарей inventory.yml для Tarantool DB и веб-интерфейса TCM приведены в разделах
Пример статического инвентаря Tarantool DB 3.x и Пример статического инвентаря TCM.
Если в качестве централизованного хранилища конфигурации используется хранилище на основе реплик Tarantool (Tarantool-based configuration storage, далее — TBCS), дополнительно требуется инвентарь кластера TBCS.
Смотрите следующие разделы в документации по инсталлятору Ansible Tarantool Enterprise:
- раздел Настройка среды: Подготовка к использованию;
- раздел Настройка среды: Предварительная настройка сервера под Tarantool.
Разбить дисковое пространство необходимо согласно рекомендациям для оптимальной работы экземпляров Tarantool:
- журналы (logs) – 2 GB * количество экземпляров Tarantool, но не менее 15 GB;
- журнал упреждающей записи (WAL) – 40–50% от RAM, используемого всеми экземплярами Tarantool;
- снимки данных (snapshots) – 100–110% от RAM, используемого всеми экземплярами Tarantool.
Разбейте диски согласно расчетам и подключите директории с помощью команды mount.
Дополнительная информация по расчету дисковой емкости приведена в соответствующем разделе.
В примере в качестве централизованного хранилища конфигурации используется etcd:
---all:children:ROUTERS:children:router-1:router-2:router-3:router-4:router-5:router-6:vars:tarantool_config_group:sharding:roles: [router]roles:- roles.crud-router- roles.metrics-export- dictionary.roles.routerroles_cfg:roles.crud-router:stats: truestats_driver: metricsstats_quantiles: truestats_quantile_tolerated_error: 0.001stats_quantile_age_buckets_count: 5stats_quantile_max_age_time: 180STORAGES:children:storage-1:storage-2:vars:tarantool_config_group:sharding:roles: [storage]roles:- roles.crud-storage- roles.expirationd- roles.metrics-export- dictionary.roles.storagememtx:memory: 536870912 #512MiBroles_cfg:roles.expirationd: []storage-1:hosts:storage-1-1:storage-1-2:vars:replicaset_alias: storage-1tarantool_config_replicaset:bootstrap_leader: storage-1-1replication:bootstrap_strategy: configstorage-2:hosts:storage-2-1:storage-2-2:vars:replicaset_alias: storage-2tarantool_config_replicaset:bootstrap_leader: storage-2-1replication:bootstrap_strategy: configrouter-1:hosts:router-1:vars:replicaset_alias: router-1router-2:hosts:router-2:vars:replicaset_alias: router-2router-3:hosts:router-3:vars:replicaset_alias: router-3router-4:hosts:router-4:vars:replicaset_alias: router-4router-5:hosts:router-5:vars:replicaset_alias: router-5router-6:hosts:router-6:vars:replicaset_alias: router-6tarantooldb_test_env_1:hosts:storage-1-1:iproto:listen:- uri: 127.0.0.1:3301advertise:client: 127.0.0.1:3301roles_cfg:roles.metrics-export:http:- listen: 8181endpoints:- path: /metricsformat: prometheusrouter-1:iproto:listen:- uri: 127.0.0.1:3305advertise:client: 127.0.0.1:3305roles_cfg:roles.metrics-export:http:- listen: 8185endpoints:- path: /metricsformat: prometheusrouter-2:iproto:listen:- uri: 127.0.0.1:3306advertise:client: 127.0.0.1:3306roles_cfg:roles.metrics-export:http:- listen: 8186endpoints:- path: /metricsformat: prometheusrouter-3:iproto:listen:- uri: 127.0.0.1:3307advertise:client: 127.0.0.1:3307roles_cfg:roles.metrics-export:http:- listen: 8187endpoints:- path: /metricsformat: prometheusvars:ansible_host: 127.0.0.1ansible_user: 'astra'tarantooldb_test_env_2:hosts:storage-2-1:iproto:listen:- uri: 127.0.0.1:3303advertise:client: 127.0.0.1:3303roles_cfg:roles.metrics-export:http:- listen: 8183endpoints:- path: /metricsformat: prometheusrouter-4:iproto:listen:- uri: 127.0.0.1:3308advertise:client: 127.0.0.1:3308roles_cfg:roles.metrics-export:http:- listen: 8188endpoints:- path: /metricsformat: prometheusrouter-5:iproto:listen:- uri: 127.0.0.1:3309advertise:client: 127.0.0.1:3309roles_cfg:roles.metrics-export:http:- listen: 8189endpoints:- path: /metricsformat: prometheusrouter-6:iproto:listen:- uri: 127.0.0.1:3310advertise:client: 127.0.0.1:3310roles_cfg:roles.metrics-export:http:- listen: 8190endpoints:- path: /metricsformat: prometheusvars:ansible_host: 127.0.0.1ansible_user: 'astra'tarantooldb_test_env_3:hosts:storage-1-2:iproto:listen:- uri: 127.0.0.1:3302advertise:client: 127.0.0.1:3302roles_cfg:roles.metrics-export:http:- listen: 8182endpoints:- path: /metricsformat: prometheusstorage-2-2:iproto:listen:- uri: 127.0.0.1:3304advertise:client: 127.0.0.1:3304roles_cfg:roles.metrics-export:http:- listen: 8184endpoints:- path: /metricsformat: prometheusvars:ansible_host: 127.0.0.1ansible_user: 'astra'etcd_hosts:hosts:'127.0.0.1':vars:ansible_user: 'astra'vars:ansible_ssh_common_args: -o IdentitiesOnly=yes -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=noansible_ssh_retries: 5cartridge_app_name: tarantooldbtarantool_3_0_version_support: truetarantool_etcd_host: 127.0.0.1etcd_host: 127.0.0.1etcd_cluster_prefix: /clustertarantool_config_etcd_endpoints:- http://127.0.0.1:2379- http://127.0.0.1:2479- http://127.0.0.1:2579tarantool_config_global:replication:failover: electioniproto:advertise:peer:login: replicatorsharding:login: storagecredentials:users:replicator:password: 'replicator_password'roles:- replicationstorage:password: 'storage_password'roles:- shardingadmin:password: 'secret-cluster-cookie'roles:- superclient:password: 'secret'roles:- super
В примере в качестве централизованного хранилища конфигурации используется кластер etcd:
---cluster-manager:hosts:tcm:tcm_host: localhosttcm_port: 8081tarantool_config_etcd_endpoints:- http://127.0.0.1:2379- http://127.0.0.1:2479- http://127.0.0.1:2579tcm_bootstrap_password: secrettcm_cluster_tt_command: /app/tarantool/tarantooldb/dist/tdb/tt # укажите путь до tt в вашем контуреansible_host: '127.0.0.1'ansible_user: 'astra'vars:ansible_ssh_common_args: -o IdentitiesOnly=yes -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no
В этом случае установка Tarantool DB должна включать следующие шаги:
-
Подготовка серверов к установке инсталлятора ATE.
Смотрите раздел Требования к серверу под инсталлятор в текущем руководстве по установке.
-
Установка Docker-образа инсталлятора ATE.
Смотрите раздел Использование Docker-образа в документации по инсталлятору ATE.
-
Подготовка серверов к установке Tarantool DB с использованием ATE.
Смотрите раздел Подготовка серверов к установке с использованием ATE в текущем руководстве по установке.
-
Установка и настройка отдельного кластера etcd в качестве централизованного хранилища конфигурации.
Смотрите раздел Настройка etcd в документации по инсталлятору ATE.
-
Загрузка конфигурации в etcd.
Смотрите раздел Tarantool 3.0: Отправка конфигурации в etcd в документации по инсталлятору ATE.
-
Установка и запуск кластера Tarantool DB.
Для установки Tarantool DB используется сценарий
install_3_0.yml. Пример файла статического инвентаря Tarantool DB с etcd описан в соответствующем разделе текущего руководства по установке.Смотрите следующие разделы в документации по инсталлятору ATE:
- раздел Tarantool DataBase 2.x и 3.x: Установка и запуск;
- раздел Tarantool DataBase;
- раздел Примеры инвентарей: Tarantool DataBase.
После запуска кластера Tarantool DB дождитесь завершения развертывания и запустите сценарий
check_3_0.ymlдля проверки работоспособности кластера. После запустите модуль шардированияvshardс помощью сценария tt_vshard_bootstrap.yml или команды tt replicaset vshard bootstrap. -
Установка TCM.
После развертывания Tarantool DB нужно установить и запустить веб-интерфейс Tarantool Cluster Manager. Пример файла инвентаря TCM с etcd описан в соответствующем разделе текущего руководства по установке.
Смотрите следующие разделы в документации по инсталлятору Ansible Tarantool Enterprise:
В этом случае установка Tarantool DB должна включать следующие шаги:
-
Подготовка серверов к установке инсталлятора ATE.
Смотрите раздел Требования к серверу под инсталлятор в текущем руководстве по установке.
-
Установка Docker-образа инсталлятора ATE.
Смотрите раздел Использование Docker-образа в документации по инсталлятору ATE.
-
Подготовка серверов к установке Tarantool DB с использованием ATE.
Смотрите раздел Подготовка серверов к установке с использованием ATE в текущем руководстве по установке.
-
Установка и запуск кластера хранилища конфигурации TBCS.
Для установки TBCS используется сценарий
install_3_0.yml.Пример инвентаря TBCS приведен в документации по инсталлятору ATE в разделе Примеры инвентарей: Tarantool-based Configuration Storage. В инвентаре TBCS должны быть заданы:
- переменная
tarantool_config_storageсо значениемtarantool— тип централизованного хранилища конфигурации. Значение по умолчанию:etcd; - переменная
is_config_storageсо значениемtrue— тип кластера (кластер с данными или кластер TBCS). Значение по умолчанию:false; - технологическая роль config.storage в секции
roles; - переменная
database.use_mvcc_engineсо значениемtrue— включение транзакционного менеджера memtx MVCC; - переменная
components.config.replicaset.replication.failoverсо значениемelection— режим восстановления после сбоев.
Смотрите раздел Tarantool 3.x: Установка приложения в документации по инсталлятору ATE.
После запуска TBCS дождитесь завершения развертывания и запустите сценарий
promote_leader.yml, чтобы выбрать мастер-узел в наборе реплик TBCS.Смотрите раздел Выбор лидера в наборах реплик в документации по инсталлятору ATE.
- переменная
-
Установка и запуск кластера Tarantool DB.
Для установки Tarantool DB используется сценарий
install_3_0.yml. При запуске этого сценария конфигурация кластера Tarantool DB собирается в файл на основании переданного инвентаря Tarantool DB. После этого конфигурация кластера Tarantool DB автоматически отправляется в хранилище конфигурации на первый по счету адрес, указанный в переменнойtarantool_config_storage_endpoints.В инвентаре Tarantool DB должны быть заданы:
- переменная
tarantool_config_storageсо значениемtarantool— тип централизованного хранилища конфигурации. Значение по умолчанию:etcd; - переменная
is_config_storageсо значениемfalse— тип кластера (кластер с данными или кластер TBCS). Значение по умолчанию:false.
Кроме того, для корректной работы хранилища конфигурации в инвентаре Tarantool DB необходимо указать следующие переменные:
tarantool_config_storage_endpoints— адреса экземпляров хранилища TBCS. Указывается в соответствии с документацией Tarantool 3.x как значение переменнойTT_CONFIG_STORAGE_ENDPOINTS. Пример:[{uri: "http://127.0.0.1:4242", login: "user", password: "pass"}];tarantool_config_storage_prefix— префикс, по которому будет сохранена конфигурация кластера Tarantool DB.
- переменная
Смотрите следующие разделы в документации по инсталлятору Ansible Tarantool Enterprise:
- раздел Tarantool DataBase 2.x и 3.x: Установка и запуск;
- раздел Tarantool DataBase;
- раздел Примеры инвентарей: Tarantool DataBase.
После запуска кластера Tarantool DB дождитесь завершения развертывания и запустите сценарий check_3_0.yml для проверки
работоспособности кластера.
После запустите модуль шардирования vshard с помощью сценария
tt_vshard_bootstrap.yml
или команды tt replicaset vshard bootstrap.
-
Установка TCM.
После развертывания Tarantool DB нужно установить и запустить веб-интерфейс Tarantool Cluster Manager. В инвентаре TCM должна быть задана переменная
tcm_storage_providerсо значениемtarantool— тип централизованного хранилища конфигурации (по умолчанию `etcd).Кроме того, для корректной работы с хранилищем конфигурации в инвентаре TCM необходимо указать следующие переменные:
tcm_config_etcd_endpoints— адрес мастер-узла хранилища TBCS;tcm_etcd_usernameиtcm_etcd_password— имя пользователя и пароль для подключения к TBCS.
Смотрите следующие разделы в документации по инсталлятору Ansible Tarantool Enterprise:
В этом случае установка Tarantool DB должна включать следующие шаги:
-
Подготовка серверов к установке инсталлятора ATE.
Смотрите раздел Требования к серверу под инсталлятор в текущем руководстве по установке.
-
Установка инсталлятора ATE.
Смотрите раздел Использование Ansible-коллекции в документации по инсталлятору ATE.
-
Подготовка серверов к установке с использованием ATE.
Смотрите раздел Подготовка серверов к установке с использованием ATE в текущем руководстве по установке.
-
Установка и настройка отдельного кластера etcd в качестве централизованного хранилища конфигурации.
-
Загрузка конфигурации в etcd.
-
Установка и запуск кластера Tarantool DB.
Смотрите следующие разделы в документации:
- раздел Пример статического инвентаря Tarantool DB 3.x текущего руководства по установке;
- раздел Примеры инвентарей: Tarantool DB в документации по инсталлятору ATE.
После запуска кластера Tarantool DB дождитесь завершения развертывания, а затем проверьте работоспособность кластера. После запустите модуль шардирования
vshardс помощью команды tt replicaset vshard bootstrap. -
Установка TCM. После развертывания Tarantool DB нужно установить и запустить веб-интерфейс Tarantool Cluster Manager.
Смотрите следующие разделы в документации:
- раздел Пример статического инвентаря TCM текущего руководства по установке;
- раздел Примеры инвентарей: Tarantool Cluster Manager в документации по инсталлятору ATE.
В этом случае установка Tarantool DB должна включать следующие шаги:
-
Подготовка серверов к установке инсталлятора ATE.
Смотрите раздел Требования к серверу под инсталлятор в текущем руководстве по установке.
-
Установка инсталлятора ATE.
Смотрите раздел Использование Ansible-коллекции в документации по инсталлятору ATE.
-
Подготовка серверов к установке Tarantool DB с использованием ATE.
Смотрите раздел Подготовка серверов к установке с использованием ATE в текущем руководстве по установке.
-
Установка и запуск кластера хранилища конфигурации TBCS.
Пример инвентаря TBCS приведен в документации по инсталлятору ATE в разделе Примеры инвентарей: Tarantool-based Configuration Storage. В инвентаре TBCS должны быть заданы:
- переменная
tarantool_config_storageсо значениемtarantool— тип централизованного хранилища конфигурации. Значение по умолчанию:etcd; - переменная
is_config_storageсо значениемtrue— тип кластера (кластер с данными или кластер TBCS). Значение по умолчанию:false; - технологическая роль config.storage в секции
roles; - переменная
database.use_mvcc_engineсо значениемtrue— включение транзакционного менеджера memtx MVCC; - переменная
components.config.replicaset.replication.failoverсо значениемelectionв секции — режим восстановления после сбоев.
После запуска TBCS дождитесь завершения развертывания, а затем переключите мастер-узел в наборе реплик TBCS.
- переменная
-
Установка и запуск кластера Tarantool DB.
При запуске установки конфигурация кластера Tarantool DB собирается в файл на основании переданного инвентаря Tarantool DB. После этого конфигурация кластера Tarantool DB автоматически отправляется в хранилище конфигурации на первый по счету адрес, указанный в переменной
tarantool_config_storage_endpoints.В инвентаре Tarantool DB должны быть заданы:
- переменная
tarantool_config_storageсо значениемtarantool— тип централизованного хранилища конфигурации. Значение по умолчанию:etcd; - переменная
is_config_storageсо значениемfalse— тип кластера (кластер с данными или кластер TBCS). Значение по умолчанию:false.
Кроме того, для корректной работы хранилища конфигурации в инвентаре Tarantool DB необходимо указать следующие переменные:
tarantool_config_storage_endpoints— адреса экземпляров хранилища TBCS. Указывается в соответствии с документацией Tarantool 3.x как значение переменнойTT_CONFIG_STORAGE_ENDPOINTS. Пример:[{uri: "http://127.0.0.1:4242", login: "user", password: "pass"}];tarantool_config_storage_prefix— префикс, по которому будет сохранена конфигурация кластера Tarantool DB.
- переменная
Смотрите раздел Примеры инвентарей: Tarantool DataBase в документации по инсталлятору ATE.
После запуска кластера Tarantool DB дождитесь завершения развертывания, а затем проверьте работоспособность кластера.
После запустите модуль шардирования vshard с помощью команды tt replicaset vshard bootstrap.
-
Установка TCM.
После развертывания Tarantool DB нужно установить и запустить веб-интерфейс Tarantool Cluster Manager. В инвентаре TCM должна быть задана переменная
tcm_storage_providerсо значениемtarantool— тип централизованного хранилища конфигурации (по умолчаниюetcd).Кроме того, для корректной работы с хранилищем конфигурации в инвентаре TCM необходимо указать следующие переменные:
tcm_config_etcd_endpoints— адрес мастер-узла хранилища TBCS;tcm_etcd_usernameиtcm_etcd_password— имя пользователя и пароль для подключения к TBCS.
Смотрите также раздел Примеры инвентарей: Tarantool Cluster Manager в документации по инсталлятору ATE: