Подготовьте дистрибутив к локальной установке.
Скачайте и распакуйте дистрибутив продукта.
Создайте схему развертывания.
В каталоге дистрибутива install/inventory/localhost содержится пример с настройками схемы развёртывания.
В каталоге дистрибутива install/inventory/default содержатся настройки компонентов по-умолчанию.
Чтобы создать собственную схему развёртывания, создайте копию каталога localhost и переименуйте её (например, staging).
Настройте общие параметры.
При необходимости переопределите нужные настройки компонентов и настройки конфигурации в файлах install/inventory/localhost/group_vars/sso/*.yml
Подробнее о настройках inventory см. документацию Ansible.
Настройте хосты.
Настройте хосты сервера, на котором устанавливается продукт, и опишите группы серверов схемы развертывания в файле install/inventory/localhost/1-isem-sso.yml.
В каждой группе укажите серверы, на которые необходимо выполнить установку компонентов продукта, и параметры соединения с ними в формате: alias, имя серверной машины ansible_host и метод подключения ansible_connection.
Пример:
# deploy на удаленную машину
ansible_connection=ssh
ansible_host=<адрес удаленной машины>
# Либо deploy на localhost
ansible_connection=local
ansible_host=localhost
Файл install/inventory/localhost/1-isem-sso.yml по умолчанию заполнен параметрами для локальной установки и в минимальной конфигурации. Нельзя изменять названия существующих групп. Можно добавлять новые хосты, новые группы и наследования.
Выполните конфигурацию продукта.
Конфигурация продукта задается в файлах:
- install/inventory/localhost/group_vars/*.yml;
Запустите автоинсталлятор.
Запуск комманд Ansible должен производиться из каталога install.
Общий вид команды запуска:
ansible-playbook -i inventory/default -i inventory/localhost –u <REMOTE_USER> -k sso-deploy.yml
где:
- -i <inventory/localhost> – inventory, который будет использоваться при выполнении сценария (если указать каталог, то сценарий пройдется по всем хост-файлам, находящимся в указанном каталоге);
- -u – пользователь, от имени которого Ansible будет подключаться к серверам, указанным в файле хостов в inventory;
- -k – необходимость ввода пароля пользователя, указанного в ключе -u.
При необходимости можно добавить дополнительные параметры:
- --become-user – привилегированный пользователь;
- -K – необходимость ввода пароля для привилегированного пользователя, указанного в ключе --become-user;
- -b – необходимость выполнения сценария от имени привилегированного пользователя;
- -t – перечисление тегов, которые будут выполняться в сценарии (по умолчанию используется all, то есть запуск всех тегов);
- -l – перечисление хостов или групп, по которым будет выполнен сценарий (по умолчанию сценарий будет выполнен для всех хостов);
- -v – уровень журналирования; максимальное количество v=4 (-vvvv), чем больше v, тем выше уровень журналирования;
- -e – дополнительные переменные задаются в виде key=value или YAML/JSON. Если указывается имя файла, то имя должно начинаться с @. Полный список ключей можно посмотреть в официальной документации Ansible.
Переключитесь на новую версию продукта и зафиксируйте ее.
Установленная версия принимается или финализируется отдельным шагом при запуске роли app/version/finalize. На этом шаге удаляется файл DEPLOY_UNFINISHED и создается символическая ссылка current на принятую версию.
Переключитесь на новую версию вводом команды:
ansible-playbook -i inventory/default -i inventory/localhost –u <REMOTE_USER> -k sso-deploy-finalize.yml
Если установленная версия работает корректно, ее можно зафиксировать для возможности отката на нее.
Зафиксируйте установку версии (статус новой версии продукта – успешно установлена) вводом команды:
ansible-playbook -i inventory/default -i inventory/localhost –u <REMOTE_USER> -k sso-deploy-success.yml