Bienvenidos de nuevo a los usuarios de LinuxTechi, con la continuación de nuestra implementación openstack con el enfoque de Tripleo. En este tutorial, analizaremos los pasos para implementar servidores tripleo overcloud (controlador y cómputo) a través de undercloud en máquinas virtuales CentOS 7 alojadas en el hipervisor KVM.
En nuestro último artículo, ya hemos discutido los detalles de configuración de nuestro laboratorio y la instalación de tripleo Undercloud en CentOS 7, para conocer los pasos de instalación de undercloud, consulte:
Supongo que undercloud ya está instalado y configurado. Comencemos con los pasos de implementación de overcloud.
Paso:1 Descargar e importar imágenes de Overcloud
Inicie sesión en el servidor de undercloud como usuario de pila y descargue las imágenes de overcloud de la siguiente URL, en mi caso estoy usando la última versión de openstack (es decir, pike), puede descargar las imágenes que se adapten a su entorno y versión de openstack,
https://images.rdoproject.org/pike/delorean/current-tripleo-rdo/
[[email protected] ~]$ sudo wget https://images.rdoproject.org/pike/delorean/current-tripleo-rdo/overcloud-full.tar --no-check-certificate [[email protected] ~]$ sudo wget https://images.rdoproject.org/pike/delorean/current-tripleo-rdo/ironic-python-agent.tar --no-check-certificate [[email protected] ~]$ mkdir ~/images [[email protected] ~]$ tar -xpvf ironic-python-agent.tar -C ~/images/ [[email protected] ~]$ tar -xpvf overcloud-full.tar -C ~/images/ [[email protected] ~]$ source ~/stackrc (undercloud) [[email protected] ~]$ openstack overcloud image upload --image-path ~/images/
Ahora mira las imágenes cargadas
(undercloud) [[email protected] ~]$ openstack image list +--------------------------------------+------------------------+--------+ | ID | Name | Status | +--------------------------------------+------------------------+--------+ | 003300db-bbe1-4fc3-af39-bca9f56cc169 | bm-deploy-kernel | active | | 1a1d7ddf-9287-40fb-aea5-3aacf41e76a2 | bm-deploy-ramdisk | active | | be978ecb-2d33-4faf-80c0-8cb0625f1a45 | overcloud-full | active | | 0c0c74bc-0b0f-4324-81b4-e0abeed9455e | overcloud-full-initrd | active | | 0bf28731-d645-401f-9557-f24b3b8a6912 | overcloud-full-vmlinuz | active | +--------------------------------------+------------------------+--------+ (undercloud) [[email protected] ~]$
Paso: 2 Agregue el servidor DNS en la red undercloud
Use el siguiente comando openstack para ver la subred
(undercloud) [[email protected] ~]$ openstack subnet list +--------------------------------------+-----------------+--------------------------------------+------------------+ | ID | Name | Network | Subnet | +--------------------------------------+-----------------+--------------------------------------+------------------+ | b3c8033d-ea58-44f3-8de1-5d5e29cad74b | ctlplane-subnet | fe1c940b-7f89-428a-86e1-2d134ce8d807 | 192.168.126.0/24 | +--------------------------------------+-----------------+--------------------------------------+------------------+ (undercloud) [[email protected] ~]$ openstack subnet show b3c8033d-ea58-44f3-8de1-5d5e29cad74b
Use el siguiente comando para agregar el servidor dns
(undercloud) [[email protected] ~]$ neutron subnet-update b3c8033d-ea58-44f3-8de1-5d5e29cad74b --dns-nameserver 192.168.122.1
Ahora verifique si el servidor DNS se ha agregado o no
(undercloud) [[email protected] ~]$ openstack subnet show b3c8033d-ea58-44f3-8de1-5d5e29cad74b
La salida sería algo como a continuación
Paso:3 Crear máquinas virtuales para el controlador y la computación de Overcloud
Vaya al servidor físico o al hipervisor KVM y defina dos máquinas virtuales para computación y una para el nodo del controlador.
Utilice los siguientes comandos para crear una imagen qcow2 para el controlador y las VM de cómputo.
[[email protected] ~]# cd /var/lib/libvirt/images/ [[email protected] images]# qemu-img create -f qcow2 -o preallocation=metadata overcloud-controller.qcow2 60G [[email protected] images]# qemu-img create -f qcow2 -o preallocation=metadata overcloud-compute1.qcow2 60G [[email protected] images]# qemu-img create -f qcow2 -o preallocation=metadata overcloud-compute2.qcow2 60G [[email protected] images]# chown qemu:qemu overcloud-*
Utilice el siguiente comando Virt-install y virsh define para crear y definir overcloud vms en el hipervisor KVM,
Nota: Cambie la familia de RAM, vcpu y CPU que se adapte a su entorno
[[email protected] ~]# virt-install --ram 8192 --vcpus 2 --os-variant rhel7 --disk path=/var/lib/libvirt/images/overcloud-controller.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc --network network:provisioning --network network:external --name overcloud-controller --cpu Haswell,+vmx --dry-run --print-xml > /tmp/overcloud-controller.xml [[email protected] ~]# [[email protected] ~]# virt-install --ram 8192 --vcpus 2 --os-variant rhel7 --disk path=/var/lib/libvirt/images/overcloud-compute1.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc --network network:provisioning --network network:external --name overcloud-compute1 --cpu Haswell,+vmx --dry-run --print-xml > /tmp/overcloud-compute1.xml [[email protected] ~]# [[email protected] ~]# virt-install --ram 8192 --vcpus 2 --os-variant rhel7 --disk path=/var/lib/libvirt/images/overcloud-compute2.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc --network network:provisioning --network network:external --name overcloud-compute2 --cpu Haswell,+vmx --dry-run --print-xml > /tmp/overcloud-compute2.xml [[email protected] ~]# [[email protected] ~]# virsh define --file /tmp/overcloud-controller.xml [[email protected] ~]# virsh define --file /tmp/overcloud-compute1.xml [[email protected] ~]# virsh define --file /tmp/overcloud-compute2.xml
Verifique el estado de las máquinas virtuales usando el comando virsh list,
[[email protected] ~]# virsh list --all | grep overcloud* - overcloud-compute1 shut off - overcloud-compute2 shut off - overcloud-controller shut off [[email protected] ~]#
Paso:4 Instalar y configurar vbmc (BMC virtual) en undercloud
Vbmc es una herramienta de administración de energía para máquinas virtuales, las máquinas virtuales se pueden administrar a través de ipmitool.
Usando vbmc podemos apagar, encender y también verificar el estado de energía de una VM. Requerimos vbmc ya que undercloud requerirá encender/apagar las máquinas virtuales durante la implementación.
Nota: vbmc es el reemplazo de pxe_ssh ya que pxe_ssh ahora está depreciado.
Ejecute debajo del comando yum install para instalar virtualbmc,
[[email protected] ~]$ sudo yum install python-virtualbmc -y
Intercambie las claves ssh de cloudcloud vm al servidor físico (hipervisor KVM)
[[email protected] ~]$ ssh-copy-id [email protected]
Agregue las máquinas virtuales a vbmc usando los siguientes comandos, en mi caso, libvirt-uri es «qemu+ssh://[email protected]”
[[email protected] ~]$ vbmc add overcloud-compute1 --port 6001 --username admin --password password --libvirt-uri qemu+ssh://[email protected]/system [[email protected] ~]$ vbmc start overcloud-compute1 [[email protected] ~]$ vbmc add overcloud-compute2 --port 6002 --username admin --password password --libvirt-uri qemu+ssh://[email protected]/system [[email protected] ~]$ vbmc start overcloud-compute2 [[email protected] ~]$ vbmc add overcloud-controller --port 6003 --username admin --password password --libvirt-uri qemu+ssh://[email protected]/system [[email protected] ~]$ vbmc start overcloud-controller
Verifique el estado de las máquinas virtuales y sus puertos,
[[email protected] ~]$ vbmc list +----------------------+---------+---------+------+ | Domain name | Status | Address | Port | +----------------------+---------+---------+------+ | overcloud-compute1 | running | :: | 6001 | | overcloud-compute2 | running | :: | 6002 | | overcloud-controller | running | :: | 6003 | +----------------------+---------+---------+------+ [[email protected] ~]$
Para ver el estado de energía de las máquinas virtuales, use el siguiente comando,
[[email protected] ~]$ ipmitool -I lanplus -U admin -P password -H 127.0.0.1 -p 6001 power status Chassis Power is off [[email protected] ~]$ ipmitool -I lanplus -U admin -P password -H 127.0.0.1 -p 6002 power status Chassis Power is off [[email protected] ~]$ ipmitool -I lanplus -U admin -P password -H 127.0.0.1 -p 6003 power status Chassis Power is off [[email protected] ~]$
Paso:5 Crear e importar el inventario de nodos de overcloud a través de un archivo json
Vamos a crear un archivo de inventario (json), incluirá los detalles de los servidores overcloud (Controladores y Cómputo).
Primero capture la dirección mac de los nodos en la nube, para esto, vaya al hipervisor kvm y ejecute los siguientes comandos
[[email protected] ~]# virsh domiflist overcloud-compute1 | grep provisioning - network provisioning virtio 52:54:00:08:63:bd [[email protected] ~]# virsh domiflist overcloud-compute2 | grep provisioning - network provisioning virtio 52:54:00:72:1d:21 [[email protected] ~]# virsh domiflist overcloud-controller | grep provisioning - network provisioning virtio 52:54:00:0a:dd:57 [[email protected] ~]#
Ahora cree un archivo json con el nombre «overcloud-stackenv.json»
[[email protected] ~]$ vi overcloud-stackenv.json { "nodes": [ { "arch": "x86_64", "disk": "60", "memory": "8192", "name": "overcloud-compute1", "pm_user": "admin", "pm_addr": "127.0.0.1", "pm_password": "password", "pm_port": "6001", "pm_type": "pxe_ipmitool", "mac": [ "52:54:00:08:63:bd" ], "cpu": "2" }, { "arch": "x86_64", "disk": "60", "memory": "8192", "name": "overcloud-compute2", "pm_user": "admin", "pm_addr": "127.0.0.1", "pm_password": "password", "pm_port": "6002", "pm_type": "pxe_ipmitool", "mac": [ "52:54:00:72:1d:21" ], "cpu": "2" }, { "arch": "x86_64", "disk": "60", "memory": "8192", "name": "overcloud-controller", "pm_user": "admin", "pm_addr": "127.0.0.1", "pm_password": "password", "pm_port": "6003", "pm_type": "pxe_ipmitool", "mac": [ "52:54:00:0a:dd:57" ], "cpu": "2" } ] }
Reemplace la dirección mac de las máquinas virtuales que se adapte a su entorno.
Importe los nodos y haga la introspección usando el siguiente comando
[[email protected] ~]$ source stackrc (undercloud) [[email protected] ~]$ openstack overcloud node import --introspect --provide overcloud-stackenv.json
La salida del comando anterior debería ser algo como lo siguiente:
Vea los detalles del nodo overcloud usando el siguiente comando y debemos asegurarnos de que el estado de aprovisionamiento de cada nodo esté disponible:
(undercloud) [[email protected] ~]$ openstack baremetal node list +--------------------------------------+----------------------+---------------+-------------+--------------------+-------------+ | UUID | Name | Instance UUID | Power State | Provisioning State | Maintenance | +--------------------------------------+----------------------+---------------+-------------+--------------------+-------------+ | 44884524-a959-4477-87f9-143f716f422b | overcloud-compute1 | None | power off | available | False | | 445ced0a-d449-419e-8c43-e0f124017300 | overcloud-compute2 | None | power off | available | False | | a625fdfa-9a18-4d7c-aa36-492575f19307 | overcloud-controller | None | power off | available | False | +--------------------------------------+----------------------+---------------+-------------+--------------------+-------------+ (undercloud) [[email protected] ~]$
Establezca roles o perfiles para sobrecargar los nodos:
Para configurar el rol de cada nodo de overcloud, use los siguientes comandos. Máquinas virtuales con nombre «overloud-compute1/2” actuará como un cómputo de pila abierta nodo y VM con nombre «controlador overcloud” actuará como cómputo de pila abierta nodo.
(undercloud) [[email protected] ~]$ openstack baremetal node set --property capabilities='profile:compute,boot_option:local' 44884524-a959-4477-87f9-143f716f422b (undercloud) [[email protected] ~]$ openstack baremetal node set --property capabilities='profile:compute,boot_option:local' 445ced0a-d449-419e-8c43-e0f124017300 (undercloud) [[email protected] ~]$ openstack baremetal node set --property capabilities='profile:control,boot_option:local' a625fdfa-9a18-4d7c-aa36-492575f19307
Ahora use el siguiente comando openstack para verificar el rol de cada nodo,
(undercloud) [[email protected] ~]$ openstack overcloud profiles list +--------------------------------------+----------------------+-----------------+-----------------+-------------------+ | Node UUID | Node Name | Provision State | Current Profile | Possible Profiles | +--------------------------------------+----------------------+-----------------+-----------------+-------------------+ | 44884524-a959-4477-87f9-143f716f422b | overcloud-compute1 | available | compute | | | 445ced0a-d449-419e-8c43-e0f124017300 | overcloud-compute2 | available | compute | | | a625fdfa-9a18-4d7c-aa36-492575f19307 | overcloud-controller | available | control | | +--------------------------------------+----------------------+-----------------+-----------------+-------------------+ (undercloud) [[email protected] ~]$
Paso:6 Iniciar la implementación de Overcloud Nodes
A partir de ahora, hemos completado todos los pasos necesarios para la implementación en la nube desde el servidor en la nube,
Ejecute el siguiente comando openstack desde undercloud para iniciar la implementación,
(undercloud) [[email protected] ~]$ openstack overcloud deploy --templates --control-scale 1 --compute-scale 2 --control-flavor control --compute-flavor compute
En el comando anterior estamos usando opciones como “–escala de cómputo 2» y “–escala de control 1“, significa que usaremos dos nodos de cómputo y un nodo de controlador.
Tenga en cuenta que el comando anterior tardará aprox. De 40 a 50 minutos o más, según el hardware o el rendimiento de la máquina virtual. Entonces, debe esperar hasta que el comando anterior no termine
La salida del comando anterior debería ser algo como lo siguiente:
Ejecute el siguiente comando para ver la dirección IP de los nodos overcloud
(undercloud) [[email protected] ~]$ nova list +--------------------------------------+-------------------------+--------+------------+-------------+--------------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+-------------------------+--------+------------+-------------+--------------------------+ | 8c1a556f-9f79-449b-ae15-d111a96b8349 | overcloud-controller-0 | ACTIVE | - | Running | ctlplane=192.168.126.107 | | 31e54540-79a3-4182-8ecc-6e0f8cd3db11 | overcloud-novacompute-0 | ACTIVE | - | Running | ctlplane=192.168.126.101 | | edab92ce-825f-48c0-ba83-1445572c15b9 | overcloud-novacompute-1 | ACTIVE | - | Running | ctlplane=192.168.126.106 | +--------------------------------------+-------------------------+--------+------------+-------------+--------------------------+ (undercloud) [[email protected] ~]$
Conéctese a los nodos Over Cloud usando ‘administración de calor‘ usuario:
(undercloud) [[email protected] ~]$ ssh [email protected] Last login: Tue Jan 16 14:32:55 2018 from gateway [[email protected] ~]$ sudo -i [[email protected] ~]# hostname -f overcloud-controller-0.localdomain [[email protected] ~]#
Del mismo modo, podemos conectarnos al resto de los nodos de cómputo.
Una vez que Overcloud se ha implementado con éxito, todas las credenciales de administrador se almacenan en el archivo «supernuberc” en el directorio de inicio del usuario de la pila
(undercloud) [[email protected] ~]$ cat ~/overcloudrc
Ahora intente acceder a Horizon Dashboard usando las credenciales mencionadas en el archivo overcloudrc.
Abra el navegador web y escriba la URL:
http://192.168.126.103/tablero
Esto confirma que Overcloud se ha implementado correctamente. Ahora cree proyectos, redes y cargue imágenes en la nube y luego comience a crear máquinas virtuales. Eso es todo de este tutorial, por favor comparta sus comentarios y opiniones.