ssh -i ~/.ssh/appuser -o ProxyCommand="ssh -W %h:%p appuser@35.234.123.86" appuser@10.156.0.3$ cat ~/.ssh/config`
Host *
ForwardAgent yes
Host bastion
Hostname 35.234.123.86
User appuser
IdentityFile ~/.ssh/appuser
Host someinternalhost
User appuser
HostName 10.156.0.3
IdentityFile ~/.ssh/appuser
ProxyCommand ssh -W %h:%p bastionConnection info:
bastion_IP = 35.234.123.86 someinternalhost_IP = 10.156.0.3
gcloud compute instances create reddit-app --boot-disk-size=10GB --image-family ubuntu-1604-lts --image-project=ubuntu-os-cloud --machine-type=g1-small --tags puma-server --restart-on-failure --metadata startup-script='wget -O - https://gist.githubusercontent.com/atlix/6c42d225e8ff093c1ab235562f6ed1c2/raw/ad4981251c9c25300f053b03eae2189ec0360ccc/startup_script.sh | bash'
gcloud compute --project=infra-219310 firewall-rules create default-puma-server --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:9292 --source-ranges=0.0.0.0/0 --target-tags=puma-server
testapp_IP = 35.241.224.247 testapp_port = 9292
Созданы шаблоны ubuntu16.json (reddit-base) & immutable.json (reddit-full)
base:
cd packer && packer build ubuntu16.json
full:
cd packer && packer build -var-file=variables.json immutable.json
config-scripts/create-reddit-vm.sh
Создана директория terraform, добавлены конфигурационные файлы, поправлен .gitignore. Добавлена конфигурация для деплоя тестового приложения reddit в GCP
Добавлены ssh-ключи для нескольких пользователей. Получен наглядный вывод о том, что не стоит настраивать ssh-ключи через web-консоль, если управление ими производится через terraform
Добавлена конфигурация для деплоя нескольких серверов приложений. Создан lb.tf с примером конфигруации GCP LoadBalancer, позволяющий проксировать трафик на несколько серверов приложений. Проведена проверка, что при отключении приложения на одной VM, не происходит отказа в обслуживании - трафик балансируется на "живой" сервер за счет healthcheck.
- Изучен способ импортирования существующей инфраструктуры в terraform
- Конфигурация terraform разбита на модули
- Созданы stage и prod среды
- Добавлены правила fw
- Приложение деплоится на 2 VM (reddit-app и reddit-db)
- Создан inventory.json и добавлен bash-скрипт inventory.sh для транслирования его ansbile
- Созданы различные вариации playbook'ов для провижининга и деплоя приложения
- Изменен способ провижининга образов с shell на ansible в конфигурации packer, собраны новые образы reddit-app-base и reddit-db-base
- Изменения протестированы на примере создания stage-инфраструктуры
- Подключен скрипт динамического инвентори gce.py
- Динамические инвентори для prod/stage через gce.py
- Добавлены тесты
- Установлены Vagrant, Virtualbox, Molecule
- Изменена конфигурация ролей; роли добавлены в плейбуки
- Добавлен тест для mongo
- Настройка Nginx через Vargant