pila abierta es un software de nube privada gratuito y de código abierto a través del cual podemos administrar los recursos informáticos, de red y de almacenamiento de nuestro centro de datos con facilidad utilizando un solo tablero y mediante comandos openstack cli. En este artículo, demostraremos cómo instalar Openstack en un sistema CentOS 8 con paquete. Packstack es una utilidad de línea de comandos que implementa diferentes componentes de openstack utilizando módulos de marionetas.
La implementación de Openstack con packstack generalmente se usa con fines POC (prueba de concepto), por lo que no se recomienda usar packstack para la implementación de producción. Use el método TripleO para implementar openstack en un entorno de producción.
Requisitos mínimos del sistema para OpenStack
- CentOS 8 mínimo
- Procesador de doble núcleo
- 8GB RAM
- 40 GB de espacio libre en disco
- Conexión estable a Internet
- Al menos una tarjeta nic
Detalles de configuración de mi laboratorio:
- Nombre de host: openstack.example.com
- IP – 192.168.1.8
- Red Plana – 192.168.1.0/24
Profundicemos en los pasos de instalación de openstack,
Paso 1) Configure el nombre de host y actualice el archivo /etc/hosts
Abra la terminal y configure el nombre de host usando el siguiente comando hostnamectl,
[[email protected] ~]# hostnamectl set-hostname "openstack.example.com" [[email protected] ~]# exec bash
Ejecute debajo del comando echo para agregar la entrada del nombre de host en el archivo /etc/hosts.
[[email protected] ~]# echo -e "192.168.1.8topenstack.example.com" >> /etc/hosts
Paso 2) Deshabilite el administrador de red y configure la red usando scripts de red
Gerente de Redes es la herramienta predeterminada en CentOS 8 para administrar redes, pero para Openstack debemos deshabilitarla porque las redes openstack no funcionarán correctamente con el administrador de red. En lugar del administrador de red, debemos instalar scripts de red nativos.
Para deshabilitar el administrador de red, ejecute los siguientes comandos,
[[email protected] ~]# systemctl disable NetworkManager [[email protected] ~]# systemctl stop NetworkManager
Ejecute el siguiente comando dnf para instalar scripts de red nativos
[[email protected] ~]# dnf install network-scripts -y
Una vez que el paquete de scripts de red está instalado, podemos administrar la red (archivos ifcfg-*) usando la red nativa.servicio
Ahora configuremos la dirección IP en el archivo ifcfg-enp0s3 e iniciemos el servicio de red
[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
Guarde y salga del archivo y luego inicie el servicio de red usando el siguiente comando,
[[email protected] ~]# systemctl start network [[email protected] ~]# systemctl enable network
Ahora verifique si la IP está asignada a NIC (enp0s3) usando el comando ip,
[[email protected] ~]# ip a s enp0s3
Paso 3) Habilite los repositorios de OpenStack e instale la utilidad Packstack
Al momento de escribir este artículo, ussuri openstack estaba disponible, así que ejecute el siguiente comando para configurar sus repositorios
[[email protected] ~]# dnf config-manager --set-enabled powertools or [[email protected] ~]# dnf config-manager --enable PowerTools [[email protected] ~]# dnf install -y centos-release-openstack-ussuri
Ahora instale todas las actualizaciones disponibles y reinicie su sistema,
[[email protected] ~]# dnf update -y [[email protected] ~]# reboot
Una vez que el sistema esté disponible después del reinicio, ejecute el siguiente comando dnf para instalar la utilidad packstack
[[email protected] ~]# dnf install -y openstack-packstack
Paso 4) Genere el archivo de respuesta e instale openstack usando packstack
Use el comando packstack para generar el archivo de respuesta,
[[email protected] ~]# packstack --gen-answer-file /root/openstack-answer.txt
Una vez que se genera el archivo de respuesta, edite los siguientes parámetros usando el editor vi,
[[email protected] ~]# vi /root/openstack-answer.txt .............. CONFIG_HEAT_INSTALL=y CONFIG_PROVISION_DEMO=n [email protected] CONFIG_NEUTRON_OVN_BRIDGE_IFACES=br-ex:enp0s3 ..............
Guardar y salir del archivo.
Reemplace el nombre de la interfaz (enp0s3) según su configuración.
Nota: La unidad de tipo de red de inquilino predeterminada se establece como «ginebra” y el controlador de tipo de neutrones predeterminado se establece como “ginebra y plano”. Si desea cambiar estos parámetros predeterminados, actualice las siguientes líneas en el archivo de respuesta. En esta demostración no voy a actualizar estos parámetros.
CONFIG_NEUTRON_ML2_TYPE_DRIVERS=geneve,flat CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=geneve
Ejecute el siguiente comando para iniciar la implementación de openstack mediante el archivo de respuesta.
[[email protected] ~]# packstack --answer-file /root/openstack-answer.txt
La implementación demorará entre 20 y 30 minutos, según el hardware de su sistema y la velocidad de Internet. Una vez instalado correctamente obtendremos lo siguiente:
Ahora verifique si la IP de la interfaz enp03 está asignada al puente br-ex y también confirme si la interfaz enp0s3 se agrega como un puerto en ovs-bridge.
Ejecute los siguientes comandos:
[[email protected] ~]# ip a s enp0s3 [[email protected] ~]# ip a s br-ex [[email protected] ~]# ovs-vsctl show
Perfecto, el resultado anterior confirma que la instalación fue exitosa y la red también está configurada según el archivo de respuesta.
Paso 5) Acceda al panel de Horizon
Ahora intente iniciar sesión en el panel de Horizon. La URL ya está especificada en el resultado anterior, en mi caso, la URL es http://192.168.1.8/tablero , Use el nombre de usuario como administrador y la contraseña que especificamos en el archivo de respuesta.
También referimos el archivo “keystonerc_admin” para las credenciales
Ahora, probemos esta implementación openstack lanzando una instancia.
Paso 6) Pruebe y verifique la instalación de OpenStack iniciando una instancia
Antes de lanzar una instancia en openstack, primero debemos crear las redes y el enrutador y mirar la imagen. Por lo tanto, primero vamos a crear una red externa en el inquilino de administración usando los siguientes comandos de neutrones,
[[email protected] ~]# source keystonerc_admin [[email protected] ~(keystone_admin)]# neutron net-create external_network --provider:network_type flat --provider:physical_network extnet --router:external
Ahora agregue una subred de su red plana a la red externa ejecutando el siguiente comando de neutrones.
[[email protected] ~(keystone_admin)]# neutron subnet-create --name public_subnet --enable_dhcp=True --allocation-pool=start=192.168.1.210,end=192.168.1.230 --gateway=192.168.1.1 external_network 192.168.1.0/24
Cree un enrutador ejecutando el siguiente comando de neutrones y configure su puerta de enlace usando una red externa
[[email protected] ~(keystone_admin)]# neutron router-create dev-router [[email protected] ~(keystone_admin)]# neutron router-gateway-set dev-router external_network
Cree una red privada y adjunte una subred a ella. Ejecute el siguiente comando de neutrones,
[[email protected] ~(keystone_admin)]# neutron net-create pvt_net [[email protected] ~(keystone_admin)]# neutron subnet-create --name pvt_subnet pvt_net 10.20.1.0/24
Agregue la interfaz pvt_net al enrutador «dev_router» usando el comando debajo de neutron,
[[email protected] ~(keystone_admin)]# neutron router-interface-add dev-router pvt_subnet
Ahora descargue la imagen de Cirros y luego cárguela para mirar
[[email protected] ~(keystone_admin)]# wget http://download.cirros-cloud.net/0.5.1/cirros-0.5.1-x86_64-disk.img [[email protected] ~(keystone_admin)]# openstack image create --disk-format qcow2 --container-format bare --public --file cirros-0.5.1-x86_64-disk.img cirros
Ahora regrese al panel de Horizon y verifique la topología de la red.
Perfecto, lo anterior confirma que la red privada y externa se han configurado correctamente junto con el enrutador.
Un paso final antes de crear una máquina virtual, actualice el grupo de seguridad predeterminado, agregue reglas de ingreso icmp y ssh, haga clic en «Grupos de seguridad” en la pestaña de red, haga clic en Administrar reglas y luego haga clic en “Añadir regla”
De manera similar, agregue la regla para ssh
Haga clic en Agregar
Ahora se cumplen todos los requisitos para lanzar una instancia openstack. Haga clic en Calcular Tabulador y luego Elegir Instancias opción y haga clic en “Instancia de lanzamiento”
Una vez que la VM se inicie con éxito, obtendremos algo como lo siguiente:
Ahora asocie la IP flotante a la instancia (demo_vm), debajo de «Comportamiento” Pestaña, Elija “Asociar IP flotante”
Ahora elija IP o haga clic en + signo para obtener una IP flotante de una red externa y luego asociarla
Una vez que la IP está asociada a la VM, se mostrará la IP flotante en la opción ‘Dirección IP’, el ejemplo se muestra a continuación
Ahora intente acceder a este demo_vm usando la ip flotante, use cirros como usuario y ‘gocubsgo’ como contraseña
Genial, la salida anterior confirma que podemos acceder a nuestra instancia a través de una IP flotante. Esto concluye el artículo; Espero que este tutorial ayude a implementar openstack en el sistema CentOS 8. Por favor, no dude en compartir sus opiniones y comentarios.
Leer también: Cómo crear una instancia en OpenStack a través de la línea de comandos