Инвентаризация перед IaC или "Ох зря я сюда полез..."
Всё начиналось как один старый компьютер пересобранный под сервер - ничего экзотического - Ryzen 7 3700x и 16 гигов оперативки (которые в последствии увеличились до 96). Потом появился первый "по-настоящему" многоядерный сервер - два Xeon E5-2699 v3 + 128 гигов. Вместе они проработали почти год, и успели "покрутить" на себе всё от почты до игровые серверов, в том числе и практически полгода публичный сервер в SCP: Secret Laboratory.
По итогу, за несколько лет хозяйство разрослось и превратилась в то, что в проде назвали бы техдолгом, а по простому «ну как-то так получилось». Три ноды Proxmox, десятки контейнеров и виртуалок, сетевая схема, в которую я сам не полез бы без "ста грамм", зная что сам же её и настраивал. Недавно я собрался и наконец-то посмотрел что вообще накопилось и снёс всё, что было явным мусором и уже не выполняло никаких функций, и сел хотя бы записать, что осталось - прежде чем начать переводить это всё на принципы Infrastructure as Code.
Этот пост - такая инвентаризация «до». Без прикрас: часть решений здесь откровенно нерациональна и несколько раз приводила к даунтайму "по-приколу".
Железо: три ноды, три разных жизни
Весь мой кластер Proxmox держится на трёх машинах разного возраста и назначения, которые все получили Proxmox VE в качестве основы:
- Самая первая нода - на базе AMD Ryzen 7 3700X, изначально поднималась под игровые сервера для друзей и до сих пор в основном под это и используется.
- Вторая, и в общем-то самая мощная - двухпроцессорный Xeon E5-2699 v3 со 128 ГБ RAM. После недавней чистки оказалась абсолютно пустой, никаких виртуалок, а только пара шаблонов, которые были утеряны вместе с отказавшим диском.
- Самая последняя нода - на базе Intel Core i7-2600 с 24 ГБ DDR3 и RTX 2060 на борту. С учётом наполнения и солидного возраста - можно сказать досталась "бесплатно" и по иронии - сейчас она же самая нагруженная.
На этом моменте виден первый вывод, который стал причиной глобальных перемен - нагрузка распределена ровно наоборот тому, как должна быть. Самая слабая машина - самая загруженная, самая мощная - простаивает. Это первое, что я планирую исправлять - но в этот раз уже не руками, а через создание централизованой конфигурации под задачи, которая заодно и станет проверкой, что IaC-описание действительно работает.
Сами ноды долгое время держали россыпь виртуалок и контейнеров разного назначения (VPN, reverse proxy для некоторых сервисов, пара игровых серверов, GitLab, некоторое время даже погоняли Ollama). А вокруг кластера буквально "валяется" разное железо: NAS на TrueNAS Scale, который сам нуждается в перенастройке, Raspberry Pi 5, который просто лежит после использования в курсовой работе, ноутбук с намертво убитым тачпадом, который я может починю, а может поедет в кластер.
Сеть: благие намерения и то, что осталось от них
Самая "адекватная" часть лаборатории — это сеть. В какой-то момент я спроектировал сегментацию с чётким назначением для каждого сегмента: отдельно инфраструктура, отдельно рабочие машины, отдельно игровые сервера, отдельно веб с изоляцией наружу. На бумаге это всё было красиво.
По факту прижился один сегмент, куда я скидывал вообще всё, изоляция, которая была задумана как барьер безопасности, в какой-то момент оказалась просто отключена (и я не могу с уверенностью сказать, когда и почему), а один из сегментов вообще существует без причины - я даже не помню, под что его заводил (вот так и не оставляй комментарии в конфиге).
Отдельная деталь: маршрутизация между сегментами настроена на роутере и — работает. Как именно и почему - я на момент написания поста восстановить логику не могу. Это тот случай, когда «работает — не трогай» тихо превращается в «работает, но я боюсь тронуть».
Почему вообще появился этот пост
Ответ прост: без фиксации текущего состояния невозможно ни спланировать миграцию, ни тем более кому-то показать, что я умею такие миграции планировать. Ну и было неплохо вообще вспомнить, что вообще развелось за прошедшие годы, во время которых не было ни возможности, ни желания что-то глобально менять в конфигурации.
Планы на ближайшее время:
- Зафиксировать текущее состояние (этот пост - часть этого шага).
- Обезопасить самые критические сервисы, которые будут переведены на IaC в самую последнюю очередь, когда всё будет нормально работать.
- Поднять мониторинг - в лабе нет единой точки, где видно, что происходит с сетью, нодами и сервисами, кроме как зайти и посмотреть руками.
- Постепенно выровнять нагрузку между нодами, пересобрать сетевую сегментацию заново - да, в этот раз осознанно с документацией и прочим.
Дальше буду писать по мере продвижения - следующий пост, скорее всего, про то, как я привожу сеть в порядок, не сломав ничего (да-да, чистая правда), что сейчас тихо работает.
Также мелкие новости, недостойные отдельной статьи будут в тгк, можете перейти, если интересно.
Спасибо за то, что дошли до сюда <3