ServerAdmin.ru
31.6K subscribers
841 photos
57 videos
23 files
2.99K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Ресурс включён в перечень Роскомнадзора
Download Telegram
Для автоматизации установки и настройки виртуальных машин в Proxmox я рассказывал про Cloud-Init. С помощью этой технологии можно создать преднастроенный образ, который включает в себя базовые настройки системы, такие как сеть, пользователи, установка пакетов и некоторые другие.

Если хочется пойти дальше в автоматизации и развернуть сразу набор виртуальных машин определённой конфигурации, то для этого можно воспользоваться Terraform. Для Proxmox есть провайдер (terraform registry доступ через vpn, github). Это самый популярный. Есть ещё один, который очень активно развивается и допиливается - terraform registry и github.

Кратко поясню, для тех, кто не знает, что такое Terraform и для чего он может быть полезен в связке с Proxmox. Terraform был разработан как решение по управлению в стиле IaC (Infrastructure as Code, IaC) - инфраструктура как код. В первую очередь это касается управления ресурсами облачных провайдеров. Вы описываете в Terraform, что хотите получить на выходе, запускаете шаблон и получаете набор виртуальных машин, сетей и прочих облачных ресурсов. Причём вы можете оперативно как развернуть инфраструктуру, так и потушить. Это актуально для динамических сред с плавающей нагрузкой. Часто Terraform работает в связке с Ansible. Первый разворачивает инфраструктуру, второй её настраивает.

Proxmox не является инструментом для построения динамичных облачных инфраструктур. Его область применения - одиночные гипервизоры или небольшие кластеры на несколько серверов. По моим представлениям в проде на базе Proxmox нет большой нужды использовать Terraform. Он может быть актуален для каких-то тестовых задач как по изучению самого Terraform, так и для разворачивания тестового окружения в Proxmox. Можно разом развернуть какую-то лабораторию и потом так же в одно действие от неё избавиться.

Использование Terraform с Proxmox выглядит примерно следующим образом. Это не будет готовой инструкцией, так как в формат заметки не уместить. Все подробности без проблем гуглятся, так как тема живая. В целом, Terraform относительно простой инструмент. Чтобы начать им пользоваться достаточно небольшой инструкции или видео. Можно брать готовые шаблоны из статей или документации и править под себя.

1️⃣ Готовится образ с использованием Cloud-Init, на базе которого будет разворачиваться инфраструктура.
2️⃣ Создаётся отдельный пользователь и токен для него, который будет использовать Terraform.
3️⃣ Устанавливается Terraform или Opentofu (форк).
4️⃣ Создаётся конфигурация с провайдером и планон разворачивания инфраструктуры. Будут 2 файла: provider.tf и vm-debian12.tf. Содержимое прикреплю следующим сообщением. По желанию можно все переменные вынести в отдельный файл.

Пример конфигурации можно посмотреть в репозитории. После подготовки конфигурации, её можно проверить:

# terraform init
# terraform validate

Посмотреть, что будет создано:

# terraform plan

Если всё ОК, то создаём описанное:

# terraform apply

Когда всё это будет не нужно, удаляем:

# terraform destroy

В моём примере была одна виртуальная машина. По аналогии, вы можете описать любое необходимое количество. Поместить их в одну или разные сети, посадить в разные хранилища и т.д.

Как я уже говорил, инструмент относительно простой. Я быстро во всём разобрался и протестировал. Единственный неприятный нюанс - репозитории terraform и opentofu заблокированы для РФ. Пришлось трафик через VPN пускать. У меня всё автоматизировано для этого. Отправил домены registry.terraform.io, apt.releases.hashicorp.com и registry.opentofu.org через VPN на шлюзе.

Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#proxmox #iac #terraform
Please open Telegram to view this post
VIEW IN TELEGRAM
👍139👎6
Некоторое время назад провайдер Selectel запустил у себя очень интересную и полезную возможность - заказ и управление железными серверами с помощью Terraform. У него давно есть Terraform-провайдер для управления своими ресурсами, но конкретно выделенные сервера появились в поддержке недавно.

Для облачных ресурсов у всех провайдеров управление стандартизировано и доступно, а вот с железом история посложнее. Чаще всего каждый провайдер сам решает эту задачу своими силами, чтобы предоставить клиентам управление железными серверами. И далеко не у всех в принципе есть какие-то возможности автоматизации. Обычным делом является ручной заказ нового сервера из списка доступных, либо через заявку в техническую поддержку.

🔥 С помощью Terraform в Selectel вы можете вести всю свою железную инфраструктуру в формате IaC (Infrastructure as Code), масштабировать, переносить, копировать и т.д. То есть действовать точно так же, как это привыкли делать с облачными ресурсами, только тут у вас будут железные сервера, которые в пересчёте на ресурсы дешевле в 2-3 раза облаков. А если брать бюджетные конфигурации на десктопном железе для тех же тестовых или временных окружений, то экономия будет ещё больше.

С помощью Terraform вы можете увязать железные сервера с остальными ресурсами и настройками провайдера. Я написал статью, в которой рассказал, как можно с помощью Terraform в автоматическом режиме заказать железный сервер с заданными параметрами и некоторыми настройками:

◽️Название стандартной конфигурации сервера
◽️Расположение датацентра
◽️Название проекта, для которого будет заказан сервер
◽️Образ ОС, которая будет автоматически установлена на сервер
◽️Оплаченный период: день, месяц, 3, 6, 12 месяцев
◽️Название сервера
◽️Внешний IP адрес
◽️SSH ключ и пароль root
◽️Установка Docker и запуск выбранного контейнера

Настройка Terraform для заказа выделенных серверов в Selectel

Написал всё максимально просто и наглядно, чтобы повторить смог даже тот, кто никогда не работал с Terraform, опустив многие моменты для упрощения, типа разделения файлов конфигурации и выделение секретов в отдельные файлы. Кто с Terraform работает и так знает, как лучше всё организовать. В статье сделан упор на простоту и удобство работы именно с выделенными серверами в таком формате.

Статью как обычно писал полностью сам, без внешних правок и ИИ. У меня заказали только её тематику. Дальше я всё сам, начиная от структуры.

Насколько я знаю, подобной услуги больше нет ни у одного провайдера. По крайней мере я не видел и не слышал. Сделано на самом деле очень удобно. Получился своеобразный Bare Metal Cloud по типу виртуального облака, только на реальном арендованном железе.

Например, вы можете заказать 3 выделенных сервера сразу с установленными на них Proxmox, управляя при этом разбивкой дисков, объединить их в кластер, подключить сетевые диски, назначить IP адреса, создать DNS записи. Далее с помощью Terraform-провайдера самого Proxmox нарезать и запустить виртуалки. В них уже с помощью Ansible выполнить какие-то настройки.

На выходе получите свою виртуальную инфраструктуру за очень умеренные деньги по сравнению с полностью облачными арендованными ресурсами. Да, описать всё это будет не сказать, что просто, но и чего-то особенного тут нет. Нужно будет аккуратно всё оформить через возможности Terraform-провайдера и добавить каких-то своих специфичных настроек.

#terraform #хостинг
1👍48👎14