я использую reprepro
для поддержки частного архива внутренних пакетов. Нет простого способа сохранить доступными несколько версий пакета с помощью reprepro
(видеть Вот), но у него есть средство создания снимков, которое вроде бы работает.
Но только вроде. Я не вижу хорошего способа вернуться к версии моментального снимка. Есть команда restore
задокументировано, но похоже, что это не работает (версия reppro 4.8.2 на Ubuntu 12.4.1 LTS).
Я могу получить доступ к снимку через apt-get
как описано на странице руководства, отредактировав sources.list
включить что-то вроде
deb method://as/without/snapshot codename/snapshots/name main
но это означает, что мне нужно обновить все серверы новым sources.list, чтобы изменить их снимки.
Что я хотел бы сделать, так это поддерживать «безопасный» дистрибутив, который я могу настроить из любого моментального снимка в «стабильном» и всегда получать серверы из «безопасного». Затем, чтобы выполнить откат, я просто откатываюсь «безопасно» и прошу серверы удалить и переустановить пакеты. (Я говорю «удалите и переустановите», потому что слишком сложно заставить их понизить версию только частных пакетов, не затрагивая общедоступные.) Или что-то в этом роде.
Основная цель - получить автоматизированный способ заставить ферму серверов вернуться к более старой версии пакетов. Я открыт для предложений.
Как люди с этим справляются? Есть ли способ получить reprepro
снимки, чтобы работать так, как хотелось бы?
Я бы сделал это, используя логический том LVM, поддерживающий репозиторий. В любом случае, вероятно, лучше всего разместить это в отдельной файловой системе, а не в корневой. Для этого нужно сделать следующее:
На этом этапе вы можете легко сделать снимок всего репозитория, создав снимки логического тома. При желании вы можете просто настроить прокатку снимков каждую ночь.
Если вы чувствуете себя особенно смелым, вы можете использовать моментальные снимки на уровне файловой системы с BTRFS или ZFS, но на данный момент они оба менее зрелы в Linux.