En cuanto a la infraestructura, vamos a utilizar la red OpenStack (neutron), aquí se utilizarán un total de tres instancias de Ubuntu, que actuarán como controlador, red y nodo de cómputo.
OpenStack recomienda las siguientes configuraciones mínimas para cada nodo, con un sistema operativo host de 64 bits.
La siguiente es la configuración de red de cada nodo.
Rol | NW Tarjeta 1 | NW Tarjeta 2 |
Nodo controlador HostName =controlador.itzgeek.local (controlador) | 192.168.12.21 / 24, GW=192.168.12.2 (Red de administración) | 192.168.0.21 / 24 GW=192.168.0.1 (Red pública:DHCP habilitado) |
Nodo de cómputo Nombre de host =cómputo.itzgeek.local (cómputo) | 192.168.12.22 / 24 GW=192.168.12.2 (Red de administración) | 192.168.0.22 / 24 GW=192.168.0.1 (Red pública:DHCP habilitado) |
* Gestión en 192.168.12.0/24 con puerta de enlace 192.168.12.1
Esta red requiere una puerta de enlace para proporcionar acceso a Internet a todos los nodos con fines administrativos, como instalación de paquetes, actualizaciones de seguridad, DNS y NTP.
* Público en 192.168.0.0/24 con puerta de enlace 192.168.0.1
Esta red requiere una puerta de enlace para proporcionar acceso a Internet a las instancias de su entorno OpenStack.
Agregue una entrada de host para que los nodos puedan usar el nombre de host para comunicarse en lugar de la dirección IP. Colóquelo en todos los nodos.
# nano /etc/hosts
# controller
192.168.12.21 controller.itzgeek.local controller
# compute
192.168.12.22 compute.itzgeek.local compute
Una vez que haya terminado de configurar la dirección IP, haga ping entre los nodos para verificar la conectividad.
Servidor NTP:
Instale y configure chrony (NTP) en el nodo del controlador para que todos los demás nodos puedan sincronizar la hora con el nodo del controlador.
# apt-get install ntp
# service ntp restart
Configuración NTP del cliente
Instale el paquete NTP en los nodos de cómputo y cualquier nodo que agregue en el futuro.
# apt-get install ntp
Edite el siguiente archivo de configuración.
# nano /etc/ntp.conf
Elimine otros servidores ntp de este archivo o simplemente comente las líneas que comienzan con la palabra "servidor". Agregue la siguiente entrada para sincronizar nuestros nodos con el nodo del controlador.
server controller
Reinicie el servicio NTP.
# service ntp restart
Paquetes OpenStack:
Instale el archivo de claves y el repositorio de Ubuntu Cloud.
# apt-get install software-properties-common
# add-apt-repository cloud-archive:liberty
Actualice su sistema.
# apt-get update && apt-get dist-upgrade
Instale el cliente Python de OpenStack.
# apt-get install python-openstackclient
Realice los dos pasos anteriores en todos los nodos.
Instalar base de datos MySQL:
Los componentes de OpenStack utilizan la base de datos MySQL para almacenar información, así que instale MySQL en el nodo del controlador.
# apt-get install mariadb-server python-pymysql
El instalador invoca una línea de comando tui para establecer la contraseña de root de MySQL.
Cree y edite el /etc/mysql/conf.d/mysqld_openstack.cnf archivo
# nano /etc/mysql/conf.d/mysqld_openstack.cnf
Agregue los siguientes valores y asegúrese de que el valor de la dirección de enlace esté establecido en la dirección IP de administración del nodo del controlador para permitir que otro nodo pueda acceder a la instancia de MySQL.
[mysqld]
## Set to Management IP
bind-address = 192.168.12.21
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
Reinicie MySQL.
# service mysql restart
Instalar base de datos NoSQL (para servicio de telemetría):
El servicio de Telemetría utiliza una base de datos NoSQL para almacenar información. La base de datos normalmente se ejecuta en el nodo del controlador. Aquí usaremos MongoDB.
La instalación del servidor de base de datos NoSQL solo es necesaria al momento de instalar el servicio de Telemetría. De lo contrario, puede omitir esto.
Instale MongoDB y empaquete.
# apt-get install mongodb-server mongodb-clients python-pymongo
Edite el /etc/mongodb.conf archivo.
# vi /etc/mongodb.conf
Agregue los siguientes valores y asegúrese de que el valor de bind_ip esté establecido en la dirección IP de administración del nodo del controlador para permitir que otro nodo pueda acceder a la instancia de MySQL. Además, establezca smallfiles =true .
# Management interface IP address of the controller node
bind_ip = 192.168.12.21
smallfiles = true
Detenga e inicie el servicio MongoDB.
# service mongodb stop
# rm -rf /var/lib/mongodb/journal/prealloc.*
# service mongodb start
Instalar RabbitMQ:
OpenStack utiliza RabbitMQ para coordinar operaciones e información de estado entre servicios. Instálelo en el nodo del controlador.
# apt-get install rabbitmq-server
Agregar usuario openstack.
# rabbitmqctl add_user openstack password
* Reemplace la contraseña con su propia contraseña.
Permita que el usuario de openstack lea, escriba y acceda a la configuración.
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Lo siguiente es configurar el servicio KeyStone (identidad de OpenStack) .