Fabric - автоматизация административных задач на python

Fabric - это инструмент, позволяющий автоматизировать выполнение различных операций на удалённом сервере. Например, заливка и развёртывание проекта на удалённом сервере.

Fabric представляет собой обычное python-приложение. Для соединения с удалённым сервером применяется SSH (используется питоновский модуль Paramiko).
Для установки Fabric вам понадобится pip - средство для установки python-приложений. Так что необходимая последовательность команд (для Debian-based систем) будет примерно такой:

Код:
aptitude install pip
pip install fabric
Естественно, перед этим нужно скачать исходники Fabric с офсайта.Далее нужно составить список инструкций, который хранится в файле fabfile.py. Например, вот так:
Код: 
from fabric.api import *
env.hosts = ['usr1@host1:22', 'usr2@host2:22']
def backup():
    run("tar cfvz /tmp/backup.tar.gz /var/www/")
В env.hosts хранится список хостов, к которым приложение будет подключаться и выполнять необходимые действия. Каждый элемент словаря представляет собой строку подключения, которая обычно используется для SSH-соединений. Функция run выполняет команду на удалённом сервере (в данном случае мы делаем бэкап папки /var/www/ на каждом сервере).Чтобы выполнить нашу функцию backup, нужно выполнить команду
Код:
fab backup
В результате выполнения этой команды, если всё пройдёт нормально (т.е. не будет проблем с подключением), мы получим на каждом сервере архив со всеми файлами из каталога /var/www/.Словарь env содержит, помимо списка хостов, множество других параметров. Подробнее о них можно почитать в документации. А в командах, описанных в fabfile.py, можно использовать такие функции:sudo('ls /') - запустить команду (в даном случае ls) с привилегиями суперпользователя (по умолчанию root) на удаленном хосте
put('/local/path/file.tar.gz', '/remote/path/file.tar.gz')
- копирует локальный файл file.tar.gz на удаленном хостrun('ls /') - запускает команду (в даном случае ls) на удаленном хосте
get('/remote/path/file.tar.gz', '/local/path/file.tar.gz')
- копирует файл file.tar.gz на удаленном хосте на локальный хостlocal('ls /', capture=False) - запускает ls на локальном хосте, аргумент capture=False не подавляет вывод запускаемой команды Помимо всего вышеописанного, с помощью Fabric можно передавать параметры в пользовательские команды, вводить команды в интерактивном режиме и ещё много чего... подробнее можно по ссылкам в конце поста.

Источники:
http://www.proft.com.ua/2010/06/19/fabr ... dach-na-p/
http://www.lyabah.com/index.php/2010/06 ... on-deploy/
http://habrahabr.ru/blogs/django/76619/

Следующая запись

Предыдущая запись

Похожие записи

Комментарии

Еще нет комментариев.

Пингбэки

Оповещения открыты.

Трэкбэки

URL архива

Only authorized users can post comments