Локальные клиенты для управления виртуальными машинами

Terraform

Что такое Terraform?

Terraform - это инструмент для безопасного и эффективного построения, изменения и создания версий инфраструктуры. Terraform может управлять многими популярными платформами (OpenStack в том числе), а также собственными решениями.

Проще говоря, это локальная утилита, в конфигах которой можно прописать параметры вашей инфраструктуры, параметры виртуальных машин и параметры взаимодействия между ними. Также можно прописать план действий - что и в каком порядке должно выполняться и по какому условию.

Инфраструктура, которой может управлять Terraform, включает в себя компоненты низкого уровня, такие как виртуальные машины, хранилище и сеть, а также компоненты высокого уровня, такие как записи DNS, функции SaaS и т.д.

OpenStack

Для работы со сценариями и простых запросов вы можете использовать клиент командной строки, такой как openstack-client . Этот клиент позволяет использовать API Identity, Compute, Block Storage и Object Storage через интерфейс командной строки. Кроме того, каждый проект OpenStack имеет связанный клиентский проект, который включает привязки Python API и интерфейс командной строки (CLI).

Для получения информации о клиентах командной строки см. Ссылку интерфейса командной строки OpenStack .

Установка клиента под Linux

Используйте pip для установки клиентов OpenStack в системе Mac OS X или Linux. Это просто и гарантирует, что вы получите последнюю версию клиента из индекса пакетов Python . Кроме того, pip позволяет обновить или удалить пакет.

Вы должны установить клиент для каждого проекта отдельно, но python-openstackclient охватывает несколько проектов.

Установите или обновите клиентский пакет:

 $ sudo pip install [ --upgrade ] python-PROJECTclient

Где PROJECT - название проекта.

Например, установите клиент openstack :

 $ sudo pip install python-openstackclient

Чтобы обновить клиент openstack , выполните эту команду:

 $ sudo pip install --upgrade python-openstackclient

Чтобы удалить клиент openstack , выполните эту команду:

 $ sudo pip uninstall python-openstackclient

Прежде, чем вы сможете выполнять команды над экземлярами инстансов, вы должны загрузить и получить исходный файл openrc для установки переменных среды.

Для получения полной информации о клиентах OpenStack, см. Руководство пользователя OpenStack, Руководство администратора OpenStack и Справочник по интерфейсу командной строки OpenStack .

Установка клиента под Windows

Требования

  • Установка должна выполняться под учётной записью администратора.
  • До запуска OpenStack CLI вам нужно установить Python 2.7. Загрузите и установите последнюю версию с официального сайта.
  • Также вам надо установить Git Bash - загрузите и установите его с официального сайта.
  • Также вам надо установить Python-систему управления пакетами , pip. Чтобы его установить, запустите Git Bash. Введите команду easy_install (из пакета setuptools):
    C:\>easy_install pip
  • (в качестве альтернативы можно установить вот этот бинарник).
  • Кроме того, лучше устанавливать CLI в виртуальной среде, поэтому установите virtualenv с помощью pip install virtualenv в Git Bash.

Данная инструкция протестирована на Windows 10 под учётной записью администратора.

Использование виртуальной среды для установки

  1. Запустите Git Bash.
  2. После установки virtualenv с использованием команды pip install virtualenv, создайте виртуальную среду. Используйте переменную {name} чтобы дать название вашей виртуальной среде:

     PS C:\Python27> virtualenv {name}
    

    Например:

     PS C:\Python27> virtualenv openstack-cli
    
  3. Для активации виртуальной среды введите команду:

    PS C:\Python27> .\openstack-cli\Scripts\activate
    

Теперь, когда виртуальная среда активна, префикс изменится (он будет указывать на среду, которую вы сейчас используете:

    (openstack-cli) PS C:\Python27>

Установка клиента

Установите клиент OpenStack, который в свою очередь установит python-novaclient:

   (openstack-cli) PS C:\> pip install python-openstackclient

Openstack CLI успешно установлен.

Запустить экземпляр инстанса (инстанс)

Для запуска экземпляров вы должны выбрать имя, образ и флейвор для вашего экземпляра.

Чтобы openstack вернул список доступных образов, вызовите Compute API через клиент openstack :

 $ openstack image list
 
+--------------------------------------+------------------+
| ID                                   | Name             |
+--------------------------------------+------------------+
| a5604931-af06-4512-8046-d43aabf272d3 | fedora-20.x86_64 |
+--------------------------------------+------------------+

Чтобы получить список флейворов, запустите эту команду:

 $ openstack flavor list
 
+----+-----------+-----------+------+-----------+------+-------+-----------+
| ID | Name      | Memory_MB | Disk | Ephemeral | Swap | VCPUs | Is_Public |
+----+-----------+-----------+------+-----------+------+-------+-----------+
| 1  | m1.tiny   | 512       | 0    | 0         |      | 1     | True      |
| 2  | m1.small  | 2048      | 20   | 0         |      | 1     | True      |
| 3  | m1.medium | 4096      | 40   | 0         |      | 2     | True      |
| 4  | m1.large  | 8192      | 80   | 0         |      | 4     | True      |
| 42 | m1.nano   | 64        | 0    | 0         |      | 1     | True      |
| 5  | m1.xlarge | 16384     | 160  | 0         |      | 8     | True      |
| 84 | m1.micro  | 128       | 0    | 0         |      | 1     | True      |
+----+-----------+-----------+------+-----------+------+-------+-----------+

Чтобы запустить экземпляр, впишите в команду идентификаторы нужного вам образа и флейвора.

Чтобы запустить экземпляр my_instance , выполните команду openstack server create с идентификаторами образов и openstack server create с именем сервера:

 $ openstack server create --image a5604931-af06-4512-8046-d43aabf272d3 --flavor 1 my_instance
 
+--------------------------------------+---------------------------------------------------------+
| Field                                | Value                                                   |
+--------------------------------------+---------------------------------------------------------+
| OS-DCF:diskConfig                    | MANUAL                                                  |
| OS-EXT-AZ:availability_zone          | nova                                                    |
| OS-EXT-STS:power_state               | 0                                                       |
| OS-EXT-STS:task_state                | scheduling                                              |
| OS-EXT-STS:vm_state                  | building                                                |
| OS-SRV-USG:launched_at               | None                                                    |
| OS-SRV-USG:terminated_at             | None                                                    |
| accessIPv4                           |                                                         |
| accessIPv6                           |                                                         |
| addresses                            |                                                         |
| adminPass                            | 3vgzpLzChoac                                            |
| config_drive                         |                                                         |
| created                              | 2015-08-27T03:02:27Z                                    |
| flavor                               | m1.tiny (1)                                             |
| hostId                               |                                                         |
| id                                   | 1553694c-d711-4954-9b20-84b8cb4598c6                    |
| image                                | fedora-20.x86_64 (a5604931-af06-4512-8046-d43aabf272d3) |
| key_name                             | None                                                    |
| name                                 | my_instance                                             |
| os-extended-volumes:volumes_attached | []                                                      |
| progress                             | 0                                                       |
| project_id                           | 9f0e4aa4fd3d4b0ea3184c0fe7a32210                        |
| properties                           |                                                         |
| security_groups                      | [{u'name': u'default'}]                 |
| status                               | BUILD                                                   |
| updated                              | 2015-08-27T03:02:28Z                                    |
| user_id                              | b3ce0cfc170641e98ff5e42b1be9c85a                        |
+--------------------------------------+---------------------------------------------------------+

Важно

Для получения информации о портах по умолчанию, которые используют компоненты OpenStack, см. Брандмауэры и порты по умолчанию в Руководстве по установке OpenStack .

Оригинал статьи находится тут https://developer.openstack.org/api-guide/quick-start/ .

Также смотрите статью https://developer.openstack.org/api-guide/quick-start/api-quick-start.html .