Instalación Undercloud con TripleO en CentOS7

Cuando estamos arquitectando una implementación de OpenStack uno de los puntos mas importantes es realizar como vamos a realizar la instalación del producto, en post anteriores de como empezar con openstack mencionaba la instalación con un producto llamado packstack el cual funciona perfectamente para una prueba de concepto y para empezar a conocer el uso y funcionamiento de OpenStack, pero cuando queremos llevar nuestra solución a algo mas corporativo la primera pregunta que debemos plantearnos es: si yo estoy ofreciendo escalamiento horizontal a mis clientes de nube, como puedo yo escalar horizontalmente mi infraestructura? (en otras palabras como puedo crecer mi capacidad de computo, almacenamiento y disponibilidad)

Bueno la solución a esto puede ser la instalación de OpenStack a través del proyecto tripleO (OpenStack On OpenStack)  que quiere decir que basado en los mismos proyectos de OpenStack hagamos nuestra implementación incluso si lo queremos llevar a un nivel corporativo con soporte podemos realizar la implementación con el producto o Red Hat OpenStack Platform Director.

La estrategia que se utiliza para estas implementaciones con TripleO/Director es que se debe implementar una maquina física/virtual que se encargara del despliegue de toda nuestra infraestructura productiva, a este concepto lo llamamos desplegar la Overcloud desde la UnderCloud

Undercloud (tripleO/Director) -> OverCloud (OpenStack en ambiente productivo) 

../../_images/overview.png

La idea de este post es realizar el paso a paso de la instalación de esta maquina undercloud, espero que les sirva

1. Realizar la instalación de un CentOS 7

En mi caso realice la instalación con el medio CentOS-7-x86_64-DVD-1708.iso (equivalente a CentOS 7.4) sobre una maquina virtual con el siguiente hardware:



2 vcpu
8G RAM
50 Disco
2 tarjetas de red (1 para conexion por ssh y administracion y la otra para los servicios de openstack)
eth0 - 172.16.235.200 - Manager (mi red por la que me conecto por SSH para realizar las configuraciones) 
eth1 - sin configuración - Deploy (el proceso de instalación se encarga de crear un bridge con esta tarjeta de red)

La instalación del S.O seleccione "Minimal Installation" con "Development Tools"




2. Una vez finalizada la instalación se debe realizar el alistamiento del sistema operativo


2.1 Configuración de la red 

[root@localhost ~]# systemctl stop NetworkManager
[root@localhost ~]# systemctl disable NetworkManager

En mi caso me gusta cambiar los nombres de las interfases de red para que se llamen eth0, eth1, en caso de querer hacerlo aqui les dejo el link para realizar dicho cambio.

Las tarjetas de red quedaron configuradas de la siguiente forma:

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=172.16.235.200
PREFIX=24
GATEWAY=172.16.235.2
DNS1=8.8.8.8

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth1
DEVICE=eth1
ONBOOT=no

2.2 Configuración del nombre de host y su respectiva resolución de nombres locales


[root@localhost ~]# hostnamectl set-hostname "undercloud.jmanuelcalvo.com"
[root@localhost ~]# exec bash
[root@undercloud ~]# ip add show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:2a:6c:75 brd ff:ff:ff:ff:ff:ff
    inet 172.16.235.200/24 brd 172.16.235.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe2a:6c75/64 scope link
       valid_lft forever preferred_lft forever

[root@undercloud ~]# echo "172.16.235.200    undercloud.jmanuelcalvo.com" >> /etc/hosts

IMPORTANTE:
La maquina debe tener salida a internet, ya que esta estará realizando instalaciones de paquetes con el comando yum 

2.3 Creación del usuario stack para realizar la implementación del undercloud


[root@undercloud ~]# useradd stack
[root@undercloud ~]# echo "stack" | passwd --stdin stack
Changing password for user stack.
passwd: all authentication tokens updated successfully.
[root@undercloud ~]# echo "stack ALL=(root) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/stack
stack ALL=(root) NOPASSWD:ALL
[root@undercloud ~]# chmod 0440 /etc/sudoers.d/stack
[root@undercloud ~]# su - stack
[stack@undercloud ~]$ sudo who am i
root     pts/1        2018-03-27 12:01 (172.16.235.1)

[stack@undercloud ~]$

2.4 Actualizar el S.O y reiniciar

[root@undercloud ~]# yum update -y
[root@undercloud ~]# reboot

2.5 Creación y configuración de los repositorios para descargar el software tripleO y todas sus dependencias.


Una vez reiniciada la maquina ingresamos nuevamente con el usuario stackssh 

ssh 172.16.235.200 -l stack
[stack@undercloud ~]$ sudo curl -L -o /etc/yum.repos.d/delorean.repo https://trunk.rdoproject.org/centos7-master/current-passed-ci/delorean.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   215  100   215    0     0    108      0  0:00:01  0:00:01 --:--:--   108
[stack@undercloud ~]$ sudo curl -L -o /etc/yum.repos.d/delorean-deps.repo https://trunk.rdoproject.org/centos7/delorean-deps.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

100   303  100   303    0     0    317      0 --:--:-- --:--:-- --:--:--   316

Por ultimó crear el repositorio current de forma manual, aqui es MUY importante antes de poner los URL verificarlos desde un navegador, https://trunk.rdoproject.org/centos7/current/
se deben visualizar los paquetes del repositorio


Si se pueden observar los paquetes creamos el repositorio de forma manual de la siguiente forma:

[stack@undercloud ~]$ sudo vi /etc/yum.repos.d/delorean-current.repo
[delorean-current]
name=delorean-openstack-tempest-f6b8de2dad0ecf1ff3c9de383be5f12c873fcfa2
baseurl=https://trunk.rdoproject.org/centos7/current/
enabled=1
gpgcheck=0
priority=1

includepkgs=diskimage-builder,instack,instack-undercloud,os-apply-config,os-collect-config,os-net-config,os-refresh-config,python-tripleoclient,openstack-tripleo-common*,openstack-tripleo-heat-templates,openstack-tripleo-image-elements,openstack-tripleo,openstack-tripleo-puppet-elements,openstack-puppet-modules,openstack-tripleo-ui,puppet-*


Verificamos que todos los repositorios esten bien creados y que contengan paquetes

[stack@undercloud ~]$ sudo yum repolist



[stack@undercloud ~]$ sudo yum -y install yum-plugin-priorities
[stack@undercloud ~]$ sudo yum install epel-release -y

2.6 Instalación del paquete TripleO

[stack@undercloud ~]$ sudo yum install python-tripleoclient -y

Transaction Summary
=====================================================================================================================
Install  1 Package (+370 Dependent packages)

Total download size: 124 M
Installed size: 495 M
Downloading packages:
...
...

3. Configuración y despliegue del Undercloud 


3.1 Obtener el archivo de ejemplo del paquete para conocer los diferentes parámetros:

[stack@undercloud ~]$ cp /usr/share/instack-undercloud/undercloud.conf.sample ~/undercloud.conf
[stack@undercloud ~]$ vi ~/undercloud.conf

3.2 Editar el archivo de configuración, en mi caso con estos parámetros:
[DEFAULT]
local_ip = 172.25.249.200/24
undercloud_public_vip = 172.25.249.201
undercloud_admin_vip = 172.25.249.202
local_interface = eth1
masquerade_network = 172.25.249.0/24
dhcp_start = 172.25.249.51
dhcp_end = 172.25.249.59
network_cidr = 172.25.249.0/24
network_gateway = 172.25.249.200
inspection_iprange = 172.25.249.150,172.25.249.180
generate_service_certificate = true
undercloud_debug = false
enable_telemetry = false
#enable_ui =  true  # requere cert

#undercloud_service_certificate = /etc/pki/instack-certs/undercloud.pem

De donde es importante destacar los siguiente valores:


  • La red 172.25.249.0/24 es una red completamente nueva, no habíamos hablado de ella hasta ahora, esta red será por la cual se realizara el despliegue de la overcloud podemos ver parámetros de dhcp y rangos de inspección asociados a estas IPs 172.25.249.X
  • El parámetro local_interface hace referencia a la interfase eth1 que dejamos sin configuración al momento de alistar la red, pues esta interfase será re configurada por el proceso de instalación de ahí la importancia que esta sea una tarjeta de red destinada únicamente para el proceso de despliegue  


IMPORTANTE
Les recomiendo que en este punto antes de continuar realizar un snapshot de la maquina virtual, ya que en caso que llegue a fallar nuestra instalación del undercloud, tenemos un punto de retorno, o mas aun si es para un ambiente productivo y se requieren cambiar los direccionamientos IP, simplemente cambiamos el archivo undercloud.conf y desplegamos de nuevo

También garantizar que la maquina resuelva nombres y salga a internet

[stack@undercloud ~]$ ping www.google.com -c 3
PING www.google.com (172.217.30.196) 56(84) bytes of data.
64 bytes from bog02s08-in-f4.1e100.net (172.217.30.196): icmp_seq=1 ttl=128 time=22.9 ms
64 bytes from bog02s08-in-f4.1e100.net (172.217.30.196): icmp_seq=2 ttl=128 time=21.2 ms
64 bytes from bog02s08-in-f4.1e100.net (172.217.30.196): icmp_seq=3 ttl=128 time=27.5 ms

--- www.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 21.232/23.914/27.549/2.665 ms


3.3 Finalmente ejecutamos el comando 

[stack@undercloud ~]$ openstack undercloud install
...
...
2018-03-27 14:20:52,302 INFO: Configuring Mistral workbooks
2018-03-27 14:21:11,990 INFO: Mistral workbooks configured successfully
2018-03-27 14:22:49,934 INFO: Configuring an hourly cron trigger for tripleo-ui logging
2018-03-27 14:22:52,838 INFO:
#############################################################################
Undercloud install complete.

The file containing this installation's passwords is at
/home/stack/undercloud-passwords.conf.

There is also a stackrc file at /home/stack/stackrc.

These files are needed to interact with the OpenStack services, and should be
secured.

#############################################################################


[stack@undercloud ~]$

3.4 Verificación de la instalación


[stack@undercloud ~]$ source stackrc
(undercloud) [stack@undercloud ~]$ openstack service list
+----------------------------------+------------------+-------------------------+
| ID                               | Name             | Type                    |
+----------------------------------+------------------+-------------------------+
| 13dca3fb404c42aa87fc4e50f6717fe4 | glance           | image                   |
| 277823e0c04940c2bd5a06dcf46aa508 | heat             | orchestration           |
| 30b77ef74fd645f79be4bcdd0b5531a3 | neutron          | network                 |
| 3c22fa6da5184c1aa650660ba6cbce06 | mistral          | workflowv2              |
| 4fd5224cd50049f5a642728f3aaf8496 | nova             | compute                 |
| 5a03678830f94bdfbb9b46124adcde65 | zaqar-websocket  | messaging-websocket     |
| 8539988c2bcf48a4af923d99d15b0fd3 | heat-cfn         | cloudformation          |
| 862498e4ed4541efbda1555b38bcb6d8 | swift            | object-store            |
| 8f8ee87dfc944e39a1c6eb4741fe85e7 | ironic-inspector | baremetal-introspection |
| c4a02b724b2741cea60d910bb9cb6d4a | ironic           | baremetal               |
| db1ee4802dbd479a830cafe5e0f04e67 | zaqar            | messaging               |
| e18e8f08c9eb4af39db35e53d3c1c995 | keystone         | identity                |
| f92a3d3c69bf400482fd58381ab92717 | placement        | placement               |
+----------------------------------+------------------+-------------------------+




como material de apoyo se utilizo informacion de este blog en ingles:
https://www.linuxtechi.com/install-tripleo-undercloud-centos-7/








No hay comentarios:

Publicar un comentario