GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo crear una instancia en OpenStack a través de la línea de comandos

Como todos sabemos, Openstack se está volviendo popular día a día. La mayoría de las organizaciones están trasladando su infraestructura de TI de la virtualización tradicional a la nube privada como OpenStack. Openstack está disponible en dos versiones:

  • Comunidad OpenStack – Como sugiere el nombre, es una nube privada de código abierto y basada en la comunidad. La comunidad suele lanzar una nueva versión de openstack cada 6 meses
  • OpenStack empresarial – Como sugiere el nombre, es openstack comercial, diferentes proveedores crearon su propio openstack como Red Hat tiene su propio RHOSP (Red Hat Openstack Platform), Mirantis Openstack, Canonical OpenStack, SUSE OpenStack Cloud y VIO (VMware Integrated OpenStack).

Como administrador de la nube, generalmente creamos y eliminamos máquinas virtuales desde la GUI (panel de control de Horizon). Pero un geek de Linux siempre prefiere usar la línea de comandos para realizar todas las tareas diarias de operaciones openstack, por lo que en este artículo demostraré cómo crear y eliminar una máquina virtual desde la línea de comandos.

Creación de una máquina virtual desde la línea de comandos

Para crear una máquina virtual desde la línea de comandos, primero inicie sesión en el nodo del controlador. Cree un archivo de credenciales de proyecto. En este tutorial, utilizaré una credencial de proyecto que no sea de producción.

~]# source  keystone_linuxtechi_rc

Primero encuentre los siguientes detalles usando el comando openstack, requeriríamos estos detalles durante la creación de la máquina virtual.

  • Sabor
  • Imagen
  • Red
  • Grupo de seguridad
  • Nombre de clave

Obtenga la lista de sabores usando el siguiente comando openstack,

[[email protected] ~]# openstack flavor list
+--------------------------------------+-----------+-------+------+-----------+-------+-----------+
| ID                                   | Name      |   RAM | Disk | Ephemeral | VCPUs | Is Public |
+--------------------------------------+-----------+-------+------+-----------+-------+-----------+
| 1                                    | m1.tiny   |   512 |    1 |         0 |     1 | True      |
| 1093ac5d-9383-4ffb-96d8-4fbf9e28fdbf | Size15    | 10240 |  100 |         0 |     4 | True      |
| 1cf5a2ec-b111-403f-97dc-5670836a1d03 | Size3     |  2048 |   50 |         0 |     1 | True      |
| 3                                    | m1.medium |  4096 |   40 |         0 |     2 | True      |
| 4                                    | m1.large  |  8192 |   80 |         0 |     4 | True      |
| 5                                    | m1.xlarge | 16384 |  160 |         0 |     8 | True      |
| 5109b174-7348-4b21-9f6b-785adc842cf0 | Size7     |  4096 |  100 |         0 |     2 | True      |
| 711b0acc-5a1a-4514-93d1-c11b8862cea1 | Size8     |  2096 |  100 |         0 |     2 | True      |
| 71e8b1b8-43a6-4328-a749-f065da988e8f | Size12    |  4096 |   50 |         0 |     2 | True      |
| 73ac76f9-026e-4038-b34a-bac542141351 | Size6     |  4096 |  100 |         0 |     2 | True      |
| 79e6456e-6238-4502-b086-222e97e2989c | Size11    |  8192 |  100 |         0 |     2 | True      |
| 85c9f8ef-e89d-4422-a8fc-88c29d0b8f97 | size10    |  6144 |   50 |         0 |     2 | True      |
| a9912a54-e389-4da5-9be8-c22b033d59f3 | Size2     |  8192 |  150 |         0 |     2 | True      |
| ae23d0a5-777b-4520-b2e5-d5776cb88a55 | Size14    |  7168 |  100 |         0 |     7 | True      |
| ce236593-7324-4408-945b-863932e70df9 | m1.small  |  2048 |   25 |         0 |     1 | True      |
| d7c2ff23-8f3d-424b-a42d-c3027ccd05d3 | Size4     |  4096 |   30 |         0 |     2 | True      |
| e02efedd-f9d4-42df-9c89-096a8093291f | Size16    | 16384 |  200 |         0 |     4 | True      |
| e323b927-411a-40a3-8d02-0dac446f6464 | Size13    |  8192 |  110 |         0 |     3 | True      |
| f6125634-93e5-4531-b678-e91b4d75aed9 | Size5     |  4096 |  200 |         0 |     1 | True      |
+--------------------------------------+-----------+-------+------+-----------+-------+-----------+
[[email protected] ~]#

Obtener el nombre de la imagen y su id,

[[email protected] ~]# openstack image list  | grep cirros
| 02fc6c59-8dc2-4a88-90fa-b811077b6df9 | cirros   | active |
[[email protected] ~]#

Obtenga los detalles de la red virtual privada, que se adjuntarán a la VM

[[email protected] ~]# openstack network list | grep -i nonprod
| e0be93b8-728b-4d4d-a272-7d672b2560a6 | TnQ-NonProd-Internal | 02d5eec2-6ca1-4e73-b4a4-08a7a2d6a4e2 |
[[email protected] ~]#

Buscar el grupo de seguridad

[[email protected] ~]# openstack security group list | grep SG
| 2266f789-3c4d-4751-8609-041c09625860 | LinuxTechi_SG | LinuxTechi SG | 49853ccef4864d6dbc62c024c10ca543 |
[[email protected] ~]#

Encuentra el par de claves, en mi caso lo tengo debajo,

[[email protected] ~]# openstack keypair list | grep -i linuxtechi
| linuxtechi | e3:12:89:fd:97:75:75:be:8f:41:75:26:09:03:4d:9f |
[[email protected] ~]#

Nota: Los detalles anteriores serán diferentes para usted según su proyecto y entorno.

Ahora que tenemos todos los detalles, creemos una máquina virtual usando “openstack server create ” comando

Sintaxis :

# openstack server create --flavor {flavor-name} --image {Image-Name-Or-Image-ID}  --nic net-id={Network-ID} --security-group {Security_Group_ID} –key-name {Keypair-Name} <VM_Name>

Ejemplo:

[[email protected] ~]# openstack server create --flavor m1.tiny --image cirros --nic net-id=e0be93b8-728b-4d4d-a272-7d672b2560a6 --security-group LinuxTechi_SG  --key-name linuxtechi pkumar_test_vm
+--------------------------------------+-----------------------------------------------+
| Field                                | Value                                         |
+--------------------------------------+-----------------------------------------------+
| OS-DCF:diskConfig                    | MANUAL                                        |
| OS-EXT-AZ:availability_zone          |                                               |
| OS-EXT-SRV-ATTR:host                 | None                                          |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | None                                          |
| OS-EXT-SRV-ATTR:instance_name        | instance-000002b3                             |
| 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                            | uUf3Nrq5P5ei                                  |
| config_drive                         |                                               |
| created                              | 2018-07-07T07:56:15Z                          |
| flavor                               | m1.tiny (1)                                   |
| hostId                               |                                               |
| id                                   | 056c0937-6222-4f49-8405-235b20d173dd          |
| image                                | cirros (02fc6c59-8dc2-4a88-90fa-b811077b6df9) |
| key_name                             | linuxtechi                                    |
| name                                 | pkumar_test_vm                                |
| os-extended-volumes:volumes_attached | []                                            |
| progress                             | 0                                             |
| project_id                           | 49853ccef4864d6dbc62c024c10ca543              |
| properties                           |                                               |
| security_groups                      | [{u'name': u'LinuxTechi_SG'}]                 |
| status                               | BUILD                                         |
| updated                              | 2018-07-07T07:56:15Z                          |
| user_id                              | 322c33b03c424563b43642994cae0709              |
+--------------------------------------+-----------------------------------------------+
[[email protected] ~]#

Nota: Para obtener más ayuda sobre “creación de servidor openstack ” comando, usar

# openstack -h server create

Ahora verifique el estado de la máquina virtual de prueba usando los siguientes comandos,

[[email protected] ~]# openstack server list | grep pkumar
| 056c0937-6222-4f49-8405-235b20d173dd | pkumar_test_vm | ACTIVE | TnQ-NonProd-Internal=192.168.15.62               |
[[email protected] ~]#

o

[[email protected] ~]# openstack server show pkumar_test_vm

Asociación de una IP flotante a una VM

Para asociar una IP flotante a una VM, primero obtenga la IP flotante no utilizada usando el comando debajo,

[[email protected] ~]# openstack ip floating list | grep None | head -2
| 071f08ac-cd10-4b89-aee4-856ead8e3ead | 169.144.107.154 | None | None                                 |
| 1baf4232-9cb7-4a44-8684-c604fa50ff60 | 169.144.107.184 | None | None                                 |
[[email protected] ~]#

Ahora asocie la primera IP al servidor usando el siguiente comando,

[email protected] ~]# openstack ip floating add  169.144.107.154  pkumar_test_vm
[[email protected] ~]#

Use el siguiente comando para verificar si la IP flotante está asignada a la VM o no

[[email protected] ~]# openstack server list | grep pkumar_test_vm
| 056c0937-6222-4f49-8405-235b20d173dd | pkumar_test_vm | ACTIVE  | TnQ-NonProd-Internal=192.168.15.62, 169.144.107.154 |
[[email protected] ~]#

Ahora puede acceder a esta VM desde el exterior usando la IP flotante.

Cree una máquina virtual en una zona de disponibilidad específica y calcule el host

Supongamos que queremos crear una máquina virtual de prueba en la computadora-02 en la zona de disponibilidad de no producción. Para lograr este pase “–availability-zone” parámetro en el comando de creación del servidor openstack,

La sintaxis sería algo así como a continuación:

# openstack server create --flavor {flavor-name} --image {Image-Name-Or-Image-ID}  --nic net-id={Network-ID} --security-group {Security_Group_ID} --key-name {Keypair-Name} --availability-zone {Availbility-Zone-Name}:{Compute-Host}    <VM_Name>

Ejemplo:

[[email protected] ~]# openstack server create --flavor m1.tiny --image cirros --nic net-id=e0be93b8-728b-4d4d-a272-7d672b2560a6 --security-group LinuxTechi_SG  --key-name linuxtechi --availability-zone NonProduction:compute-02  nonprod_test_vm

Eliminación de una máquina virtual desde la línea de comandos

Use “eliminación del servidor openstack ” para eliminar las máquinas virtuales, supongamos que queremos eliminar la máquina virtual de prueba creada anteriormente.

[[email protected] ~]# openstack server delete  pkumar_test_vm
[[email protected] ~]#

Con esto concluye nuestro artículo, espero que tenga una idea básica sobre cómo crear y eliminar una máquina virtual desde la línea de comandos en openstack.


Linux
  1. Cómo cambiar permisos y propietarios a través de la línea de comandos

  2. Cómo crear una base de datos en MySQL usando la línea de comandos

  3. Cómo actualizar paquetes en Ubuntu a través de la línea de comandos

  4. ¿Cómo iniciar sesión en la instancia OpenStack o VM a través de PuTTY usando Key?

  5. ¿Cómo saber si httpd se está ejecutando o no a través de la línea de comandos?

Cómo lanzar una instancia de OpenStack mediante Horizon Dashboard

¿Cómo usar el proxy en la línea de comandos de Linux?

Cómo crear una máquina virtual en KVM en la línea de comandos

Cómo crear un alias en Linux

¿Cómo crear un cuadro de mensaje desde la línea de comandos?

Cómo:Linux General - IPTables básicos a través de la línea de comandos