lbnv13 Infra repository
ssh -i ~/.ssh/appuser -J [email protected] [email protected]
.ssh/config: Host someinternalhost HostName 10.128.0.8 User appuser ProxyJump [email protected]
https://178.154.202.148.nip.io/
bastion_IP = 178.154.202.148 someinternalhost_IP = 10.128.0.8
testapp_IP = 62.84.113.75 testapp_port = 9292
yc compute instance create
--name reddit-app
--hostname reddit-app
--memory=4
--create-boot-disk image-folder-id=standard-images,image-family=ubuntu-1604-lts,size=10GB
--network-interface subnet-name=default-ru-central1-a,nat-ip-version=ipv4
----metadata-from-file user-data=startup.yaml
--metadata serial-port-enable=1
Сконфигурирован загрузочный диск, чтобы ВМ загружалась из образа Сконфигурирован полный загрузочный диск с работающим приложением Параметризованы созданные шаблоны Добавлен скрипт create-reddit-vm.sh для создания ВМ из готового образа с помощью Yandex.Cloud CLI
Установлен и инициализирован terraform Добавлен main.tf для работы с yandex cloud Все необходимые параметры передаются через teraform.tfvars Добавлен load balancer lb.tf. Настроен dynamic "target"
Созданы модули Добавлено разделение на stage и прод Настроено хранение стейт файла в удаленном бекенде Все необходимые параметры передаются через teraform.tfvars Добавлен provisioner для деплоя приложения. Так же добавлена настройка для mongodb. Проверена работа приложения с БД
Установлен и настроен Ansible Реализован простой плейбук Написан python скрипт, позволяющий Ansible использовать dynamic inventory
Иcпользованы плейбуки, хендлеры и шаблоны для конфигурации окружения и деплоя тестового приложения. Использованы различные подходы (Один плейбук, много плейбуков) Изменен провижн образов Packer на Ansible-плейбуки. Собраны новые образы. Использован плагин инвентаризации Yandex cloud. Использован функционал keyed_groups.
Созданы роли app и db. Созданы окружения stage и prod., настроено окружение по умолчанию. Созданы файлы с данными пользователей для каждого окружения. Файлы зашифрованы с помощью Ansible Vault. vault.key сохранен out-of-tree.
Перенесено из предыдущего ДЗ в каждое из окружений
Otus tests packer validate для всех шаблонов terraform validate и tflint для окружений stage и prod ansible-lint для плейбуков Ansible
Установлены и настроены vagrant и virtualbox Переделаны роли app и db Проведены тесты роли db в molecula
Добавлен тест проверки порта 27017 Роли перенесены в плейбуки для пакера Роль db вынесена в отдельную репу, откуда ставится с помощью ansible-galaxy. БЫла убрана из репозитория, но пришлось вернуть для прохождения тестов ansible из прошлого дз