Как управлять облачными ресурсами с помощью Python?

OSzone.net » Microsoft » Разработка приложений » Облако/Azure » Как управлять облачными ресурсами с помощью Python?
Автор: Владимир Юнев
Иcточник: msdn.microsoft.com
Опубликована: 01.12.2014

Библиотека Simple Azure позволяет управлять облачными ресурсами, в том числе созданием, управлением и удалением виртуальных машин в облачном окружении. Вы можете использовать данную библиотеку для любых целей: от развертывания песочницы для целей Dev&Test до размещения и управления решениями в промышленной эксплуатации.

С помощью Simple Azure вы можете легко поднять ipython notebook и кластеры ipython в облачном окружении, развернуть готовые виртуальные машины на выбор из сотен представленных в каталоге VMDepot.

Ниже представлено краткое введение и примеры использования Simple Azure для простых задач и задачи развертывания кластера IPython в облаке.

Установка

$ pip install simpleazure $ simpleazure-cluster start mycluster

Развертывание виртуальных машин

from simpleazure.simpleazure import SimpleAzure as saz azure = saz() azure.get_config() azure.create_vm()

Смена виртуальной машины на выбор:

azure.set_image(label="Ubuntu Server 12.04.2 LTS")

Размещение нескольких машин

azure = saz() azure.get_config() azure.create_cluster(num=5) my-cluster-vm-0-87412 {'request_id': '88c94c00288d42acaf877783f09c4558'} my-cluster-vm-1-61293 {'request_id': 'abfd563c2c4f4926872b6b1dba27a93b'} my-cluster-vm-2-96085 {'request_id': '29b55f6cb5e94cfdbf244a7c848c854d'} my-cluster-vm-3-46927 {'request_id': 'b1a3446ebafe47a295df4c9d1b7d743c'}

Размещение машин из каталога сообщества VMDepot


В этом примере кода из каталога сообщества VMDepot выбирается виртуальная машина Azure Data Science Core на базе OpenSUSE с настроенным окружением для работы с большими данными, HPC и следующими пакетами: cython, ipython, matplotlib, networkx, nltk, nodejs, numpy, pandas, pytables, redis, scikit-image, scikit-learn, scipy, statsmodels, sympy.

azure = saz() azure.get_config() q = azure.get_registered_image(name="Azure-Data-Science-Core") azure.set_image(image=q) azure.create_vm()

Поддержка командной строки


Simple Azure поддерживает команды в оболочке Linux. Например, вы можете создать кластеры виртуальных машин типа StarCluster следующей командой:

$ simpleazure-cluster start mycluster

Включение кластера IPython


В этом руководстве описывается как за несколько шагов развернуть в облаке кластер IPython.

Шаг первый:

from simpleazure.simpleazure import SimpleAzure as saz azure = saz() azure.get_config()


Шаг второй – создание трех узлов для кластера с ADSC:

adsc = azure.get_registered_image(name="Azure-Data-Science-Core") azure.set_image(image=adsc) azure.set_location("West Europe") azure.create_cluster(3)


Шаг третий – импорт плагина IPython:

from simpleazure.plugin import ipython ipy = ipython.IPython()


Настройка SSH:

ipy.set_username(azure.get_username()) ipy.set_private_key(azure.get_pkey())


Шаг четвертый – настройка узлов master и engine:

from simpleazure import config master = config.get_azure_domain(azure.results['master']) engines = [ config.get_azure_domain(x) for x in azure.results.keys()]


Привязка имен в плагине IPython:

ipy.set_master(master) ipy.set_engines(engines)


Установка SSH-подключения к узлам:

ipy.init_ssh()ipy.connect_nodes()


Создания профиля IPython:

ipy.create_profile()


Запуск IPController на master:

ipy.run_ipcontroller()


Натсройка узлов engine:

ipy.copy_pkey_to_nodes() # <- Temporary function to distribute id_rsa private key to node(s) ipy.copy_json2engines()


Последний шаг – исполнение ipengine на каждом узле engine, чтобы они начали взаимодействие с master:

ipy.run_ipengine()ipy.apply_ipcluster(azure)

Дополнительная информация

Еще больше руководств вы можете найти по следующей ссылке. Тонкости установки и настройки библиотеки описаны тут. Вы можете получить исходные коды библиотеки и присоединиться к разработке проекта на GitHub. Свежие новости и информацию о проекте вы всегда можете найти на официальном сайте Simple Azure.

Дополнительные ссылки


Ссылка: http://www.oszone.net/25775/Python