LINUX.ORG.RU
ФорумAdmin

Инфраструктура как код, но какой?

 , , ,


1

2

Всем привет!

Я хочу немного привести в порядок свою homelab. Хочу сделать несколько нод декларативно, но не уверен какой вариант выбрать:

  1. Установить Proxmox, настраивать LXC\VM через Terraform, а каждый отдельный LXC\VM настраивать через Ansible

  2. Установить NixOS, пусть большая часть сервисов будет жить нативно, а то что нужно иметь в контейнерах менеджерить через podman в Cockpit. Тут плюсы в том, что меньше ОЗУ требуется, но КМК больше гемора с настройками конфига Nix

Хранилище данных будет на другой машине, а на этой всякие эксперименты с фронтами\беками для которых постоянно надо будет создавать\гасить виртуалки, Gitea + Runners + k3s, базы данных.

Собственно, что проще менеджерить? Что будет стабильнее? Что проще менять?

★★★★
Ответ на: комментарий от masa

Мне кажется с кубернетисом виртуалки не нужны.

Не всегда.
Бывает софт, который лучше развернуть в виртуалке всё-таки. А вот самe виртуалку можно и в кубере развернуть, руля ею декларативно ямлами как и любой сущностью кубов.

Zhbert ★★★★★
()
Последнее исправление: Zhbert (всего исправлений: 1)
Ответ на: комментарий от masa

Я как бы не хотел бы полностью уходить в кубернетис, т.е. Gitea например в LXC, я делаю деплой какого-то своего проекта и он разворачивается в k3s - это ок. Но держать всю инфру в кубере достаточно сложно и затратно по времени как мне кажется

AntonyRF ★★★★
() автор топика

Когда я в последний раз тыкал, для проксмокса у тф был такой себе провайдер, очень сырой, но lxc/vm я через него вполне себе успешно создавал. Я бы пошел этим путем, конечно, но сейчас набегут любители никсоса и расскажут, что это не Ъ-IaC

George
()

Я бы добавил incus + incus-ui как вариант. Почему сразу Proxmox то? И работает на любом дистрибутиве, без прибивания гвоздями к Debian. И поддержка cloud-init изкаробки в контейнерах, без костылей. Там, конечно, своеобразная аутентификация, но для хомлабы пойдёт.

а то что нужно иметь в контейнерах менеджерить через podman в Cockpit

Лол. Так там и контейнеры декларативно можно менеджить. И у NixOS есть свои декларативные контейнеры, правда, через systemd-nspawn…

А так, оба варианта правильные, вопрос в предпочтениях.


Но ИМХО, Nix кажется магией вне Хогвартса только поначалу… Не знаю как объяснить. Но рано или поздно задумаешься, а нахера оно всё? Я, как минимум, задумался.

Да и в условиях белых списков, кэши (даже китайские зеркала, российских не знаю) и прочие гитхабы отвалятся. А вот Альтушка, в теории, попадёт туда, если поднажмут. И бинарные сборки контейнеров в локальном registry никуда не пропадут. И будут разворачиваться как обычно. Можно вообще сделать локальное зеркало/кеширующий прокси и меньше зависеть от интернетов. Попробуй, сделай зеркало кеша Nix, там нужно целый Petabyte Project.

А ещё, мне очень понравилось, как оно при каждом чихе лезет в интернет. Хотя казалось бы, я вчера пользовался этим nix-shell с yt-dlp, оно снова лезет в кэш выкачивать. Толи я garbage collect не так настроил, хотя вроде выставил, что удалять всё что старше месяца…

Короче, пришло осознание, что в условиях чебурнета оно превратится в тыкву. И надо разворачивать диван, пока не поздно. Можете меня помидорами закидать, конечно. Уехать не могу.

egzakharovich
()
Последнее исправление: egzakharovich (всего исправлений: 1)
Ответ на: комментарий от AntonyRF

можно им же скрипты запускать потом, плюс клауд-инит есть, но написать без ansible идемпотентный скрипт будет чуть сложнее, чем с ним. но ты же можешь завернуть это условно в один «пайплайн» — создал тф инфру, из output забрал адреса, подготовил inventory и катнул ansible

George
()
Ответ на: комментарий от egzakharovich

Про incus не слышал, спасибо за наводку.

Лол. Так там и контейнеры декларативно можно менеджить.

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

Короче, пришло осознание, что в условиях чебурнета оно превратится в тыкву. И надо разворачивать диван, пока не поздно. Можете меня помидорами закидать, конечно. Уехать не могу.

Эм, т.е. NixOS не советуете или вообще советуете на РФ дистрах строить homelab’у?))

AntonyRF ★★★★
() автор топика
Последнее исправление: AntonyRF (всего исправлений: 1)

В инфраструктуре как код nixos не применяют.

Смотри в сторону yaml конфигов с декларированием конфигураций и ansible / terraform.

Смысл подхода, что всё должно воспроизводиться эталонно.

А в nixos это не получится. Это на поиграться.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от AntonyRF

Эм, т.е. NixOS не советуете

Если как и я, застряли, то да. Это потенциальная проблема, но если выстрелит, мало не покажется. Как dockerhub, который внезапно решил устроить сранкции, а потом переобулся, правда…

Ну и вы сами понимаете, что 100% декларативно работать не будете, ибо не хотите «дрочить» конфигурацию…

или вообще советуете на РФ дистрах строить homelab’у?))

Не обязательно РФ дистры, т.к. какой-нибудь mirror.yandex.ru на месте. Но явно не на таком, который зависит от неограниченного интернета.

egzakharovich
()

Собственно, что проще менеджерить? Что будет стабильнее? Что проще менять?

Ну конечно же Slackware. Всю эту ненужность меняешь на Slackware 15.0, обновление сервисов делаешь через ПМ, для конфигурации создаешь пакет configuration, и опять же через ПМ применяешь новую конфигурацию на серверах обновлением пакета. Всякий шлак типа Terraform и Ansible можешь выкинуть.

anonymous
()

Перевёл за последние годы хоумлабу на NixOS с docker-compose, в принципе ничего. Контейнеры для некоторого софта остались, но уже управляются через nix.

У nixos основная проблема это то что nixpkgs плохо стандартизирован и плохо документирован. Если что-то не работает или надо сделать что-то нестандартное, это становится довольно сложно. Но если задача типовая, то обычно это делается намного проще чем где-либо ещё. В целом вещи настраиваются раз и навсегда, что приятно.

Если честно не понимал никогда зачем дома proxmox.

Gary ★★★★★
()
Ответ на: комментарий от egzakharovich

Короче, пришло осознание, что в условиях чебурнета оно превратится в тыкву.

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

Gary ★★★★★
()
Ответ на: комментарий от ugoday

Если приобрести опыт в том, что можно легко продать на рынке труда — Terraform/Ansible.

Спасибо, большая часть коммментов склоняется сюда же. Так что попробую

AntonyRF ★★★★
() автор топика

Мне больше нравится подход NixOS. Накидал сервис systemd с усиленными настройками безопасности, и в путь.

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

anonymous
()
Ответ на: комментарий от Gary

Если не полениться и сделать своё зеркало на NAS, или настроить систему на использование mirror.yandex.ru в качестве зеркала (которое, не проверял, но в теории, может оказаться в этих самых списках. *.yandex.ru жи (habr.com)), то можно как минимум продолжать ставить софт, который уже собран и присутствует в репозиториях.

Что лучше, чем вообще ничего.

На NixOS же произойдёт мгновенный затуп. Вот забыл ты добавить usbutils в environment.systemPackages, вот и сиди теперь без lsusb. Ибо хрен ты его теперь подсосёшь с помощью nix-shell -p usbutils.

egzakharovich
()
Ответ на: комментарий от Zhbert

А вот самe виртуалку можно и в кубере развернуть, руля ею декларативно ямлами как и любой сущностью кубов.

Я, как не любитель усложнять всё на ровном месте, на всякий случай сообщу, что qemu прекрасно работает в контейнере, правда без аппаратного ускорения. А если прокинуть /dev/kvm, то и с аппаратным ускорением. Поэтому какие-то «Deckhouse Virtualization Platform» не обязательно ставить, можно просто запустить под с виртуалкой и всё.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 1)
Ответ на: комментарий от egzakharovich

Если не полениться и сделать своё зеркало на NAS

Большинство софта сейчас интернето-зависимое. Такая модель. Что делать потом с этими пакетами на фактически изолированном локалхосте, в openttd играть?

настроить систему на использование mirror.yandex.ru в качестве зеркала (которое, не проверял, но в теории, может оказаться в этих самых списках. *.yandex.ru жи (habr.com))

А может не оказаться. При белых списках можно будет отказаться от услуг «интернета». Это всё равно, что у тебя по телевизору будет один канал работать.

На NixOS же произойдёт мгновенный затуп

Отключи бинарный кеш и скопируй дерево исходников nixpkgs из системы в любую другую директорию, дай всем файлам права на запись. Проставь переменную окружения NIX_PATH, чтобы указывала на эту директорию. Теперь можешь менять ссылки на исходники с гитхабных на отечественные и собирать/ставить любой софт.

anonymous
()
Ответ на: комментарий от anonymous

У тебя взаимоисключающие параграфы в ответе. С одной стороны, говоришь «отказаться от услуг интернета». С другой, что где-то там можно поменять ссылки с гитхабных на отечественные, и превратить NixOS в генту.

Так если, в этом телевизоре из одного канала, будут доступны какие-нибудь там зеркала с GitFlic, то что мешает, собирать софт с них в бинарных дистрибутивах? И вообще, слыхал про .src.rpm, например?

И так то речь идёт не про то, чтобы собирать новые пакеты, а чтобы пользоваться тем, что уже есть. Аналогично старым добрым временам, когда у тебя есть только дистрибутив Debian на 8 DVD дисках, или сколько там было, и нет инторнетов.

egzakharovich
()
Ответ на: комментарий от egzakharovich

Что лучше, чем вообще ничего.

Ну такое себе лучше чем ничего, по сути теперь ты софт будешь получать только через микроскопический фильтр местечкового репозитория. Т.е. старые пакеты и отсутствие 99.99% софта. Может быть мне для разработки нужен тот самый usbutils, а в текущей версии баг. Я не смогу ни оперативно об этом узнать, ни получить исправление.

Не один nix завязан на интернет, почти все современные языки сейчас имеют экосистему которая опирается на какой-то репозиторий, даже у плюсов теперь есть conan и vcpkg. Скачать плагины к какому-нибудь vscode или blender тоже будет невозможно.

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

Gary ★★★★★
()
Ответ на: комментарий от Gary

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

Айтишники прекрасно работали в до-интернетную эпоху. А сегодня возможностей куда больше. Ничего они не потеряют. Эффективность может и снизится, да и только.

Я могу буквально весь stackoverflow себе оффлайн скачать. Рядом википедию. И рядом какой-нибудь Qwen локальный. Это уже круче на порядок чем всё то, что было доступно раньше.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 1)
Ответ на: комментарий от vbr

Я могу буквально весь stackoverflow себе оффлайн скачать. Рядом википедию. И рядом какой-нибудь Qwen локальный. Это уже круче на порядок чем всё то, что было доступно раньше.

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

anonymous
()
Ответ на: комментарий от Gary

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

Как раз сегодня подумал, что четыре года назад нам уже обещали:

  1. Что у нас не будет компьютеров
  2. Что у нас не будет автомобилей
  3. Что у нас не будет самолётов, а все существующие попадают с небес на наши головы
  4. Что космоса тоже не будет, потому что стартовую площадку на Байконуре нельзя починить никогда (это не четыре года назад было, а в прошлом году, но площадка уже починена)
  5. Что у нас не будет даже базовых продуктов (в смысле, еды), ибо в отечестве нет своих семян

Так и хочется уже сказать: «горшочек, не вари»

Chiffchaff
()
Ответ на: комментарий от anonymous

Можешь, но не будешь же?

Если не рассматривать полностью апокалиптические сценарии, то связность внутри страны в любом случае не исчезнет. Будут люди, которые скачали и поделятся с тобой. Это в полу-апокалиптическом сценарии, когда внешний интернет отключат. А в более реалистичном китайском варианте доступ на внешку будет, через прокси, через обфусцированные туннели, замедленный, но будет и потихоньку обустроиться можно будет. Да в крайнем случае с флешками в Казахстан скатаешься и скачаешь.

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

Нельзя всем запастись впрок, никогда не знаешь, что может понадобиться в той или иной ситуации

Ну значит будешь без какой-то информации, какие-то задачи делать будешь долго, может и вовсе не получится. Это не значит, что вся отрасль сколлапсирует. Просто будет не так эффективна, как ранее.

В этом и был смысл интернета - получить в любой момент доступ к актуальной информации.

Я не говорю, что блокировки это хорошо или что с ними будет легко. Блокировки это плохо, с ними будет сложно. Но это не конец света.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 1)
Ответ на: комментарий от vbr

А в более реалистичном китайском варианте доступ на внешку будет, через прокси, через обфусцированные туннели, замедленный

Ты как будто под камнем живёшь, это уже текущие реалии, причем уже сейчас людям блекхолят трафик на некоторые зарубежные диапазоны. Мне например пришлось с vultr переехать из-за этого. А при белых списках с доступом во внешнюю сеть будут большие проблемы, в этом плане мы уже обходим китай.

Ну значит будешь без какой-то информации, какие-то задачи делать будешь долго, может и вовсе не получится. Это не значит, что вся отрасль сколлапсирует. Просто будет не так эффективна, как ранее.

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

Gary ★★★★★
()
Ответ на: комментарий от Gary

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

С этим я не спорю, но под лежачий камень вода не течёт.

Если не предусмотреть этот момент, то при невозможности свалить, останется только совершить [Роскомнадзор].

Главное, то что есть, продолжит работу. А там, что-нибудь придумаем.

egzakharovich
()
Ответ на: комментарий от vbr

Ничего не зная про «Deckhouse Virtualization Platform» предположу, что дело в масштабах и интеграциях. Так-то можно и без кубера контейнеры пускать. А можно даже и без контейнеров.

ugoday ★★★★★
()

или Guix вместо NixOS, там «ебилды» на схеме guile лисп а не на своём хаскелеподобном, что через lisp dsl может быть подекларативнее.

но там с доступностью репозиториев не очень, надо прокси настраивать. а так в целом норм.

лично у меня Debian 13 trixie + guix / (hermes, janet) и void+hermes/janet+xbps-src в другой виртуалке.

а так да, тоже хочется иногда контейнеры поковырять. но лисп декларативнее и выразительнее.

anonymous
()