GithubHelp home page GithubHelp logo

arsenier / cloudpractice Goto Github PK

View Code? Open in Web Editor NEW

This project forked from antonaleks/cloudpractice

0.0 0.0 0.0 984 KB

Практическое задание для студентов SPBSTU. Работа с terraform и облаком selectel

HCL 99.75% Jinja 0.25%

cloudpractice's Introduction

CloudPractice

Практическое задание для студентов SPBSTU. Работа с terraform и облаком selectel

В данной практике необходимо создать инфраструктуру в проекте Selectel с помощью terraform и сконфигурировать веб-сервисы с помощью ansible img.png

В качестве конечного приложения можно выбрать либо 2 лабу либо контейнер с todo и БД из docker tutorial

В первом случаем необходимо создать n=3 виртуальные машины в том же принципе (две разные подсети, одна виртуальная машина как шлюз)

Во втором случае проще - нужно создать n=2 виртуальные машины, одну для todo app, другую для mysql DB

Terraform

  1. В провайдере openstack заполнить своими данными поля из excel таблицы
  • domain_name = <domain из экселя>
  • tenant_id = <id проекта, см скриншот в источниках>
  • user_name = <логин из экселя>
  • password = "пароль из экселя"
  • region = "ru-7"
  1. Необходимо развернуть n количество ВМ с атрибутом прерываемый
  2. Развернуть необходимые подсети
  3. Создать публичный ssh ключ и приатачить к ВМ
  4. Создать загружаемый диск с ubuntu 20.04
  5. Создать flavor 1CPU 2 gb RAM, Диск объем 10гб на каждую вм (базовый hdd)
  6. Для каждой ВМ зафиксировать публичный ip адрес
  7. В output зафиксировать вывод ip адрес и команду ssh для полключения
  8. Создать файл inventory.ini для ansible, где описаны айпи адреса созданных ВМ

В качестве примеров использовать vpc-example, заменив на прерываемую ВМ либо preempible_sever с модулями

Ansible

  1. Использовать сгенерированный terraform'ом inventory файл
  2. Написать плейбуки для развертывания ваших приложений в docker-compose файлах. Пример

Итог

В итоге по запуску команд

terraform apply

должна сгенерироваться инфраструктура и inventory.ini

по запуску команд

ansible-playbook your-playbook.yml

должно установиться ваше приложение на инфрастуктуру автоматически. Критерием выполнения задания является доступность веб интерфейса в публичном ip адресе (grafana в 1 случае и todo-app во втором)

Раздел по безопасности

Ни в коем случае нельзя хранить в репозитории чувствительные данные! Работа не принимается, если в репозитории будут лежать логины, пароли от ВМ!

Источники

cloudpractice's People

Contributors

antonaleks avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.