Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 264

локальный компьютер, который поведет себя так, будто является удаленной ма-

шиной, — это может быть полезно для тестирования. В этом примере мы снова

будем использовать локальную машину:

$ 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 и других интернет-компаний обнаружилось, что традицион-

ные вычислительные решения не масштабировались. Программное обеспечение,