После того, как я пересоздал свой homelab-сервер с чистого листа, я решил попробовать не допускать тех ошибок, которые были допущены на прошлой версии (неожиданное решение, согласен).

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

Чтобы такого не допускать, достаточно просто куда-то сразу записывать все внесённые изменения, чтобы в будущем достаточно было перечитать краткую сводку вместо того, чтобы рыскать по всей файловой системе. На ум сразу приходит просто делать заметки по каждой части инфраструктуры (виртуальной машине / сервису и т.п.) в тот же Anytype.

Но пока для себя я нашёл другой способ — я в домашнюю директорию каждой VM на сервере, самого хоста сервера и роутера, а также в директории с конфигами отдельных сервисов просто кладу файл README.md, в котором кратко описываю по пунктам, что было настроено в этой части инфраструктуры (основные или специфичные моменты), где это всё располагается, возможно небольшие заметки, почему это сделано именно так, или какие-то возможные нюансы, иногда минимальная памятка, как производить какие-то неочевидные действия, и всё в таком духе. Какой-то единой структуры я пока не придумал, да и это не имеет особого смысла, когда делаешь это только для себя.

Так вот, есть ли у кого-то из вас свои подходы к решению такой проблемы?

  • vasthecatA
    link
    fedilink
    arrow-up
    1
    ·
    5 hours ago

    Я как-то думал похожим заниматься, но понял что это гиблое дело. В итоге пытаюсь как-то сохранить инфру в репозитории с конфигами для докера. То есть структура примерно такая:

    docker-compose.yml

    • service1/ – data/… – config
    • service2/ – data/… – config – Dockerfile (если нужно собрать контейнер самому, а не из реестра)

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

    При этом поднятие инфры заново времени не занимает вообще, главное указывать конкретные версии, а не просто latest. Хорошо бы иметь свой registry для контейнеров, которые не тегируют себя, либо для самосборных, тогда проблем с развёртыванием заново не будет примерно никогда. Но пока не занимался этим.

  • Ëжкин КотOPM
    link
    fedilink
    arrow-up
    1
    ·
    1 day ago

    UPD: Сейчас ещё решил сделать репозиторий на GitHub, в котором структурно воссоздана иерархия инфраструктуры в виде директорий, и сохранены все README.md файлы, чтобы также иметь возможность просматривать всё в одном месте, ну и так плюсом будет версионирование и сохранение на случай пересоздания какой-то части с нуля. Убеждаюсь, что Anytype в этом случае будет не особо удобен.