Skip to content

otus-devops-2019-02/akozhin_infra

Repository files navigation

akozhin_infra

akozhin Infra repository

Homework 5 GCP & VPN

Самостоятельное задание 1

Исследовать способ подключения к someinternalhost в одну команду из вашего рабочего устройства

Для подключения в одну команду можно использовать туннель до хоста, не имеющего прямого доступа, через открытый хост.

ssh -L 2222:10.132.0.5:22 35.241.240.202
ssh -p 2222 localhost

Дополнительное задание:

Предложить вариант решения для подключения из консоли при помощи команды вида ssh someinternalhost из локальной консоли рабочего устройства, чтобы подключение выполнялось по алиасу someinternalhost

Различные настройки ssh клиента можно задать в специальном конфигурационном файле, в том числе alias для подключения.

~/.ssh/config
Host bastion
		Hostname 35.241.240.202
		User akozhin
		Port 22
		IdentityFile ~/.ssh/akozhin		

Host internal
		Hostname localhost
		Port 2222

После создания такой конфигурации можно подключаться по имени:

ssh bastion
ssh internal
  • Подробнов про конфигурирование ssh клиента - SSH CONFIG FILE

Дополнительное задание 2

Сейчас веб-интерфейс VPN-сервера Pritunl работает с самоподписанным сертификатом. И браузер постоянно ругается на это. С помощью сервисов sslip.io xip.io и https://letsencrypt.org/ реализуйте использование валидного сертификата для панели управления VPN-сервера

GCP VMs - bastion & internal

bastion_IP = 35.241.240.202 someinternalhost_IP = 10.132.0.5

Homework 6 GCP & cli

Создание правила для firewall

gcloud compute --project=infra-235119 firewall-rules create default-puma-server-1 --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:9292 --source-ranges=0.0.0.0/0 --target-tags=puma-serve

Создание виртуальной машины со скриптом запуска

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-from-file startup-script=startup.sh

Результат выполнения домашнего задания

testapp_IP = 34.76.204.210 testapp_port = 9292

Homework 6 Packer

Для проверки конфигурации можно использовать команду validate в том числе вместе с передачей файла с переменными.

packer validate -var-file variables.json ubuntu16.json

Данная команда проверит синтаксис, но не проверит параметры. При выполнении ДЗ я получил ошибки: пропущена запятая, не заполнен обязательный параметр. Чтобы переменную сделать обязательной для заполнения нужно в блоке variables значение по умолчанию указать null. Для задания массивов используется строка со списком значений через запятую.

"variables" : {
    "project_id" : null,
    "source_image_family" : null,
    "machine_type" : null,
    "image_description" : "Reddit base app image with rupy and mongodb",
    "disk_size" : "10",
    "disk_type" : "pd-standard",
    "tags" : "puma-server"
  }

Ошибка некорректного заполнения значений будет найдена только при создании образа.

Синтаксис использования значений переменных в конфигурации {{user ``var_name``}}. Ссылка на массив не отличается синтаксически от ссылки на строку.

Полезные ссылки

About

akozhin Infra repository

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published