1 пост
IaC
Артур Хайбуллин
Артур Хайбуллин 20 авг 2026, 23:49
iac-opentofu.jpg

Лето - это не только сезон отпусков, но и период, когда высокая температура становится дополнительным фактором риска для инфраструктуры. В моём случае жара, вероятно, внесла свой вклад в отказ одной из нод домашнего Proxmox-кластера: купленный несколько лет назад Minisforum UM890 Pro перестал подавать признаки жизни. Вместо замены вышедшей из строя ноды я решил воспользоваться ситуацией и реализовать давно откладываемую задачу - перенести домашнюю лабораторию в Облако.

Для новой инфраструктуры была выбрана площадка Hostkey и выделенный сервер с предустановленным Proxmox VE 9.*. После развертывания хоста я восстановил из резервных копий основные сервисы и получил рабочую среду. Поскольку инфраструктуру фактически приходилось собирать заново, это оказался подходящий момент для следующего шага - перехода к Infrastructure as Code (IaC).

В предыдущем посте я разбирал автоматическое формирование Ansible Inventory на основе данных из Proxmox API. По расписанию скрипт получал актуальное состояние виртуальной инфраструктуры и генерировал inventory, благодаря чему Ansible всегда работал с актуальным списком серверов. Однако это решение закрывало только одну конкретную проблему: inventory соответствовал тому, что уже существует в Proxmox.

При этом оставался более фундаментальный вопрос: где описано то, что вообще должно существовать?

Количество контейнеров, их параметры, выделенные CPU и RAM, диски, сетевые настройки и другие характеристики инфраструктуры по-прежнему существовали преимущественно в моей голове, отдельных командах и истории bash.

Скрипт синхронизации мог ответить на вопрос:

«Что сейчас запущено в Proxmox?»

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

«Как должна выглядеть инфраструктура и как воспроизвести её с нуля?»

Именно эту задачу я решил закрыть с помощью OpenTofu - open-source форка Terraform.

В этом посте разберу, как я перевёл домашнюю инфраструктуру под управление OpenTofu, связал её с self-hosted GitLab CI/CD и Proxmox, организовал хранение и применение конфигурации через pipeline, а также расскажу о проблемах, с которыми столкнулся в процессе миграции.

Читать далее..

60