Назад | Перейти на главную страницу

Я хочу управлять версиями всего моего фрагмента

Я арендую часть (то есть VPS) у Slicehost. Я потратил день или два на заправку /usr с моими любимыми пакетами, /etc с конфигами и скриптами инициализации и так далее. Теперь я хочу:

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

Сохранение образа диска дает мне (1), но не (2) и (3).

Использование Subversion (svn import / svn://someotherhost) может дать мне все три, но я ожидаю проблем, если я действительно попытаюсь проверить проект в / и поддерживать каталоги .svn в корневых областях. И чтобы загрузить мою установку на новый фрагмент, мне нужно сначала установить на него клиент svn.

Есть ли хороший способ делать то, что я хочу делать?

Я предполагаю, что вы используете один из дистрибутивов мэра. Если бы мне нужно было сделать то же самое, что и вам, я бы использовал git для всего, что связано с файлами конфигурации (/ etc, / usr / local / etc и т.д.) Я бы избегал версии bin-файлов если вы не компилируете свои собственные пакеты.

И я бы использовал собственный менеджер пакетов каждого дистрибутива для репликации установки того же профиля пакета.

В случае с дистрибутивами на основе Debian это действительно просто:

dpkg --get-selections | grep '[[:space:]]install$'| awk '{print $1}' > packages-installed

а затем в новой системе:

cat packages-installed | xargs sudo apt-get install

С уважением

Я ожидаю, что git или другие распределенные виртуальные машины справятся с этим лучше, чем svn. Возможно, вы захотите посмотреть исходный код etckeeper, который в основном отслеживает / etc с помощью git, а также пару других dvc. Etckeeper, вероятно, можно было бы расширить или изменить для отслеживания всей файловой системы.

Я вижу два неочевидных решения.

Резервное копирование с использованием BackupPC, что позволяет легко проверять предыдущие версии и восстанавливать их. Можно сделать удаленно или локально.

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

Я использую оба. Конфигурация исходит из марионетки, версией которой является git, а управление версиями «пользовательских данных» (обслуживаемые веб-страницы, домашние каталоги и т. Д.) Обрабатывается backuppc.

Вы можете поставить / etc в SVN. Однако я бы использовал другой метод резервного копирования для / usr.