Установка через Ansible Tarantool Enterprise¶
Ansible Tarantool Enterprise (ATE) – это набор сценариев (playbooks) для развертывания и последующего обслуживания продуктов Tarantool Enterprise. Инсталлятор ATE – основной способ установки и запуска Tarantool DB, который используется для развертывания кластера на промышленном сервере.
Примечание
Подробная документация по инсталлятору ATE доступна зарегистрированным пользователям личного кабинета tarantool.io. Узнать больше: Об инсталляторе.
Есть два способа установки 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;
Если у вас нет доступа к личному кабинету, свяжитесь с нами через форму обратной связи или напишите на sales@tarantool.io;
получить напрямую от доверенного лица – по почте или иным способом.
Требования к серверу под инсталлятор¶
Минимальные системные требования под инсталлятор Ansible Tarantool Enterprise:
4 Core 2.6ГГц +;
4 Гб RAM.
Подробные требования к серверу под ATE описаны в документации по инсталлятору ATE в разделе Настройка среды: Требования к серверу под инсталлятор. Смотрите также: Требования к инфраструктуре для Tarantool DB.
Подготовка серверов к установке с использованием ATE¶
Перед установкой 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:
журналы (logs) – 2 GB * количество экземпляров Tarantool, но не менее 15 GB;
журнал упреждающей записи (WAL) – 40–50% от RAM, используемого всеми экземплярами Tarantool;
снимки данных (snapshots) – 100–110% от RAM, используемого всеми экземплярами Tarantool.
Разбейте диски согласно расчетам и подключите директории с помощью команды mount.
Дополнительная информация по расчету дисковой емкости приведена в соответствующем разделе.
Пример статического инвентаря Tarantool DB 3.x¶
В примере в качестве централизованного хранилища конфигурации используется 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.router
roles_cfg:
roles.crud-router:
stats: true
stats_driver: metrics
stats_quantiles: true
stats_quantile_tolerated_error: 0.001
stats_quantile_age_buckets_count: 5
stats_quantile_max_age_time: 180
STORAGES:
children:
storage-1:
storage-2:
vars:
tarantool_config_group:
sharding:
roles: [storage]
roles:
- roles.crud-storage
- roles.expirationd
- roles.metrics-export
- dictionary.roles.storage
memtx:
memory: 536870912 #512MiB
roles_cfg:
roles.expirationd: []
storage-1:
hosts:
storage-1-1:
storage-1-2:
vars:
replicaset_alias: storage-1
tarantool_config_replicaset:
bootstrap_leader: storage-1-1
replication:
bootstrap_strategy: config
storage-2:
hosts:
storage-2-1:
storage-2-2:
vars:
replicaset_alias: storage-2
tarantool_config_replicaset:
bootstrap_leader: storage-2-1
replication:
bootstrap_strategy: config
router-1:
hosts:
router-1:
vars:
replicaset_alias: router-1
router-2:
hosts:
router-2:
vars:
replicaset_alias: router-2
router-3:
hosts:
router-3:
vars:
replicaset_alias: router-3
router-4:
hosts:
router-4:
vars:
replicaset_alias: router-4
router-5:
hosts:
router-5:
vars:
replicaset_alias: router-5
router-6:
hosts:
router-6:
vars:
replicaset_alias: router-6
tarantooldb_test_env_1:
hosts:
storage-1-1:
iproto:
listen:
- uri: 127.0.0.1:3301
advertise:
client: 127.0.0.1:3301
roles_cfg:
roles.metrics-export:
http:
- listen: 8181
endpoints:
- path: /metrics
format: prometheus
router-1:
iproto:
listen:
- uri: 127.0.0.1:3305
advertise:
client: 127.0.0.1:3305
roles_cfg:
roles.metrics-export:
http:
- listen: 8185
endpoints:
- path: /metrics
format: prometheus
router-2:
iproto:
listen:
- uri: 127.0.0.1:3306
advertise:
client: 127.0.0.1:3306
roles_cfg:
roles.metrics-export:
http:
- listen: 8186
endpoints:
- path: /metrics
format: prometheus
router-3:
iproto:
listen:
- uri: 127.0.0.1:3307
advertise:
client: 127.0.0.1:3307
roles_cfg:
roles.metrics-export:
http:
- listen: 8187
endpoints:
- path: /metrics
format: prometheus
vars:
ansible_host: 127.0.0.1
ansible_user: 'astra'
tarantooldb_test_env_2:
hosts:
storage-2-1:
iproto:
listen:
- uri: 127.0.0.1:3303
advertise:
client: 127.0.0.1:3303
roles_cfg:
roles.metrics-export:
http:
- listen: 8183
endpoints:
- path: /metrics
format: prometheus
router-4:
iproto:
listen:
- uri: 127.0.0.1:3308
advertise:
client: 127.0.0.1:3308
roles_cfg:
roles.metrics-export:
http:
- listen: 8188
endpoints:
- path: /metrics
format: prometheus
router-5:
iproto:
listen:
- uri: 127.0.0.1:3309
advertise:
client: 127.0.0.1:3309
roles_cfg:
roles.metrics-export:
http:
- listen: 8189
endpoints:
- path: /metrics
format: prometheus
router-6:
iproto:
listen:
- uri: 127.0.0.1:3310
advertise:
client: 127.0.0.1:3310
roles_cfg:
roles.metrics-export:
http:
- listen: 8190
endpoints:
- path: /metrics
format: prometheus
vars:
ansible_host: 127.0.0.1
ansible_user: 'astra'
tarantooldb_test_env_3:
hosts:
storage-1-2:
iproto:
listen:
- uri: 127.0.0.1:3302
advertise:
client: 127.0.0.1:3302
roles_cfg:
roles.metrics-export:
http:
- listen: 8182
endpoints:
- path: /metrics
format: prometheus
storage-2-2:
iproto:
listen:
- uri: 127.0.0.1:3304
advertise:
client: 127.0.0.1:3304
roles_cfg:
roles.metrics-export:
http:
- listen: 8184
endpoints:
- path: /metrics
format: prometheus
vars:
ansible_host: 127.0.0.1
ansible_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=no
ansible_ssh_retries: 5
cartridge_app_name: tarantooldb
tarantool_3_0_version_support: true
tarantool_etcd_host: 127.0.0.1
etcd_host: 127.0.0.1
etcd_cluster_prefix: /cluster
tarantool_config_etcd_endpoints:
- http://127.0.0.1:2379
- http://127.0.0.1:2479
- http://127.0.0.1:2579
tarantool_config_global:
replication:
failover: election
iproto:
advertise:
peer:
login: replicator
sharding:
login: storage
credentials:
users:
replicator:
password: 'replicator_password'
roles:
- replication
storage:
password: 'storage_password'
roles:
- sharding
admin:
password: 'secret-cluster-cookie'
roles:
- super
client:
password: 'secret'
roles:
- super
Пример статического инвентаря TCM¶
В примере в качестве централизованного хранилища конфигурации используется кластер etcd:
---
cluster-manager:
hosts:
tcm:
tcm_host: localhost
tcm_port: 8081
tarantool_config_etcd_endpoints:
- http://127.0.0.1:2379
- http://127.0.0.1:2479
- http://127.0.0.1:2579
tcm_bootstrap_password: secret
tcm_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
Использование Docker-образа¶
Установка с etcd¶
В этом случае установка 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;
После запуска кластера 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¶
Примечание
Использование TBCS доступно с версии ATE 1.10.0.
В этом случае установка 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– режим восстановления после сбоев.
Примечание
Восстановление после сбоев в TBCS работает в режиме
election. РежимmanualTBCS не поддерживает.Смотрите раздел 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;
После запуска кластера 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:
Использование Ansible-коллекции инсталлятора¶
Установка с etcd¶
В этом случае установка 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¶
Примечание
Использование TBCS доступно с версии ATE 1.10.0.
В этом случае установка 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 работает в режиме election. Режим manual TBCS не поддерживает.
После запуска 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: