Skip to content
 
 

Latest commit

 

History

38 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Отчет

Описание задачи

Необходимо развернуть три виртуальные машины, согласно схеме:

Решение

Для построения и реализации поставленной задачи был использован сервис Play-with-docker.com, который позволяет подключаться удалённо к виртуальным машинам.

Первым этапом было создание виртуальных машин:

Виртуальная машина А

Теперь необходимо настроить машину А (Сервер). Настройка заключается в создание ssh-ключа, создании адаптера для задания маршрутов.

Шаг №1. Генерация ssh-ключа.

Подключение к виртуальной машине А происходит по команде: ssh ip172-18-0-34-conq0rgl2o9000dchcq0@direct.labs.play-with-docker.com

Шаг №2. Создание адаптера на машине А.

Шаг №3. Создание маршрута на машине А между А и С

Следующим этапом будет настройка машины Б, которая выступает связующим звеном между А и С.

Виртуальная машина Б

Шаг №1. Генерация ssh-ключа

Подключение к виртуальной машине А происходит по команде: ssh ip172-18-0-75-conq0rgl2o9000dchcq0@direct.labs.play-with-docker.com

Шаг №2. Создание адаптера на виртуалке Б

Создадим 1-ый маршрут 192.168.24.1/24

Создадим 2-ой маршрут 192.168.2.1/24

На данном этапе настройка машины Б завершается. Приступим к настройке машины С.

Виртуальная машина С

Настройка виртуальной машины С заключается в созданиие ssh-ключа, адаптера.

Шаг №1. Генерация ssh-ключа

Подключение к виртуальной машине C происходит по команде: ssh ip172-18-0-122-conq0rgl2o9000dchcq0@direct.labs.play-with-docker.com

Шаг №2. Создание адаптера на виртуалке С и добавление маршрута между С и А

Настройка машины С завершено

Создание и запуск http-сервера

Шаг №1. Установка модуля Flask на машине А

Шаг №2. Создание файла app.py

Шаг №3. Разворачивание hhtp-сервера на 5000 порту на виртуалке А

Шаг №4. Отправка запроса с машины С на 5000 порт машины А

Машина С:

Машина А:

Bash-скрипты для виртуалок А, Б и С

Также в рамках задания необходимо было прописать bash-скрипт для каждой виртуалки, который позволит в дальнейшим упростить запуска наших машин.

Виртуалка А.

#!/bin/bash
echo "Adapter for A"
ip link add macvlan1 link eth0 type macvlan mode bridge
ip address add dev macvlan1 192.168.24.10/24
ip link set macvlan1 up
ip route add 192.168.2.0/24 via 192.168.24.1

pip install flask

touch app.py

from flask import Flask, request

app = Flask(__name__)

@app.route('/', methods=['GET'])
def get_request():
    return 'GET request'

@app.route('/', methods=['POST'])
def post_request():
    data = request.get_json()
    return f'POST request with data: {data}'

@app.route('/', methods=['PUT'])
def put_request():
    data = request.get_json()
    return f'PUT request with data: {data}'

app.run(host='0.0.0.0', port=5000)

python app.py

Виртуалка Б.

#!/bin/bash
echo "Configuring adapter for A"
ip link add macvlan1 link eth0 type macvlan mode bridge
ip address add dev macvlan1 192.168.24.1/24
ip link set macvlan1 up
echo "Adapter for A - ready\n"

echo "Configuring adapter for C"
ip link add macvlan2 link eth0 type macvlan mode bridge
ip address add dev macvlan2 192.168.2.1/24
ip link set macvlan2 up
echo "Adapter for C - ready\n"

Виртуалка С.

#!/bin/bash
echo "Configuring adapter for subnet C"
ip link add macvlan1 link eth0 type macvlan mode bridge
ip address add dev macvlan1 192.168.2.10/24
ip link set macvlan1 up
ip route add 192.168.24.0/24 via 192.168.2.1

echo "Adapter for C - ready"

printf "Sending request"
curl "http://192.168.28.10:5000"

About

Задание для курса ПО облачных платформ. Linux

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages