Как стать автором
Обновить

Комментарии 19

Скажите, а почему Вы не использовали Fabric? Всё-таки более питоничное решение
Руки не дошли да и времени не хватало толком разобратся — хотелось закончить процесс с минимумом «левых» зависимостей. В будущем будем использовать Fabric/Puppet.
Ну это же странно: то ли пакеты платформозависимые собирать, то ли писать на хорошо известном питоне простые и понятные вещи.
(Тыкнул не туда, см. комментарий в основной ветке.)
Fabric не поможет мне, например, поставить MySQL-python без компилятора; так что собирать пакеты придется в любом случае.
Установкой MySQL-python не Fabric занимается, а pip:

run('pip install MySQL-python')


Если в системе будут найдены требуемые h-файлы, за милую душу соберёт. А ещё ведь и easy_install есть, он, кажется, умеет и из бинарных сборок ставить.
Да, но какой смысл ставить libmysql-devel, gcc, glibc-devel и т.д. на боевом сервере, когда можно собрать пакет и парой кликов отправить его на все контролируемые сервера?
Смысл есть, когда проекты живут в изолированных окружениях.
Я вас не совсем понял; можете описать ситуацию в которой центральный контроль над установленными RPM-ами противопоказан?
Самое простое — разные версии какого-либо пакета. К примеру, проекту нужен именно psycopg2==2.4.1 (после этой версии что-то поменяли в механизме транзакций), а в пакете будет самый свежий, 2.4.5.
Теперь ясно. В таком случае, можно настроить Spacewalk Channel, который будет раздавать эту версию и подписать сервер на него.

В любом случае, мы не собираем все пакеты в RPM, а только те которые почти универсальны (и требуют компиляции) PIL, MySQL. Пакеты которые pure Python ставятся через pip v в virtualenv.
Мне как-то спокойнее, когда проекты разрабатываются в девственно чистых окружениях, изолированных от системного. Это гарантирует, что слепок окружения (pip freeze) покажет те и только те пакеты версий, которые используются в проекте. Удобно :-)

Ради такой независимости пакетов можно и gcc потерпеть, и кучу dev-пакетов с заголовочниками. Лежат себе, каши не простят.
У нас любой проект, «доживший» до деплоймента ставится на абсолютно чистый сервер, на котором стоит «наш» Python. Да и вообще, infosec-отдел нам не даёт ставить GCC… Так и живём.

Долго думал — «Почему не использовать Fabric?», а потом дошло :)
Успешно пользуюсь makesite на работе.
Долго мучал автора вопросами: великолепно, быстро и развернуто получал ответы с примерами, описаниями.
В общем — спасибо =)
Я правильно понимаю, что Makesite сперва надо на целевом сервере установить?
Ага, makesite и fabric совсем разные вещи если честно. Может быть вам поможет вот эта статья с примером: klen.github.com/deploy-setup-ru.html
Да, я её уже нагуглил, спасибо :-)

Мне подход фабрика как-то больше нравится, если честно. Гораздо круче, когда одной командой со своей машины можно получить полностью рабочий проект на новеньком сервере.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории