Первое развертывание с помощью Ansible | Tdg

Версия:

2.x
Руководство администратора Развертывание Первое развертывание с помощью Ansible

Первое развертывание с помощью Ansible

В этом руководстве описано, как впервые быстро развернуть Tarantool Data Grid (TDG) с помощью Ansible. Здесь приведен вариант развертывания TDG на двух виртуальных машинах с заданной конфигурацией.

Подготовка TGZ-файла для развертывания

Чтобы развернуть Tarantool Data Grid, вам понадобится RPM-файл (.rpm), TGZ-файл (tar.gz) или Docker-образ (docker-image.tar.gz). Для развертывания с помощью Ansible подходят только два из них: RPM- и TGZ-файл. В этом руководстве для примера используется TGZ-файл. Его проще развернуть, и вам не потребуется root-доступ.

Скачайте TGZ-файл последней версии в личном кабинете на сайте tarantool.io. Убедитесь, что ваш браузер не разархивировал скачанный файл: расширение файла должно быть tar.gz.

Если у вас нет доступа к личному кабинету, отправьте заявку через форму на этой странице или напишите на sales@tarantool.io.

Настройка виртуальных машин

Чтобы развернуть TDG, вам нужно запустить две виртуальные машины с ОС Linux (желательно CentOS 7/RHEL 7) и доступом по SSH. Если у вас уже установлены приведенные ниже или альтернативные виртуальные машины, то пропустите эту главу. Если нет, то следуйте инструкции.

Установите VirtualBox для запуска виртуальных машин и Vagrant для автоматизации процесса конфигурации. Vagrant подготовит конфигурацию двух виртуальных машин с дополнительными сценариями для развертывания TDG.

Примечание

Перед установкой программного обеспечения проверьте, что разработчик не накладывает ограничений на использование — например, не ставит блокировки по IP-адресам. При возникновении проблем воспользуйтесь услугами альтернативных провайдеров виртуальных машин.

Убедитесь, что в переменной окружения $PATH у вас есть VBoxManage.

Проверьте такой командой:

$ which VBoxManage

В скачанном TGZ-файле есть директория под названием deploy. Там находится Vagrantfile, который автоматизирует создание тестовой среды для развертывания кластера.

Откройте терминал, распакуйте архив tar.gz, перейдите в директорию deploy и запустите виртуальные машины:

tar xzf tdg-<VERSION>.tar.gz # замените <VERSION> на версию скачанного TDG
cd tdg2/deploy
vagrant up

Эта команда поднимет две виртуальные машины с CentOS 7 и доступом по SSH без пароля для пользователя vagrant. IP-адреса этих машин будут такие: 172.19.0.2 и 172.19.0.3.

Развертывание кластера

Подготовка

После создания виртуальных машин установите локально Ansible и Ansible-роль для Tarantool Cartridge (последняя версия 1.x). Если доступна Ansible-роль версии 2.x, можно выбрать ее, но тогда вы можете столкнуться с некоторыми трудностями.

Вот один из способов установки Ansible и Ansible-роли:

pip install ansible~=4.1.0 # версия 4.1 или более поздняя, но не 5.x
ansible-galaxy install tarantool.cartridge,1.10.0

Конфигурация

В директории deploy есть файл hosts.yml. В нем лежит конфигурация кластера.

Откройте этот файл, чтобы указать cookie для кластера и путь до пакета:

all
  vars:
    # cartridge_package_path: "../../packages/tdg-ENTER-VERSION-HERE.tgz" # путь относительно расположения плейбука
    # cartridge_cluster_cookie: "ENTER-SECRET-COOKIE-HERE" # замените на "secret-cookie"

Удалите #, чтобы раскомментировать эти строки, укажите версию TDG, которую вы скачали, и путь к TGZ-файлу. Также задайте cookie для кластера. Это должна быть уникальная строка, но для практики достаточно указать «secret-cookie».

Вот пример:

all
  vars:
    cartridge_package_path: "../tdg-2.0.0-1132-g2358e716.tgz"
    cartridge_cluster_cookie: "secret-cookie"

При необходимости всегда можно отредактировать этот файл, чтобы изменить конфигурацию кластера. Вот информация о разделах файла:

  • all.vars — для общих переменных;

  • all.children.tdg_group.hosts — для параметров экземпляров (инстансов, instances);

  • all.children.tdg_group.children — для параметров группы экземпляров:

    • чтобы сгруппировать экземпляры по хосту, задайте для них параметр ansible_host;

    • чтобы сгруппировать экземпляры по наборам реплик, задайте для них параметры replicaset_alias, roles, failover_priority и так далее.

Более подробную информацию о параметрах смотрите в документации по Ansible-роли в Tarantool Cartridge.

Развертывание

В директории deploy находятся Ansible-плейбуки, которые помогут вам завершить развертывание. Есть два способа развернуть TDG с помощью плейбуков:

  • кластер TDG с полностью сконфигурированной топологией;

  • кластер TDG со списком экземпляров (инстансов, instances) без заданной конфигурации.

Чтобы полностью развернуть TDG с топологией, выполните эту команду:

$ ansible-playbook -i hosts.yml playbooks/deploy.yml

Если вы хотите cами задать конфигурацию топологии кластера через веб-интерфейс, запустите плейбук, чтобы развернуть только экземпляры:

$ ansible-playbook -i hosts.yml playbooks/deploy_without_topology.yml

Откройте http://172.19.0.2:8081 в браузере, чтобы увидеть веб-интерфейс кластера. Вот как будет выглядеть кластер, развернутый без топологии:

Пример кластера

Управление кластером

Конфигурация топологии кластера

Если вы развернули экземпляры (инстансы, instances) с топологией, пропустите эту главу.

Если вы развернули экземпляры без топологии, теперь вы можете редактировать топологию: создавать наборы реплик и задавать их параметры в веб-интерфейсе:

  1. На вкладке Cluster находятся экземпляры без заданной конфигурации. Выберите экземпляр core с URL 172.19.0.2:3001 и нажмите Configure. Появится окно Configure server:

    Редактирование топологии
  2. В диалоговом окне Configure server укажите значения двух параметров набора реплик: replica set name (имя набора реплик) и role (роль).

    Для экземпляра core задайте имя набора реплик «core» и выберите роль «core». После этого нажмите Create replica set, чтобы создать набор реплик.

  3. Для остальных экземпляров без заданной конфигурации установите параметры следующим образом:

    URL экземпляра

    Имя набора реплик

    Роли

    172.19.0.2:3002

    runner_1

    runner, connector, failover-coordinator

    172.19.0.2:3003

    storage_1

    storage

    172.19.0.2:3004

    storage_2

    storage

    172.19.0.3:3001

    runner_2

    runner, connector

  4. Осталось настроить два экземпляра: storage_1_replica с URL 172.19.0.3:3002 и storage_2_replica с URL 172.19.0.3:3003.

    Присоедините их к уже существующим наборам реплик с ролями storage:

    • Выберите storage_1_replica и нажмите Configure.

    • В диалоговом окне Configure server переключитесь на вкладку Join Replica Set.

    • Отметьте storage_1 и нажмите Join replica set.

    Присоединение экземпляра к набору реплик

    Для storage_2_replica повторите те же действия, но отметьте storage_2.

После того, как вы назначите все роли, нажмите «Bootstrap vshard», чтобы «включить наборы реплик storage. Это инициализирует модуль Tarantool vshard. Подробнее об этом модуле можно узнать в документации по Tarantool.

Инициализация vshard

Вы создали виртуальные сегменты (virtual buckets), которые распределяются по хранилищам — экземплярам с ролью storage.

Виртуальные сегменты

Запуск и остановка экземпляров

Этот шаг необязателен.

В директории deploy также есть плейбуки, которые запускают или останавливают экземпляры. Вы можете остановить и отключить все экземпляры с помощью плейбука stop.yml:

$ ansible-playbook -i hosts.yml playbooks/stop.yml

Запустить и включить все экземпляры можно с помощью плейбука start.yml:

$ ansible-playbook -i hosts.yml playbooks/start.yml
Нашли ответ на свой вопрос?
Обратная связь