From a881ea20d7c5eee494536465c04a5120a8bc56cd Mon Sep 17 00:00:00 2001 From: Kirill Garbar Date: Thu, 18 Oct 2018 20:27:07 +0000 Subject: [PATCH 1/2] HW-4 --- README.md | 60 +++++++++++++------- cloud-bastion.ovpn => VPN/cloud-bastion.ovpn | 0 setupvpn.sh => VPN/setupvpn.sh | 0 deploy.sh | 4 ++ install_mongodb.sh | 7 +++ install_ruby.sh | 3 + startup_script.sh | 18 ++++++ 7 files changed, 72 insertions(+), 20 deletions(-) rename cloud-bastion.ovpn => VPN/cloud-bastion.ovpn (100%) rename setupvpn.sh => VPN/setupvpn.sh (100%) create mode 100644 deploy.sh create mode 100644 install_mongodb.sh create mode 100644 install_ruby.sh create mode 100644 startup_script.sh diff --git a/README.md b/README.md index 0e012c2..eea60d8 100644 --- a/README.md +++ b/README.md @@ -4,36 +4,56 @@ - [X] Задание со * ## В процессе сделано: - - Созданы две ВМ. Одна с внутренним. Одна с внешним и внутренним IP - пограничный сервер. - - Проработаны несколько вариантов подключения через proxy по SSH - - Проработан метод создания алиасов для SSH. - - Проработана подключение по SSH keys. - - Развёрнут по инструкции OpenVPN с надстройкой pritunl. Настроено использование с let's encrypt и сервисом sslip.io. + - Развёрнуто приложение на виртуальной машине в GCP. + - Добавлено вручную правило для разрешения входящего трафика на сервера с определённым тегом. + - Написаны скрипты для развёртывания приложения. + - Скрипты объединены в один и приложение развёрнуто одним скриптом. + - Скрипт добавлен в качестве файла в команду создание ВМ gcloud. + - Скрипт добавлен в качестве ссылки на файл в бакете. Бакет сделан публичным. + - Добавлено из консоли gcloud правило для разрешения входящего трафика на сервера с определённым тегом. -## Подключение к someinternalhost в одну команду. Три способа. -- ssh -o ProxyCommand="ssh -i ~/.ssh/appuser appuser@35.187.10.59 nc %h %p" appuser@10.156.0.2 -- ssh -o ProxyCommand="ssh -W %h:%p -i ~/.ssh/appuser appuser@35.187.10.59" appuser@10.156.0.2 -- ssh -tt -i ~/.ssh/appuser -A appuser@35.187.10.59 ssh -tt 10.156.0.2 +## Команда для создания виртуальной машины с скриптом развёртывания приложения в виде локального файла. +``` +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_script.sh +``` + +## Команда для создания виртуальной машины с скриптом развёртывания приложения в видессылки на файл в бакете. +``` +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-url=https://storage.googleapis.com/reddit-app/startup_script.sh +``` -## Вариант решения для подключения командой ssh someinternalhost. -Добавить Host в файл config в директории .ssh. +## Команда для создания правила фаерволла из консоли gcloud ``` -Host someinternalhost - HostName 10.156.0.2 - User appuser - IdentitiesOnly yes - IdentityFile ~/.ssh/appuser - ProxyCommand ssh -i ~/.ssh/appuser appuser@35.187.10.59 nc %h %p +gcloud compute firewall-rules create default-puma-server \ + --action allow \ + --direction ingress \ + --rules tcp:9292 \ + --source-ranges 0.0.0.0/0 \ + --target-tags puma-server ``` ## Данные для подключения ``` -bastion_IP = 35.187.10.59 -someinternalhost_IP = 10.156.0.2 +testapp_IP = 35.205.139.96 +testapp_port = 9292 ``` ## Как проверить работоспособность: - - Перейти по ссылке https://35.187.10.59.sslip.io + - Перейти по ссылке https://35.205.139.96:9292 ## PR checklist - [X] Выставил label с номером домашнего задания diff --git a/cloud-bastion.ovpn b/VPN/cloud-bastion.ovpn similarity index 100% rename from cloud-bastion.ovpn rename to VPN/cloud-bastion.ovpn diff --git a/setupvpn.sh b/VPN/setupvpn.sh similarity index 100% rename from setupvpn.sh rename to VPN/setupvpn.sh diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 0000000..6b3f66d --- /dev/null +++ b/deploy.sh @@ -0,0 +1,4 @@ +#!/bin/bash +git clone -b monolith https://github.com/express42/reddit.git +cd reddit && bundle install +puma -d diff --git a/install_mongodb.sh b/install_mongodb.sh new file mode 100644 index 0000000..709832c --- /dev/null +++ b/install_mongodb.sh @@ -0,0 +1,7 @@ +#!/bin/bash +sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 +echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee -a /etc/apt/sources.list.d/mongodb-org-3.2.list +sudo apt update +sudo apt install -y mongodb-org +sudo systemctl start mongod +sudo systemctl enable mongod diff --git a/install_ruby.sh b/install_ruby.sh new file mode 100644 index 0000000..d423ca8 --- /dev/null +++ b/install_ruby.sh @@ -0,0 +1,3 @@ +#!/bin/bash +sudo apt update +sudo apt install -y ruby-full ruby-bundler build-essential diff --git a/startup_script.sh b/startup_script.sh new file mode 100644 index 0000000..ac61514 --- /dev/null +++ b/startup_script.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +#ruby +sudo apt update +sudo apt install -y ruby-full ruby-bundler build-essential +sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 + +#mongo +echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee -a /etc/apt/sources.list.d/mongodb-org-3.2.list +sudo apt update +sudo apt install -y mongodb-org +sudo systemctl start mongod +sudo systemctl enable mongod + +#app +git clone -b monolith https://github.com/express42/reddit.git +cd reddit && bundle install +puma -d From 0adde030a8dcf079f9f4db4e54944a6a92c1b1d5 Mon Sep 17 00:00:00 2001 From: Kirill Garbar Date: Thu, 18 Oct 2018 20:33:31 +0000 Subject: [PATCH 2/2] HW-4 executable fixed --- deploy.sh | 0 install_mongodb.sh | 0 install_ruby.sh | 0 startup_script.sh | 0 4 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 deploy.sh mode change 100644 => 100755 install_mongodb.sh mode change 100644 => 100755 install_ruby.sh mode change 100644 => 100755 startup_script.sh diff --git a/deploy.sh b/deploy.sh old mode 100644 new mode 100755 diff --git a/install_mongodb.sh b/install_mongodb.sh old mode 100644 new mode 100755 diff --git a/install_ruby.sh b/install_ruby.sh old mode 100644 new mode 100755 diff --git a/startup_script.sh b/startup_script.sh old mode 100644 new mode 100755