Недавно список официальных проектов OpenStack пополнился еще одним проектом — OpenStackClient
Утилита командной строки openstack представляет собой единый унифицированный клиент для доступа к OpenStack API. В целом, OpenStackClient позволяет делать тоже самое, что и утилиты каждого сервиса (nova, neutron, keystone-manage и др.), но при помощи единой команды и унифицированного формата.
Добавление утилиты в RDO сводится к установке пакета:
[root@os1 ~]# yum -y install python-openstackclient
Для аутентификации клиент использует ту же схему, что и другие утилиты, за исключением замены устаревших «тенантов» (OS_TENANT_NAME) на «проекты». Пример моего keystonerc тестовой среды:
unset OS_USERNAME OS_TENANT_NAME OS_PASSWORD OS_AUTH_URL SERVICE_TOKEN SERVICE_ENDPOINT
export OS_AUTH_URL=http://os1.test.local:35357/v2.0/
export OS_USERNAME=admin
export OS_PROJECT_NAME=admin
export OS_PASSWORD=openstack
И можно пользоваться:
[root@os1 ~]# openstack project create demo2
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | None |
| enabled | True |
| id | 4f33784c2a7a487fa8e7b5b8a2c0af87 |
| name | demo2 |
+-------------+----------------------------------+
[root@os1 ~]# openstack project list
+----------------------------------+---------+
| ID | Name |
+----------------------------------+---------+
| 4b0971bf0f5e4835a87af1d21121def5 | service |
| 4f33784c2a7a487fa8e7b5b8a2c0af87 | demo2 |
| 9c1c71f2c0f243b7a3b1d0d1880820e9 | demo |
| a5c42139ce154b4d945b4ed806cbee81 | admin |
+----------------------------------+---------+
Команда openstack help -h выведет подсказку по командам или можно ввести help в интерактивном режиме. Команды строятся по принципу: взять объект1 и произвести над ним действие при помощи объекта2
Ну и наглядный пример, который приводит один из разработчиков:
Замена
Утилита командной строки openstack представляет собой единый унифицированный клиент для доступа к OpenStack API. В целом, OpenStackClient позволяет делать тоже самое, что и утилиты каждого сервиса (nova, neutron, keystone-manage и др.), но при помощи единой команды и унифицированного формата.
Добавление утилиты в RDO сводится к установке пакета:
[root@os1 ~]# yum -y install python-openstackclient
Для аутентификации клиент использует ту же схему, что и другие утилиты, за исключением замены устаревших «тенантов» (OS_TENANT_NAME) на «проекты». Пример моего keystonerc тестовой среды:
unset OS_USERNAME OS_TENANT_NAME OS_PASSWORD OS_AUTH_URL SERVICE_TOKEN SERVICE_ENDPOINT
export OS_AUTH_URL=http://os1.test.local:35357/v2.0/
export OS_USERNAME=admin
export OS_PROJECT_NAME=admin
export OS_PASSWORD=openstack
И можно пользоваться:
[root@os1 ~]# openstack project create demo2
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | None |
| enabled | True |
| id | 4f33784c2a7a487fa8e7b5b8a2c0af87 |
| name | demo2 |
+-------------+----------------------------------+
[root@os1 ~]# openstack project list
+----------------------------------+---------+
| ID | Name |
+----------------------------------+---------+
| 4b0971bf0f5e4835a87af1d21121def5 | service |
| 4f33784c2a7a487fa8e7b5b8a2c0af87 | demo2 |
| 9c1c71f2c0f243b7a3b1d0d1880820e9 | demo |
| a5c42139ce154b4d945b4ed806cbee81 | admin |
+----------------------------------+---------+
Команда openstack help -h выведет подсказку по командам или можно ввести help в интерактивном режиме. Команды строятся по принципу: взять объект1 и произвести над ним действие при помощи объекта2
Ну и наглядный пример, который приводит один из разработчиков:
Замена
$ nova boot --flavor='2G' -- image='Gentoo' # Nova talks to Glance
$ cinder give-me-a-10G-volume
$ nova attach-that-volume-to-my-computer # nova talks to cinder
$ neutron give-me-an-ip
$ nova attach-that-floating-ip-to-my-computer # nova talks to neutron
$ designate call-that-ip 'example.com' --reverse-dns # designate to neutron
всего на одну строку
$ openstack boot gentoo on-a 2G-VM with-a publicIP with-a 10G-volume call-it example.com
Пакет python-openstackclient-doc устанавливает в /usr/share/doc/ документацию на клиент с сайта: