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
- Empresa OpenStack – 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 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 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] ~]#
Encuentre el grupo de seguridad
[[email protected] ~]# openstack security group list | grep SG | 2266f789-3c4d-4751-8609-041c09625860 | LinuxTechi_SG | LinuxTechi SG | 49853ccef4864d6dbc62c024c10ca543 | [[email protected] ~]#
Encuentre el par de claves, en mi caso lo tengo a continuación,
[[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 “servidor openstack crearcomando
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 en “servidor openstack crear” comando , uso
# openstack -h server create
Ahora verifique el estado de prueba vm 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
Asociar 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 comando debajo 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 utilizando 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 el proceso 02 en la zona de disponibilidad de no producción. Para lograr este pase”–zona-de-disponibilidad” 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
Usar «eliminación del servidor openstack” para eliminar las máquinas virtuales, supongamos que queremos eliminar la vm 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.
Lea también: Cómo crear zonas de disponibilidad en OpenStack desde la línea de comandos