Ситуация: написали web-проект, свой, домашний, а может и на работе. Надо его опубликовать в Интернет - задеплоить. Зашли на сервер, активировали venv, скачали новые исходники из репозитория, накатили миграции, обновили static-файлы, перезапустили, предположим, celery, перезапустили uwsgi.

И тут, поняли что забыли раскоментировать строчку в коде. Делаем коммит, снова заходим на сервер, активировали venv.... Зачем вся эта рутина с деплоем? Может есть способ проще? Мы же IT-шники, давайте напишем скрипт.

Здесь то на помощь и приходит fabric - инструмент командной строки. fabric предоставляет обертку над командной строкой. Вы пишите fab файл с вашим сценарием деплоя. Например.

from fabric.api import run

def host_type():
    run('uname -s')

А затем запускаете на нескольких (или одной) удаленной машине

$ fab -H localhost,linuxbox host_type
[localhost] run: uname -s
[localhost] out: Darwin
[linuxbox] run: uname -s
[linuxbox] out: Linux

Done.
Disconnecting from localhost... done.
Disconnecting from linuxbox... done.

Все очень просто

http://www.fabfile.org/



Комментарии