- Регистрируемся в Mail.ru Cloud Solutions
- Заходим в личный кабинет MCS, переходим в раздел "Настройки проекта" и на вкладке "API ключи" нажимаем "Скачать openrc версии 3"
- После скачивания файла нужно загрузить из него переменные командой
source <путь к скачанному файлу>
При вызове этой команды скрипт поросит ввести пароль от своей учетной записи в MCS
- Переходим в интерфейс облака на вкладку "Очереди сообщений" -> "Ключи доступа"
- Нажимаем добавить новый ключ, вводим любое имя
- Копируем содержимое полей Access Key ID и Secret Key и вставляем в файл devops/packer/app/templates/application.service.j2 заменяя плейсхолдеры
Environment=AWS_ACCESS_KEY_ID=<ACCESS KEY ID из интерфейса облака>
Environment=AWS_SECRET_ACCESS_KEY=<SECRET KEY из интерфейса облака>
- Переходим в директорию server/
- Выполняем
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o ../sample_server .
- Повторяем тоже самое для директории worker/
- Локально должены быть установлены утилиты packer и ansible
- Переходим в директорию devops/packer/ в этом проекте
- Запускаем сборку образа командой
packer build -var image_tag=0.0.1 app.pkr.hcl
- Локально должна быть установлена утилита Terraform
- Переходим в директорию terraform/ в этом проекте
- Создаем там файл vars.tfvars со следующим содержимым
image_tag = "0.0.1"
node_count = 3
- Запускаем создание инфраструктуры командой
terraform apply -var-file vars.tfvars -auto-approve
После того как терраформ отработает, он выдаст IP адрес созданного балансировщика. По этому адресу можно делать запросы в API тестового приложения
curl <LB IP>/publish