шиной, — это может быть полезно для тестирования. В этом примере мы снова
будем использовать локальную машину:
$ fab -f fab3.py -H localhost iso
[localhost] Executing task 'iso'
[localhost] run: date -u
[localhost] Login password for 'yourname':
[localhost] out: Sun Feb 23 05:26:05 UTC 2014
[localhost] out:
Done.
Disconnecting from localhost... done.
Обратите внимание на то, что мне предложили ввести пароль. Для того чтобы
этого избежать, вы можете встроить пароль в файл fabric следующим образом:
from fabric.api import run
from fabric.context_managers import env
env.password = "your password goes here"
def iso():
run('date -u')
Теперь запустите файл:
$ fab -f fab4.py -H localhost iso
[localhost] Executing task 'iso'
[localhost] run: date -u
[localhost] out: Sun Feb 23 05:31:00 UTC 2014
[localhost] out:
Done.
Disconnecting from localhost... done.
Размещать свой пароль внутри кода ненадежно и небезопасно. Лучший способ указать не-
обходимый пароль — сконфигурировать SSH, задав открытый и закрытый ключи, с помощью
ssh-keygen (http://bit.ly/genkeys).
Salt
Salt создавался как способ реализовать удаленное выполнение программ, но позже он
вырос в полноценную платформу управления системами. Основанный на ZeroMQ
вместо SSH, он может работать с тысячами серверов.
Salt еще не был портирован на Python 3. В этом случае я не стану показывать
вам примеры, написанные на Python 2. Если вам интересна эта область, прочтите
документацию и ждите объявлений о том, когда закончится портирование.
340
Глава 11. Конкуренция и сети
Альтернативными продуктами являются puppet (http://puppetlabs.com/) и chef (http://
www.getchef.com/chef/), тесно связанные с Ruby. Пакет ansible (http://www.ansible.com/
home), который, как и salt, написан с помощью Python, также можно поставить с ними в один
ряд. Вы можете загрузить и использовать его бесплатно, но поддержка и некоторые па-
кеты с надстройками требуют коммерческой лицензии. По умолчанию он использует SSH
и не требует установки особого программного обеспечения на тех компьютерах, которыми
будет управлять.
Пакеты salt и ansible функционально являются супермножествами пакета fabric, поскольку
они обрабатывают исходную конфигурацию, развертывание и удаленное выполнение.
Большие данные и MapReduce
По мере роста Google и других интернет-компаний обнаружилось, что традицион-
ные вычислительные решения не масштабировались. Программное обеспечение,