====== Развертывание инфраструктуры в On-premise облаке с использованием Terraform ======
===== Реклама =====
* Хочешь сделать что-то хорошо - сделай сам! В нашем случае речь пойдет про управление виртуальной инфраструктурой. Посмотрим, поможет Terraform ли в наших условиях помочь в переходе на KVM без необходимости участвовать в доработке государственных решений. Так же узнаем, чем Terraform отличается от Vagrant и Ansible и можно ли использовать его с LXC/LXD и как его использовать с облачными провайдерами для задач обучения
* Как всегда, все можно будет воспроизвести "дома" в качестве новой увлекательной компьютерной игры.
* Партнер мастер-класса - компания Selectel: [[https://slc.tl/j32kr|Облачный сервер для деплоя]]
===== Техническое задание =====
* Развернуть "в домашних" условиях KVM и Terraform
* Описать инфраструктуру через Terraform
* Осуществить развертывание Linux систем через Cloud-Init
* Осуществить развертывание Windows систем
* Осуществить развертывание ресурсов на время обучения в обучения в облачном провайдере
===== Запись вебинара =====
* [[https://youtu.be/dQAK5hIXM_A]]
* Тэги: Cloud-Init, Terraform, KVM, Linux, libvirt, Selectel, OpenStack
===== Методическая подготовка =====
* При использовании VM можно заять за основу материал из [[https://youtu.be/-R9akcmdFI0?si=bOoLt7wYcECo30Q5|День открытых дверей по профессии "DevOps-инженер"]] (Развертывание стенда дома - установка VirtualBox и где взять образ Linux Debian 12)
===== Шаг 1. Подготовка (сделано заранее) =====
==== При использовании VM ====
* Импорт системы home-computer, побольше RAM и CPU
==== Установка ПО ====
* Установка [[Технология KVM#Установка]] KVM
* [[Технология KVM#Интеграция с Cloud-init]]
==== Загрузка образов ====
* [[Технология KVM#Интеграция с Cloud-init]]
===== Шаг 1. Использование KVM и облачных образов с Cloud-init =====
* Посмотрим, что за [[Технология Terraform]] на пример, в статье: [[https://blog.ionice.ru/terraform-kvm-part1|Использование Terraform на серверах с KVM. Часть 1]]
* Развернем все "вручную", используя KVM и [[Технология KVM#Интеграция с Cloud-init]]
===== Шаг 2. Использование Terraform для одной VM =====
* [[Технология Terraform]] - Установка Terraform, terraform-provider-libvirt, Инициализация проекта
===== Шаг 3. Использование Terraform для развертывания множества VM =====
* [[Технология Terraform#Multi-Machine проект]]
===== Шаг 4. Использование Terraform для развертывания стенда для обучения в Selectel =====
* [[Технология Terraform#Провайдеры Selectel и OpenStack]]
===== Вернуть исходное состояние =====
* Удалить terraform проект в Selectel
* Удалить сервисного пользователя в Selectel
* Откатить ВМ на снапшот и перезагрузить
===== Домашнее задание =====
==== Недостатки решения ====
- Использование индексов в именах объектов