········with prefix('../bin/activate'):
············run('git pull')
············run('touch app.wsgi')
Оператор with вкладывает команды друг в друга, поэтому в конечном счете метод deploy() для каждого хоста начинает выглядеть так:
$ ssh имя_хоста cd /var/ww/project-env/project &&../bin/activate && git pull
$ ssh имя_хоста cd /var/ww/project-env/project &&../bin/activate && \
> touch app.wsgi
Учитывая предыдущий код, сохраненный в файле fabfile.py (имя модуля по умолчанию, которое ищет fab), мы можем проверить использование памяти с помощью нашей новой задачи memory_usage:
$ fab memory_usage
[my_server1] Executing task 'memory'
[my_server1] run: free — m [my_server1] out:················ total···· used···· free·· shared· buffers·· cached
[my_server1] out: Mem:··········· 6964···· 1897···· 5067······· 0····· 166····· 222
[my_server1] out: — /+ buffers/cache:······ 1509···· 5455
[my_server1] out: Swap:············· 0······· 0······· 0
[my_server2] Executing task 'memory'
[my_server2] run: free — m [my_server2] out:················ total···· used···· free·· shared· buffers·· cached
[my_server2] out: Mem:··········· 1666····· 902····· 764······· 0····· 180····· 572
[my_server2] out: — /+ buffers/cache:······· 148···· 1517
[my_server2] out: Swap:··········· 895······· 1····· 894
И мы можем выполнить развертывание: