Introducción al cliente de línea de comandos de OpenStack

Generalidades

OpenStack es un software de código abierto que te permite crear nubes públicas y privadas. Una herramienta de línea de comandos disponible, lo que facilita el trabajo. Este artículo explica cómo instalar este cliente en tu instancia de nube.

https://docs.openstack.org/python-ironicclient/pike/cli/osc_plugin_cli.html

Instalación

El cliente de línea de comandos de OpenStack se puede instalar de varias formas. Este artículo muestra cómo instalarlo ejecutando pip en un virtualenv y cómo instalarlo globalmente.

Instalar python-dev

Instala python-dev para poder crear extensiones de Python. Esto es necesario para instalar el openstackclient usando pip.

Si estás usando Python 2:

[user@localhost]$ sudo apt-get install python2.7-dev

Si estás usando Python 3:

[user@localhost]$ sudo apt-get install python3-dev

Instalar pip

Primero, ejecuta lo siguiente para ver si pip está instalado:

Si estás ejecutando Python 2

[user@localhost]$ pip -V

Si estás ejecutando Python 3

[user@localhost]$ pip3 -V

Si no, instala con lo siguiente:

Si estás ejecutando Python 2

[user@localhost]$ sudo apt-get install python-pip

Si estás ejecutando Python 3

[user@localhost]$ sudo apt-get install python3-pip

Instalar virtualenv

Una forma de instalar OpenStack CLI es en un entorno virtual. Ahora que pip está instalado, ejecuta lo siguiente para instalar virtualenv:

[user@localhost]$ sudo apt-get install python-virtualenv

Instalar OpenStack CLI

Instalación dentro de un virtualenv

Este es un método seguro ya que su instalación se encuentra dentro de un entorno virtual y no toca nada más en tu sistema. Para hacer esto, crea un entorno virtual, actívalo e instala el CLI de OpenStack dentro de él.

Si estás usando Python 2, ejecuta el comando pip. Si estás corriendo Python 3, corre el comando pip3.

Ésto instala un nuevo directorio virtualenv llamado venv en el directorio home de tu usuario.

[user@localhost]$ virtualenv ~/venv
[user@localhost]$ source ~/venv/bin/activate
(venv)user@localhost$ pip install python-openstackclient

Esto instala el cliente en un entorno virtual separado del resto de tu sistema. Para poder utilizar el cliente, tendrás que activar el entorno virtual utilizando el comando source de arriba.

Instalar globalmente

También lo puedes instalar en tu sistema globalmente usando pip para Python 2.

[user@localhost]$ sudo pip install python-openstackclient

O pip3 para Python3.

[user@localhost]$ sudo pip3 install python-openstackclient

Es posible que veas el siguiente error al instalar.

Command python setup.py egg_info failed with error code 1

Si es así, corre lo siguiente:

[user@localhost]$ pip install --upgrade setuptools

O si estás usando Python 3:

[user@localhost]$ pip3 install --upgrade setuptools

Inténtalo de nuevo y podrás instalar sin errores.

Configuración

La forma más sencilla de configurar el cliente es utilizar el archivo OpenRC. Consulta el siguiente artículo para obtener instrucciones sobre cómo descargar este archivo:

Para utilizar el archivo OpenRC, corre:

[user@localhost]$ source openrc.sh

Comandos básicos

El cliente de línea de comando de OpenStack combina la funcionalidad de todos los demás clientes de línea de comando específicos del servicio de OpenStack, como el cliente nova y el cliente cinder. A continuación, se muestran algunos comandos básicos que son útiles:

[user@localhost]$ openstack server list
+--------------------------------------+-------------+--------+--------------------------------------------------------------+--------------+
| ID                                   | Name        | Status | Networks                                                     | Image Name   |
+--------------------------------------+-------------+--------+--------------------------------------------------------------+--------------+
| 4c40d015-33b3-4bc3-ba50-d794356eef4f | mariadb     | ACTIVE | public=2607:f298:5:101d:f816:3eff:feeb:ca8c, 208.113.133.156 | Ubuntu-16.04 |
| bf500ff3-7b37-4d01-a77e-5efc086de5f0 | nextcloud-1 | ACTIVE | public=2607:f298:5:101d:f816:3eff:fef1:9c6a, 208.113.131.81  | Ubuntu-16.04 |
| af01d391-7604-482e-84b9-3ccee872d69f | nextcloud   | ACTIVE | public=2607:f298:5:101d:f816:3eff:fea9:a69f, 208.113.129.184 | Ubuntu-16.04 |
| 72c4271b-d447-444c-b5f6-0af401ca14d2 | wordpress   | ACTIVE | public=2607:f298:5:101d:f816:3eff:fe08:54c5, 208.113.133.184 | Ubuntu-16.04 |
+--------------------------------------+-------------+--------+--------------------------------------------------------------+--------------+

Esto enumera las instancias que tiene en tu inquilino con información básica sobre ellas.

[user@localhost]$ openstack image list
+--------------------------------------+---------------+-------------+
| ID                                   | Name          | Status      |
+--------------------------------------+---------------+-------------+
| 76a93b4b-566c-41eb-ab9d-26ce5be04010 | CentOS-7      | active      |
| 0c35ed32-a053-4481-8bac-efd3a5f9513e | CoreOS-Stable | active      |
| 0415d69c-28b3-4bfd-ab64-711c699c60b9 | Debian-8      | active      |
| cbd81524-f477-4d7c-963c-84699acf711b | Debian-9      | active      |
| b0a29bbc-dd13-4305-8380-043b86356edf | Fedora-25     | active      |
| 03b1467b-4c5d-4f85-aa62-035841a88aca | Fedora-29     | active      |
| 03a87e23-77e5-403b-a437-10e0b28b2583 | Ubuntu-14.04  | active      |
| 04f22a69-bdfe-4c2d-b996-aab8d69e4a0e | Ubuntu-16.04  | active      |
| fc6510a1-c057-4a74-bac9-3d8b74270038 | Ubuntu-17.10  | active      |
| b86ca11c-e7c1-4ae1-8580-62c464b19dfd | Ubuntu-18.04  | active      |
+--------------------------------------+---------------+-------------+

Aquí se enumeran las imágenes disponibles para tu inquilino.

[user@localhost]$ openstack volume list
+--------------------------------------+-----------------------------+-----------+------+---------------------------------+
| ID                                   | Display Name                | Status    | Size | Attached to                     |
+--------------------------------------+-----------------------------+-----------+------+---------------------------------+
| 21cb1ef8-8541-4919-a8e0-2af66e547b03 | db_volume                   | available |   10 |                                 |
| 2b3ce54e-7445-4d9e-a153-d03b120f1d1a | Meretricious Nibblet Volume | available |   10 |                                 |
+--------------------------------------+-----------------------------+-----------+------+---------------------------------+

Esto enumera los volúmenes que has creado.

[user@localhost]$ openstack server create --key-name my_key --image Ubuntu-16.04 --flavor 100 awesome_server
+--------------------------------------+-----------------------------------------------------+
| Field                                | Value                                               |
+--------------------------------------+-----------------------------------------------------+
| OS-DCF:diskConfig                    | MANUAL                                              |
| OS-EXT-AZ:availability_zone          | iad-2                                               |
| OS-EXT-STS:power_state               | NOSTATE                                             |
| 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                            | DCa8su7uHQUR                                        |
| config_drive                         |                                                     |
| created                              | 2016-12-02T19:46:41Z                                |
| flavor                               | gp1.subsonic (100)                                  |
| hostId                               |                                                     |
| id                                   | 24c4538d-6607-4546-95b4-49ee9aa4a26a                |
| image                                | Ubuntu-16.04 (30a2a55a-2045-4ed8-a605-2d1c1143edd3) |
| key_name                             | my_key                                              |
| name                                 | awesome_server                                      |
| os-extended-volumes:volumes_attached | []                                                  |
| progress                             | 0                                                   |
| project_id                           |                                                     |
| properties                           |                                                     |
| security_groups                      | [{u'name': u'default'}]                             |
| status                               | BUILD                                               |
| updated                              | 2016-12-02T19:46:42Z                                |
| user_id                              |                                                     |
+--------------------------------------+-----------------------------------------------------+

Esto crea una instancia de Ubuntu 16.04 con el flavor gp1.subsonic (ID 100), y usa la clave llamada my_key.

 

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?