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] ~]#
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.