Развертывание приложения Spring PetClinic с использованием Vagrant
Создайте репозиторий на Gitlab и зафиксируйте все изменения в вашем репозитории gitlab
Создайте скрипт развертывания для приложения PetClinic. Используйте Vagrant для автоматизации процесса создания инфраструктуры для развертывания с помощью Virtualbox (предпочтительно). Для настройки вы можете выбрать использование bash, python или ansible в любом сочетании.
Подзадача I - Инфраструктура
Опишите две виртуальные машины, используя Vagrantfile для развертывания приложения (кодовое имя APP_VM) и базы данных (кодовое имя DB_VM)
Предпочтительно использовать функцию частной сети для удобной связи между ВМ
ВМ должны быть либо Centos, либо Ubuntu
Если не используется частная сеть, то APP_VM должен иметь перенаправленный порт 8080 на хост
Подзадача II - База данных
Используйте любой скрипт настройки, который вы создали, для установки MySQL и любых зависимостей на DB_VM
Настройте базу данных mysql для принятия соединений только из вашей подсети частной сети vagrant
Создайте пользователя без прав root и пароль (кодовое имя DB_USER и DB_PASS) в mysql. Используйте переменные окружения хоста для установки этих значений и передайте их в Vagrantfile с помощью ENV
Создайте базу данных в mysql (кодовое имя DB_NAME) и предоставьте все привилегии для DB_USER для доступа к базе данных
Подзадача III - Приложение
Создайте пользователя без прав root (кодовое имя APP_USER), который будет использоваться для запуска приложения на APP_VM
Используйте любой провизионер для установки Java JDK, git и любых зависимостей на APP_VM
Клонируйте этот репозиторий в рабочую папку (кодовое имя PROJECT_DIR)
Используйте инструмент Maven для запуска тестов и упаковки приложения. Для получения дополнительной информации вы можете использовать эту 5-минутную документацию по maven. Для удобства в папке проекта есть скрипт обертки Maven (mvnw), который автоматически загружает и выполняет необходимый бинарный файл Maven.
Если тестирование и упаковка прошли успешно, получите пакет *.jar из папки $PROJECT_DIR/target и поместите его в домашнюю папку APP_USER (кодовое имя APP_DIR).
Установите переменные окружения в APP_VM (предпочтительно использовать те же переменные окружения, переданные с хост-машины с помощью ENV, как в DB_VM):
DB_HOST - IP адрес DB_VM
DB_PORT - порт MySql (по умолчанию 3306)
DB_NAME - имя базы данных MySql
DB_USER - пользователь MySql
DB_PASS - пароль пользователя MySql
Запустите приложение с APP_USER, используя команду java -jar
Если все прошло успешно - вы увидите приложение PetClinic на $APP_VM_IP:8080
Создайте скрипт развертывания для приложения PetClinic. Используйте Vagrant для автоматизации процесса создания инфраструктуры для развертывания с помощью Virtualbox (предпочтительно). Для настройки вы можете выбрать использование bash, python или ansible в любом сочетании.
Подзадача I - Инфраструктура
Опишите две виртуальные машины, используя Vagrantfile для развертывания приложения (кодовое имя APP_VM) и базы данных (кодовое имя DB_VM)
Предпочтительно использовать функцию частной сети для удобной связи между ВМ
ВМ должны быть либо Centos, либо Ubuntu
Если не используется частная сеть, то APP_VM должен иметь перенаправленный порт 8080 на хост
Подзадача II - База данных
Используйте любой скрипт настройки, который вы создали, для установки MySQL и любых зависимостей на DB_VM
Настройте базу данных mysql для принятия соединений только из вашей подсети частной сети vagrant
Создайте пользователя без прав root и пароль (кодовое имя DB_USER и DB_PASS) в mysql. Используйте переменные окружения хоста для установки этих значений и передайте их в Vagrantfile с помощью ENV
Создайте базу данных в mysql (кодовое имя DB_NAME) и предоставьте все привилегии для DB_USER для доступа к базе данных
Подзадача III - Приложение
Создайте пользователя без прав root (кодовое имя APP_USER), который будет использоваться для запуска приложения на APP_VM
Используйте любой провизионер для установки Java JDK, git и любых зависимостей на APP_VM
Клонируйте этот репозиторий в рабочую папку (кодовое имя PROJECT_DIR)
Используйте инструмент Maven для запуска тестов и упаковки приложения. Для получения дополнительной информации вы можете использовать эту 5-минутную документацию по maven. Для удобства в папке проекта есть скрипт обертки Maven (mvnw), который автоматически загружает и выполняет необходимый бинарный файл Maven.
Если тестирование и упаковка прошли успешно, получите пакет *.jar из папки $PROJECT_DIR/target и поместите его в домашнюю папку APP_USER (кодовое имя APP_DIR).
Установите переменные окружения в APP_VM (предпочтительно использовать те же переменные окружения, переданные с хост-машины с помощью ENV, как в DB_VM):
DB_HOST - IP адрес DB_VM
DB_PORT - порт MySql (по умолчанию 3306)
DB_NAME - имя базы данных MySql
DB_USER - пользователь MySql
DB_PASS - пароль пользователя MySql
Запустите приложение с APP_USER, используя команду java -jar
Если все прошло успешно - вы увидите приложение PetClinic на $APP_VM_IP:8080