Установка через Ansible Tarantool Enterprise | Tdb

Установка через Ansible Tarantool Enterprise

Ansible Tarantool Enterprise (ATE) – это набор сценариев (playbooks) для развертывания и последующего обслуживания продуктов Tarantool Enterprise. Инсталлятор ATE – основной способ установки и запуска Tarantool DB, который используется для развертывания кластера на промышленном сервере.

Примечание

Подробная документация по инсталлятору ATE доступна зарегистрированным пользователям личного кабинета tarantool.io. Узнать больше: Об инсталляторе.

Есть два способа установки Tarantool DB с помощью ATE:

Конечный результат установки 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 в следующих разделах:

    Если у вас нет доступа к личному кабинету, свяжитесь с нами через форму обратной связи или напишите на 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 должна включать следующие шаги:

  1. Подготовка серверов к установке инсталлятора ATE.

    Смотрите раздел Требования к серверу под инсталлятор в текущем руководстве по установке.

  2. Установка Docker-образа инсталлятора ATE.

    Смотрите раздел Использование Docker-образа в документации по инсталлятору ATE.

  3. Подготовка серверов к установке Tarantool DB с использованием ATE.

    Смотрите раздел Подготовка серверов к установке с использованием ATE в текущем руководстве по установке.

  4. Установка и настройка отдельного кластера etcd в качестве централизованного хранилища конфигурации.

    Смотрите раздел Настройка etcd в документации по инсталлятору ATE.

  5. Загрузка конфигурации в etcd.

    Смотрите раздел Tarantool 3.0: Отправка конфигурации в etcd в документации по инсталлятору ATE.

  6. Установка и запуск кластера Tarantool DB.

    Для установки Tarantool DB используется сценарий install_3_0.yml. Пример файла статического инвентаря Tarantool DB с etcd описан в соответствующем разделе текущего руководства по установке.

    Смотрите следующие разделы в документации по инсталлятору ATE:

    После запуска кластера Tarantool DB дождитесь завершения развертывания и запустите сценарий check_3_0.yml для проверки работоспособности кластера. После запустите модуль шардирования vshard с помощью сценария tt_vshard_bootstrap.yml или команды tt replicaset vshard bootstrap.

  7. Установка TCM.

    После развертывания Tarantool DB нужно установить и запустить веб-интерфейс Tarantool Cluster Manager. Пример файла инвентаря TCM с etcd описан в соответствующем разделе текущего руководства по установке.

    Смотрите следующие разделы в документации по инсталлятору Ansible Tarantool Enterprise:

Установка с централизованным хранилищем конфигурации на основе Tarantool

Примечание

Использование TBCS доступно с версии ATE 1.10.0.

В этом случае установка Tarantool DB должна включать следующие шаги:

  1. Подготовка серверов к установке инсталлятора ATE.

    Смотрите раздел Требования к серверу под инсталлятор в текущем руководстве по установке.

  2. Установка Docker-образа инсталлятора ATE.

    Смотрите раздел Использование Docker-образа в документации по инсталлятору ATE.

  3. Подготовка серверов к установке Tarantool DB с использованием ATE.

    Смотрите раздел Подготовка серверов к установке с использованием ATE в текущем руководстве по установке.

  4. Установка и запуск кластера хранилища конфигурации 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. Режим manual TBCS не поддерживает.

    Смотрите раздел Tarantool 3.x: Установка приложения в документации по инсталлятору ATE.

    После запуска TBCS дождитесь завершения развертывания и запустите сценарий promote_leader.yml, чтобы выбрать мастер-узел в наборе реплик TBCS.

    Смотрите раздел Выбор лидера в наборах реплик в документации по инсталлятору ATE.

  5. Установка и запуск кластера 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 DB дождитесь завершения развертывания и запустите сценарий check_3_0.yml для проверки работоспособности кластера. После запустите модуль шардирования vshard с помощью сценария tt_vshard_bootstrap.yml или команды tt replicaset vshard bootstrap.

  1. Установка 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 должна включать следующие шаги:

  1. Подготовка серверов к установке инсталлятора ATE.

    Смотрите раздел Требования к серверу под инсталлятор в текущем руководстве по установке.

  2. Установка инсталлятора ATE.

    Смотрите раздел Использование Ansible-коллекции в документации по инсталлятору ATE.

  3. Подготовка серверов к установке с использованием ATE.

    Смотрите раздел Подготовка серверов к установке с использованием ATE в текущем руководстве по установке.

  4. Установка и настройка отдельного кластера etcd в качестве централизованного хранилища конфигурации.

  5. Загрузка конфигурации в etcd.

  6. Установка и запуск кластера Tarantool DB.

    Смотрите следующие разделы в документации:

    После запуска кластера Tarantool DB дождитесь завершения развертывания, а затем проверьте работоспособность кластера. После запустите модуль шардирования vshard с помощью команды tt replicaset vshard bootstrap.

  7. Установка TCM. После развертывания Tarantool DB нужно установить и запустить веб-интерфейс Tarantool Cluster Manager.

    Смотрите следующие разделы в документации:

Установка с централизованным хранилищем конфигурации на основе Tarantool

Примечание

Использование TBCS доступно с версии ATE 1.10.0.

В этом случае установка Tarantool DB должна включать следующие шаги:

  1. Подготовка серверов к установке инсталлятора ATE.

    Смотрите раздел Требования к серверу под инсталлятор в текущем руководстве по установке.

  2. Установка инсталлятора ATE.

    Смотрите раздел Использование Ansible-коллекции в документации по инсталлятору ATE.

  3. Подготовка серверов к установке Tarantool DB с использованием ATE.

    Смотрите раздел Подготовка серверов к установке с использованием ATE в текущем руководстве по установке.

  4. Установка и запуск кластера хранилища конфигурации 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.

  1. Установка и запуск кластера 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.

  1. Установка 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:

Нашли ответ на свой вопрос?
Обратная связь