Homework-05
Установка соединения с someinternalhost в одну команду:
ssh -A user@bastionIP -t ssh someinternalhostIP
или
ssh -A -J user@bastionIP user@someinternalhostIP
Доп задание
В фаил .ssh/config добавляем
Host bastion
hostname <bastionIP>
User <username>
Host someinternalhost
hostname <someinternalhostIP>
proxyjump bastion
user <username>
После этого работает ssh bastion или ssh someinternalhost
Сетевые реквизиты
Хост bastion, IP: 35.189.198.21 внутр IP: 10.132.0.2.
Хост someinternalhost, внутр IP: 10.132.0.3
Homework-06
Создание Redditapp instance из скрипта из git'а
gcloud compute instances create reddit-app \
--boot-disk-size=10GB \
--zone=europe-west1-d \
--image-family ubuntu-1604-lts \
--image-project=ubuntu-os-cloud \
--machine-type=g1-small \
--tags puma-server \
--restart-on-failure \
--metadata "startup-script-url=https://raw.githubusercontent.com/Otus-DevOps-2017-11/etozhecyber_infra/Infra-2/startup.sh"
или напрямую цепью комманд
gcloud compute instances create reddit-app \
--boot-disk-size=10GB \
--zone=europe-west1-d \
--image-family ubuntu-1604-lts \
--image-project=ubuntu-os-cloud \
--machine-type=g1-small \
--tags puma-server \
--restart-on-failure \
--metadata "startup-script=git clone https://github.com/Otus-DevOps-2017-11/reddit.git && cd reddit && bundle install && puma -d"
Homework 9
packer
Создано 2 семейства образов из образа ubuntu-1604-lts
:
reddit-app-base
- базовый образ для приложения (с ruby на борту)
reddit-db-base
- базовый образ для БД (c mongod на борту)
terraform
Был создан модуль vpc
,app
,db
.
Создано два конфига для поднятия окружения stage
и prod
Homework-10
Базовая часть
Все сделано по описанию - установлен ansible с помощью файла requirements.txt
sudo pip install -r requirements.txt
Далее было поднято тестовое откружение, созданы inventory файлы ( ini и yml),
проверен ping до хостов
Homework-11
Подготовлены следующие ansible playbooks:
reddit-app-one-play.yml - все задачи в одном файле и в одном сценарии, при запуске нужно ограничивать по тегу и группе хостов:
ansible-playbook reddit-app-one-play.yml --limit app --tags app-tag
reddit-app-multiple-plays.yml - все задачи в одном файле и в множестве сценариев; при запуске достаточно ограничить только по тегу:
ansible-playbook reddit-app-multiple-plays.yml --tags app-tag
site.yml + app.yml + db.yml + deploy.yml - каждый сценарий в своем файле, есть объединяющий сценарий. Запускать можно как отдельные сценарии, так и сводный файл для полного цикла деплоя.
packer-app.yml, packer-db.yml - плейбуки для Packer, заменяющие скрипты установки ПО для сервера приложений и сервера БД. Используются при подготовке образа с помощью Packer:
packer build -var-file=./variables-app.json app.json
Homework-12
- Созданы отдельные роли app и db
- Оригинальные app.yml и db.yml переделанны на вызов ролей
- Созданы 2 окружения - stage и prod
- Плейбуки были перенесены из корня папки ansible в подпапку playbooks
- ansible.conf был переделан в соответствии с новой файловой стуктурой
- Добавлена роль jdauphant.nginx - которая устанавливает nginx для reverse проксирования