Практическое задание для студентов SPBSTU. Работа с terraform и облаком selectel
В данной практике необходимо создать инфраструктуру в проекте Selectel с помощью terraform и сконфигурировать веб-сервисы с помощью ansible
В качестве конечного приложения можно выбрать либо 2 лабу либо контейнер с todo и БД из docker tutorial
В первом случаем необходимо создать n=3 виртуальные машины в том же принципе (две разные подсети, одна виртуальная машина как шлюз)
Во втором случае проще - нужно создать n=2 виртуальные машины, одну для todo app, другую для mysql DB
- В провайдере openstack заполнить своими данными поля из excel таблицы
- domain_name = <domain из экселя>
- tenant_id = <id проекта, см скриншот в источниках>
- user_name = <логин из экселя>
- password = "пароль из экселя"
- region = "ru-7"
- Необходимо развернуть n количество ВМ с атрибутом прерываемый
- Развернуть необходимые подсети
- Создать публичный ssh ключ и приатачить к ВМ
- Создать загружаемый диск с ubuntu 20.04
- Создать flavor 1CPU 2 gb RAM, Диск объем 10гб на каждую вм (базовый hdd)
- Для каждой ВМ зафиксировать публичный ip адрес
- В output зафиксировать вывод ip адрес и команду ssh для полключения
- Создать файл inventory.ini для ansible, где описаны айпи адреса созданных ВМ
В качестве примеров использовать vpc-example, заменив на прерываемую ВМ либо preempible_sever с модулями
- Использовать сгенерированный terraform'ом inventory файл
- Написать плейбуки для развертывания ваших приложений в docker-compose файлах. Пример
В итоге по запуску команд
terraform apply
должна сгенерироваться инфраструктура и inventory.ini
по запуску команд
ansible-playbook your-playbook.yml
должно установиться ваше приложение на инфрастуктуру автоматически. Критерием выполнения задания является доступность веб интерфейса в публичном ip адресе (grafana в 1 случае и todo-app во втором)
Ни в коем случае нельзя хранить в репозитории чувствительные данные! Работа не принимается, если в репозитории будут лежать логины, пароли от ВМ!
- ресурсы опенстека в terraform registry
- откуда брать id проекта
- установка terraform через зеркало яндекса
- документация selectel
- примеры selectel (terraform selectel provider использовать не нужно, только openstack)
- пример связки terraform+ansible. смотреть папку terraform и ansible