IT Blog

Este será un tutorial completo sobre la instalación de OpenStack (configuración mínima). Me gustaría mucho probar el sistema operativo en la nube de código abierto, y OpenStack es una de las soluciones serias, utilizada por muchas instituciones y empresas. El Cern es uno de los usuarios, y Red Hat apoya firmemente OpenStack.

Tenga en cuenta: Incluso después de este tutorial «planificado», se le dará la bienvenida con errores después de configurar todo, y tendrá que investigar más para que su OpenStack funcione bien. Escribiré sobre algunos de los problemas en algunas guías rápidas más.

OpenStack también tiene reputación de ser complicado de instalar y mantener y no muy estable. Leí mucho sobre el tema de OpenStack, revisé mucha documentación y este es el resultado. Esto cubrirá la instalación manual de la liberación del tren, y esta extensa serie cubrirá todos los componentes de la instalación mínima de OpenStack (no deje que este mínimo lo engañe, hay mucho que hacer).

Hay algunas diferencias entre la documentación oficial de OpenStack y la implementación en sí, por lo que este tutorial también debería ayudarlo a ahorrar incontables horas de buscar errores y descifrar errores a través del camino.

El procedimiento es tedioso, pero lo recomiendo encarecidamente, ya que al final, tendrá una buena comprensión de los principios básicos de OpenStack.

Más sobre el tema la próxima vez, pongámonos a trabajar.

Hay una curva de aprendizaje, y por lo que he leído, creo que OpenStack es en este momento una solución estable para sus necesidades en la nube.

Pero, veremos en el camino, vamos a sumergirnos.

Requisitos previos

Usaré CentOS 7 para mis instalaciones (v. 1908). Crearé mi LABORATORIO en VMware Fusion / Workstation. La instalación inicial de CentOS es mínima sin GUI ni adiciones.

Todas mis máquinas virtuales tendrán núcleos de 4 CPU y 8 GB de RAM con un mínimo de disco duro de 120 GB.Puede encontrar los requisitos mínimos aquí: https://docs.openstack.org/install-guide/overview.html

Tome nota de los requisitos adicionales de los componentes de la red y de la unidad y agréguelos en consecuencia a su LABORATORIO.

Mi LABORATORIO tiene acceso a internet.

Seguiré la documentación de OpenStack en el camino – https://docs.openstack.org/install-guide/common/conventions.html

Instalaré Train build, que es el actual. Comenzaré con el Nodo de Controlador 1 y el Nodo de Cómputo 1.

La red del proveedor será la siguiente (necesita acceso a Internet para esta configuración):

10.0.0.1/24 – puerta de enlace

10.0.0.11/24 – Nodo de controlador 1

10.0.0.31/24 – Nodo de Cómputo 1

10.0.0.41/Nodo de almacenamiento de 24 bloques 1

10.0.0.51/24-Nodo de almacenamiento de objetos 1

10.0.0.52/24 – Nodo de almacenamiento de objetos 2

También crearé una red en el rango 203.0.113.0 / 24, que será red de administración.

Aquí también están los nombres y direcciones IP de las máquinas (también las necesitará en el archivo hosts):

10.0.0.11 controller

10.0.0.31 compute1

10.0.0.41 block1

10.0.0.51 object1

10.0.0.52 object2

Cambiar el nombre de host de la máquina

Para cada máquina del laboratorio cambiar el nombre de host. Cambiaré mis nombres de host a los nombres que especificé justo arriba de esto.

El comando está debajo, el controlador es el nombre de una de las máquinas, cámbielo a lo que considere adecuado.

sudo hostnamectl set-hostname controller

Aquí es lo que el cambio se ve después de reiniciar el sistema.

puse el nombre de mi máquinas – controlador, compute1, block1, objeto1, objeto2.

Configurar la resolución de nombres

Editar la interfaz de red ubicada en /etc/sysconfig/network-scripts

En mi caso, tengo la interfaz ifcfg-ens33

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

Edité las siguientes líneas (ejemplo de máquina controladora):

BOOTPROTO=noneIPADDR=10.0.0.11PREFIX=24GATEWAY=10.0.0.1DNS1=10.0.0.1DNS2=8.8.8.8ONBOOT=yesIPV6INIT=no

Así es como se ve

Reinicie la máquina después de establecer la configuración de ip. Repita estos pasos para todas las máquinas del laboratorio (por supuesto, establezca una dirección IP diferente para cada una).

Actualizar la instalación de CentOS

Antes de continuar, actualizaremos nuestras instalaciones de CentOS. De esta manera también confirmaremos nuestra conectividad a Internet.

sudo yum update -y

Editar archivo de Hosts

De nuevo, tenemos que hacer eso en cada máquina. Editaremos el archivo hosts, para que las máquinas puedan verse entre sí por el nombre.

sudo vi /etc/hosts/

Esto es lo que necesitamos para entrar

10.0.0.11 controller10.0.0.31 compute110.0.0.41 block110.0.0.51 object110.0.0.52 object2

Aquí es cómo mi archivo se parece

Si hemos hecho todo bien, ahora se debería poder hacer ping desde el controlador a compute1 y viceversa por el nombre. (Asegúrese de que su ping está disponible a través de firewall)

Funciona.Introduzca estos valores en cada archivo host de cada máquina y asegúrese de que puede hacer ping a cada máquina y realizar pruebas desde cada máquina.

Configurar el servicio NTP

La medición de tiempo precisa es importante, por lo que configuraremos el servidor de tiempo y le adjuntaremos clientes. El servidor de tiempo será nuestro servidor controlador y cliente de todas las demás máquinas.

Configuración del servidor NTP

Haremos esto en nuestro servidor controlador.

sudo yum install chrony -y

Habilitar e iniciar el servicio ejecutando

sudo systemctl start chronydsudo systemctl enable chronyd

también puede comprobar el estado de servicio, ejecutando

systemctl status chronyd

a continuación, vamos a editar el archivo /etc/chrony.archivo conf

sudo vi /etc/chrony.conf

Para este tutorial, dejaré los servidores centos NTP predeterminados. De lo contrario, si desea editar servidores NTP, puede agregar el comando a continuación (Reemplazar NTP_SERVER con el nombre del servidor NTP)

server NTP_SERVER iburst

También necesitaremos habilitar el acceso para nuestros clientes NTP desde la red local descomentando y editando la siguiente línea

allow 10.0.0.0/24

Aquí está mi configuración. La parte verde es donde ingresará a sus servidores NTP, y la parte roja está habilitada para el acceso desde nuestra red local para la sincronización de tiempo.

Reinicie el servidor o chrony servicio tecleando

sudo systemctl restart chronyd

vamos a comprobar si nuestro servidor es la sincronización de tiempo escribiendo en

chronyc sources

el Servicio funciona para mí.

También lo habilitaremos a través del firewall

sudo firewall-cmd --permanent --add-service=ntpsudo firewall-cmd --reload

Configuración de clientes NTP

Estos pasos deben realizarse en el resto de las máquinas.

De nuevo, necesitamos instalar chrony

sudo yum install chrony

Habilitar e iniciar el servicio NTP

sudo systemctl start chronydsudo systemctl enable chronyd

Después de eso, nuevamente necesitamos editar /etc/chrony.conf

sudo vi /etc/chrony.conf

Deberá eliminar todos los comentarios de todos los servidores NTP e ingresar lo siguiente

server controller iburst

Deje todo como está y cierre el archivo. Así es como se ve el mío.

de Nuevo, reiniciar el servicio de NTP

sudo systemctl restart chronyd

Y permite comprobar si funciona

chronyc sources

funciona, el cliente se está comunicando con el servidor NTP.

Y, en servidor NTP si entramos comando

chronyc clients

veremos que compute1 es cliente NTP

Repita el paso sobre el resto de las máquinas.

Paquetes OpenStack

Estos pasos se deben realizar en todos los nodos. Si no ha actualizado su instalación de CentOS, y también deshabilita el repositorio de EPEL.

!!!///SOLO PARA INSTALACIONES DE RED HAT, CENTOS OMITE ESTE

subscription-manager repos --enable=rhel-7-server-optional-rpms \ --enable=rhel-7-server-extras-rpms --enable=rhel-7-server-rh-common-rpms

Ejecute el siguiente comando (estamos instalando la versión del tren)

sudo yum install centos-release-openstack-train

El siguiente comando que ejecutaremos es

sudo yum upgrade

Reinicie después y seleccione nuevo núcleo para activarlo.

El siguiente comando será

sudo yum install python-openstackclient

Y por último, necesitamos integrar nuestra instalación de OpenStack en SELinux

sudo yum install openstack-selinux

La base de datos SQL

se instalará en el nodo del controlador.Instalaremos MariaDB.

sudo yum install mariadb mariadb-server python2-PyMySQL

Una vez finalizada la instalación, tendremos que editar un openstack.conf ubicado en / etc / my.cnf.d

sudo vi /etc/my.cnf.d/openstack.conf

Crearemos la sección mysqld con la siguiente información (asegúrese de que bind-address es la dirección de su controlador)

bind-address = 10.0.0.11default-storage-engine = innodbinnodb_file_per_table = onmax_connections = 4096collation-server = utf8_general_cicharacter-set-server = utf8

Así es como se ve en mi caso

Habilitar e iniciar MariaDB

sudo systemctl enable mariadb.servicesudo systemctl start mariadb.service

También agregaremos excepción de firewall

sudo firewall-cmd --permanent --add-service=mysqlsudo firewall-cmd --reload

Finalmente aseguraremos nuestra instalación y estableceremos la contraseña para root sql usuario

sudo mysql_secure_installation

Cola de mensajes

OpenStack utiliza la cola de mensajes para coordinar operaciones y estado entre servicios. Por lo general, se ejecuta en el controlador, por lo que lo instalaremos en el controlador. Vamos a instalar RabbitMQ

Instalación

sudo yum install rabbitmq-server

Iniciar y activar el servicio

sudo systemctl enable rabbitmq-server.servicesudo systemctl start rabbitmq-server.service

Añadir openstack usuario a ello. Reemplaza RABBIT_PASS con tu contraseña.

sudo rabbitmqctl add_user openstack RABBIT_PASS

Establecer permisos

rabbitmqctl set_permissions openstack ".*" ".*" ".*"

Estos son ajustes de firewall para RabbitMQ

sudo firewall-cmd --zone=public --permanent --add-port=4369/tcp --add-port=25672/tcp --add-port=5671-5672/tcp --add-port=15672/tcp --add-port=61613-61614/tcp --add-port=1883/tcp --add-port=8883/tcpsudo firewall-cmd --reload

Comando SELinux opcional

setsebool -P nis_enabled 1

Memcached

El mecanismo de autenticación de servicio de identidad para servicios utiliza Memcached para almacenar en caché tokens. El servicio memcached normalmente se ejecuta en el nodo del controlador, por lo que lo instalaré en el nodo del controlador.

Installation

sudo yum install memcached python-memcached

Next, we will edit /etc/sysconfig/memcached

sudo vi /etc/sysconfig/memcached

controller should be added to OPTIONS line, like this

OPTIONS="-l 127.0.0.1,::1,controller"

At last, we will enable and start service

sudo systemctl enable memcached.servicesudo systemctl start memcached.service

Optional firewall settings for memcached

sudo firewall-cmd --new-zone=memcached --permanentsudo firewall-cmd --zone=memcached --add-port=11211/udp --permanentsudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanentsudo firewall-cmd --zone=memcached --add-source=10.0.0.0/24 --permanentsudo firewall-cmd --reload

Etcd

Short explanation from docs.openstack.los servicios org-OpenStack pueden usar Etcd, un almacén de valor de clave distribuido confiable para el bloqueo de claves distribuidas, el almacenamiento de la configuración, el seguimiento de la vida útil del servicio y otros escenarios.

Etcd debe instalarse en el nodo del controlador.

Instalación

sudo yum install etcd

A continuación editaremos /etc / etcd / etcd.conf

sudo vi /etc/etcd/etcd.conf

Debe editar el archivo de esta manera y cambiar los valores a continuación para que coincidan con la IP o el nombre de su controlador.

#ETCD_DATA_DIR="/var/lib/etcd/default.etcd"ETCD_LISTEN_PEER_URLS="http://10.0.0.11:2380"ETCD_LISTEN_CLIENT_URLS="http://10.0.0.11:2379"ETCD_NAME="controller"#ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.11:2380"ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.11:2379"ETCD_INITIAL_CLUSTER="controller=http://10.0.0.11:2380"ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"ETCD_INITIAL_CLUSTER_STATE="new"

Así es como se ve mi archivo

Habilitar e iniciar el servicio

sudo systemctl enable etcdsudo systemctl start etcd

Configuración de firewall adicional

sudo firewall-cmd --add-port={2379,2380}/tcp --permanentsudo firewall-cmd --reload

Así que, estamos más o menos «listos» con la parte inicial, ahora haremos una implementación mínima para Train.

Despliegue mínimo para Train

Ok, por lo que hemos tenido éxito hasta ahora. Ahora haremos un despliegue de servicio mínimo para Train. Se pueden encontrar más detalles aquí: https://docs.openstack.org/install-guide/openstack-services.html

Los servicios deben instalarse en el orden especificado, como se muestra a continuación

Desde este tutorial ya va un poco largo, voy a terminarlo aquí y cubrir cada uno de los servicios anteriores en un tutorial separado.

Lo importante es hacer todos los servicios en orden exacto, ya que están a continuación.

Aquí están los enlaces

  1. Identity service – instalación keystone para tren

2. Servicio de imagen: instalación de un vistazo para el tren

3. Servicio de colocación-instalación de colocación para tren

4. Compute service – instalación de nova para tren

5. Servicio de red – instalación de neutrones para Tren

Recomendamos instalar también los siguientes componentes después de haber instalado los servicios de implementación mínima:

6. Tablero de instrumentos – instalación de horizon para tren

7. Servicio de almacenamiento de bloques: instalación de cenizas para trenes

8. Object Storage service – swift installation for Train

Additional links for after installation for errors you may encounter:

Disclaimer

Deja una respuesta

Tu dirección de correo electrónico no será publicada.