====== Развертывание инфраструктуры в 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 * Откатить ВМ на снапшот и перезагрузить ===== Домашнее задание ===== ==== Недостатки решения ==== - Использование индексов в именах объектов