Использование Ansible-коллекции¶
Установите инсталлятор:
Скачайте архив с коллекцией из личного кабинета на сайте
tarantool.ioили используйте архив, полученный напрямую от доверенного лица. Архив с коллекцией имеет видtarantool-enterprise-${VERSION}.tar.gz, где${VERSION}– нужная версия инсталлятора ATE.Установите коллекцию с помощью
ansible-galaxy:ansible-galaxy collection install --force tarantool-enterprise-${VERSION}.tar.gz
Важно
При использовании плейбуков из коллекции необходимо указать переменную cartridge_custom_steps_dir.
Значение должно указывать на директорию playbooks/custom_steps в вашем окружении.
Можно воспользоваться небольшой хитростью и указать переменную вот так {{ playbook_dir }}/custom_steps.
Роль tarantool.enterprise.os_configure¶
Роль tarantool.enterprise.os_configure выполняет следующие функции:
определяет, поддерживается ли текущая операционная система;
создает
systemdunit-файлы в домашней директории пользователяtarantool.
Важно
Кроме запуска роли os_configure, которая описана в данном разделе, необходима предварительная настройка серверов.
Вы можете выполнить настройку самостоятельно при наличии root-доступа для ansible.
Если root-доступ для ansible не предоставляется, обратитесь в техподдержку за инструкциями.
Ansible Tarantool Enterprise не использует механизм gather_facts по умолчанию, поэтому многие сценарии начинаются с задачи find_os.yml для определения операционной системы.
Добавьте вызов роли tarantool.enterprise.os_configure перед использованием других ролей из Ansible Tarantool Enterprise.
- ansible.builtin.import_role:
name: tarantool.enterprise.os_configure
tasks_from: find_os.yml
Запуск роли целиком (main.yml) создаст unit-файлы.
- ansible.builtin.import_role:
name: tarantool.enterprise.os_configure
Примечание
Если запрещено использовать userspace, то активируйте запуск из-под sudo. Для этого:
Создайте unit-файлы в
/etc/systemd/system.Через extra vars передайте параметр
-e tarantool_systemd_userspace_supported_os=[].
Управление сервисами будет происходить с помощью команд sudo systemctl start/stop/restart.
Роль tarantool.enterprise.cartridge¶
Эта роль нужна для работы с приложениями на Tarantool Cartridge.
Ей соответствует полностью вшитая open-source роль tarantool.cartridge.
Документация доступна на GitHub.
Особенности использования в составе коллекции:
Необходимо корректно указать путь до директории
custom_steps/в переменнойcartridge_custom_steps_dir.Переменная
cartridge_scenarioдолжна быть объявлена и иметь типList. Можно использовать переменнуюcartridge_scenario_name, чтобы указать исполняемую последовательность по умолчанию. В таком случае указыватьcartridge_scenarioнужно только при желании изменить стандартное исполнение.
Параметры become_* и hosts в сценариях¶
Есть специальный набор переменных, которые регулируют, каким образом запускаются сценарии:
tarantool_shared_become_user - выставляет значение переменной
ansible_become_user. По умолчанию –tarantool.tarantool_shared_become_method - выставляет значение переменной
ansible_become_method. По умолчанию –sudo.tarantool_shared_become - выставляет значение параметра
becomeв сценариях. По умолчанию –true.tarantool_shared_hosts - выставляет значение параметра
hostsв сценариях. В большинстве сценариев значением по умолчанию являетсяall. Исключением являются сценарии для TCF.
Комбинирование сценариев¶
Вы можете управлять tarantool_shared_hosts для создания сложных сценариев с использованием уже существующих сценариев из коллекции Ansible Tarantool Enterprise.
Предположим, у вас в инвентаре есть группы ACTIVE и RESERVE, которые состоят из активных и резервных экземпляров Tarantool соответственно.
Сложный сценарий обновления без простоя можно сделать так:
- name: Switch leaders to RESERVE datacenter
ansible.builtin.import_playbook: tarantool.enterprise.switch_leaders_to
vars:
tarantool_shared_hosts: "RESERVE"
- name: Update ACTIVE datacenter
ansible.builtin.import_playbook: tarantool.enterprise.update_internal
vars:
tarantool_shared_hosts: "ACTIVE"
- name: Wait for cluster to become healthy
ansible.builtin.import_playbook: tarantool.enterprise.wait_is_healthy
vars:
tarantool_shared_hosts: "all"
- name: Return leaders to ACTIVE datacenter
ansible.builtin.import_playbook: tarantool.enterprise.switch_leaders_to
vars:
tarantool_shared_hosts: "ACTIVE"
- name: Update RESERVE datacenter
ansible.builtin.import_playbook: tarantool.enterprise.update_internal
vars:
tarantool_shared_hosts: "RESERVE"
- name: Wait for cluster to become healthy
ansible.builtin.import_playbook: tarantool.enterprise.wait_is_healthy
vars:
tarantool_shared_hosts: "all"
Аналогичный механизм реализован в сценарии tarantool.enterprise.update_2x
из коллекции Ansible Tarantool Enterprise.