Skip to content

atlix/infra_tests

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

atlix_infra

Build Status

Infrastructure repository. Otus DevOps.


Homework 3 / Cloud bastion host /

One-line connect:
ssh -i ~/.ssh/appuser -o ProxyCommand="ssh -W %h:%p appuser@35.234.123.86" appuser@10.156.0.3

Alias:
$ 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 bastion

$ ssh someinternalhost

IP info

Connection info:

bastion_IP = 35.234.123.86 someinternalhost_IP = 10.156.0.3


Homework 4 / Cloud test app /

Make an instance
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'

Adding firewall rule
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


Homework 5 / Packer /

Templates

Созданы шаблоны ubuntu16.json (reddit-base) & immutable.json (reddit-full)

Creating image

base:

cd packer && packer build ubuntu16.json

full:

cd packer && packer build -var-file=variables.json immutable.json

Deploying app
config-scripts/create-reddit-vm.sh

Homework 6 / Terraform-1 /

Main task

Создана директория terraform, добавлены конфигурационные файлы, поправлен .gitignore. Добавлена конфигурация для деплоя тестового приложения reddit в GCP

Additional task *

Добавлены ssh-ключи для нескольких пользователей. Получен наглядный вывод о том, что не стоит настраивать ssh-ключи через web-консоль, если управление ими производится через terraform

Additional task **

Добавлена конфигурация для деплоя нескольких серверов приложений. Создан lb.tf с примером конфигруации GCP LoadBalancer, позволяющий проксировать трафик на несколько серверов приложений. Проведена проверка, что при отключении приложения на одной VM, не происходит отказа в обслуживании - трафик балансируется на "живой" сервер за счет healthcheck.


Homework 7 / Terraform-2 /

Main task
  • Изучен способ импортирования существующей инфраструктуры в terraform
  • Конфигурация terraform разбита на модули
  • Созданы stage и prod среды
  • Добавлены правила fw
Additional task *
  • Создан storage-bucket для хранения tfstate
  • Настроен удаленный tfstate-backend для stage и prod сред
Additional task **
  • Приложение деплоится на 2 VM (reddit-app и reddit-db)

Homework 8 / Ansible-1 /

Main task
  • Установлен Ansible
  • Создана директория ansible, добавлены файлы конфигурации и inventory-файлы
Additional task *
  • Создан inventory.json и добавлен bash-скрипт inventory.sh для транслирования его ansbile

Homework 9 / Ansible-2 /

Main task
  • Созданы различные вариации playbook'ов для провижининга и деплоя приложения
  • Изменен способ провижининга образов с shell на ansible в конфигурации packer, собраны новые образы reddit-app-base и reddit-db-base
  • Изменения протестированы на примере создания stage-инфраструктуры
Additional task *
  • Подключен скрипт динамического инвентори gce.py

Homework 10 / Ansible-3 /

Main task
  • Реорганизован каталог ansible
  • Созданы роли app/db
  • Добавлены окружения stage/prod
Additional task *
  • Динамические инвентори для prod/stage через gce.py
  • Добавлены тесты

Homework 11 / Ansible-4 /

Main task
  • Установлены Vagrant, Virtualbox, Molecule
  • Изменена конфигурация ролей; роли добавлены в плейбуки
  • Добавлен тест для mongo
Additional task *
  • Настройка Nginx через Vargant

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •