Первое развертывание с помощью 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) с топологией, пропустите эту главу.
Если вы развернули экземпляры без топологии, теперь вы можете редактировать топологию: создавать наборы реплик и задавать их параметры в веб-интерфейсе:
На вкладке Cluster находятся экземпляры без заданной конфигурации. Выберите экземпляр core с URL
172.19.0.2:3001
и нажмите Configure. Появится окно Configure server:В диалоговом окне Configure server укажите значения двух параметров набора реплик: replica set name (имя набора реплик) и role (роль).
Для экземпляра core задайте имя набора реплик «core» и выберите роль «core». После этого нажмите Create replica set, чтобы создать набор реплик.
Для остальных экземпляров без заданной конфигурации установите параметры следующим образом:
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
Осталось настроить два экземпляра: storage_1_replica с URL
172.19.0.3:3002
и storage_2_replica с URL172.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.
Вы создали виртуальные сегменты (virtual buckets), которые распределяются по хранилищам —
экземплярам с ролью storage
.
Запуск и остановка экземпляров¶
Этот шаг необязателен.
В директории deploy
также есть плейбуки, которые запускают или
останавливают экземпляры. Вы можете остановить и отключить все экземпляры с
помощью плейбука stop.yml
:
$ ansible-playbook -i hosts.yml playbooks/stop.yml
Запустить и включить все экземпляры можно с помощью плейбука start.yml
:
$ ansible-playbook -i hosts.yml playbooks/start.yml