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 --status active +--------------------------------------+--------------+--------+
| ID | Name | Status |
+--------------------------------------+--------------+--------+
| e87001f8-475e-403e-830d-24484187da08 | Debian-10 | active |
| 3272eb6f-b9cc-472e-ab0f-972670fc56a4 | Debian-11 | active |
| 40d4bb2e-bf2e-4af7-8b09-3bc6bd83fd65 | Debian-9 | active |
| b20aa3ec-2fd9-4350-80b3-0d590bd5998f | Fedora-33 | active |
| f9ef2681-3083-43ae-83b6-7c3e3be08ee3 | Fedora-34 | active |
| d920b7b4-36a4-4d46-b1f0-70c1bc9c9530 | Fedora-35 | active |
| 03a87e23-77e5-403b-a437-10e0b28b2583 | Ubuntu-14.04 | active |
| 6d73bd0e-1db4-452a-84c6-adaad0bae72a | Ubuntu-18.04 | active |
| 6da7de0c-fb47-4ffc-9f72-58323efcc842 | Ubuntu-20.04 | active |
| 2b2c61c6-324c-47f4-88c1-9ae8a978ddfd | Ubuntu-22.04 | active |
+--------------------------------------+--------------+--------+
Aquí se enumeran las imágenes disponibles para tu inquilino.
[user@localhost]$ openstack volume list +--------------------------------------+------+--------+------+-----------------------------------+
| ID | Name | Status | Size | Attached to |
+--------------------------------------+------+--------+------+-----------------------------------+
| 539dcff1-117b-472a-8cf6-f7069d8a545f | | in-use | 3 | Attached to Ubuntu22 on /dev/vda |
+--------------------------------------+------+--------+------+-----------------------------------+
Esto enumera los volúmenes que has creado.
[user@localhost]$ openstack server create --key-name my_key --image Ubuntu-22.04 --flavor 100 awesome_server
Esto crea una instancia de Ubuntu 22.04 con el flavor gp1.subsonic (ID 100), y usa la clave llamada my_key
.