Python: инструмент для отслеживания развертываний - PullRequest
5 голосов
/ 13 мая 2011

Я ищу инструмент для отслеживания "что работает где".У нас есть куча серверов, и на каждом из них куча проектов.Эти проекты могут быть запущены в определенной версии (hg tag / commit nr) и имеют свои требования и в определенных версиях.

Fabric выглядит как отличное начало для фактического развертывания путем автоматизации части ssh.Однако, как только развертывание завершено, нет обзора того, что было сделано.

Перед тем, как заново изобретать колесо, я хотел бы также проверить это на SO (я приложил все усилия с Google, но мог бы искатьнеправильные ключевые слова).Уже есть такой инструмент?

(На практике я развертываю проекты Django, но я не уверен, что это актуально для вопроса; все, что отслеживает установки pip / virtualenv или состояние сервера в целом, должновсе будет в порядке)

большое спасибо,

Клаас

==========

РЕДАКТИРОВАТЬ ДЛЯ ТЕМП.РЕШЕНИЕ

==========

На данный момент мы решили просто сохранить эту информацию в простом хранилище значений ключей (в нашем случае: файловая система)что мы делаем все возможное для резервного копирования (в нашем случае: использование DCVS).Мы отслеживаем это хранилище с помощью того же инструмента развертывания, который мы используем для фактического развертывания (в нашем случае: fabric)

Пароли хранятся в томе TrueCrypt, который хранится в нашем хранилище значений ключей.

==========

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

Ответы [ 2 ]

1 голос
/ 13 мая 2011

pip freeze дает вам список всех установленных пакетов. Бонус: если вы перенаправите вывод в файл, вы можете использовать его как часть процесса развертывания для установки всех этих пакетов (pip может программно установить все пакеты из файла).

Я вижу, вы уже используете virtualenv. Хорошо. Вы можете запустить pip freeze -E myvirtualenv > myproject.reqs, чтобы сгенерировать файл зависимостей, который дублируется как отчет о состоянии среды Python.

0 голосов
/ 13 мая 2011

Возможно, вы хотите что-то вроде Opscode Шеф-повар.

своими словами:

Шеф-повар работает, позволяя вам писать рецепты, которые описывают, как вы хотите часть вашего сервера (например, Apache, MySQL или Hadoop) для настройки. Эти рецепты описывают серию ресурсы, которые должны быть в конкретное состояние - например, пакеты, которые должны быть установлены, службы, которые должны быть запущены, или файлы, которые должны быть записаны. Мы тогда убедитесь, что каждый ресурс правильно настроен, только принимая корректирующие действия, когда это необходимый. Результат безопасен, гибкий механизм для уверенности ваши серверы всегда работают именно так, как вы хотите, чтобы они были.

РЕДАКТИРОВАТЬ: Примечание Chef не инструмент Python, это инструмент общего назначения, написанный на Ruby (кажется). Но он способен поддерживать различные «кулинарные книги», в том числе одну для установки / обслуживания приложений Python.

...