vagrant-esxi #1

Merged
nserrano merged 62 commits from vagrant-esxi into main 2023-09-18 13:53:40 +02:00

Descripción

Primera versión para el despliegue automático de una rama de Opengnsys en el entorno de ESXI.

En esta primera versión se replica el flujo actual que existía mediante el despliegue de Vagrants para Virtual Box.

  • Jenkins project Deploy-devel-
  • Se ha configurado ognproject.evlt.uma.es como agente del Jenkins situado en un contenedor
  • Una vez se despliega el servidor se configura un acceso web a la rama mefiante la URL https://ognproject.evlt.uma.es/BRANCH siendo BRANCH la rama que corresponda.
  • El trabajo de Jenkins espera como parametro el BRANCH que se quiere desplegar.

Requerimientos:

  • Se ha instalado en la máquina agente (ognproject) los siguientes componentes.
    • esxcli (Requiere registro en VmWare)
    • ovftool (Requiere Registro en VmWare)
    • vagrant
    • plugin para Vagrant https://github.com/josenk/vagrant-vmware-esxi
    • Permisos al usuario "user" para ejecutar comandos de docker.
    • Creación de los siguientes secrets en Jenkins
      • VI_PASSWORD --> Password para conectar al ESXI
      • GITEA_TOKEN --> Token para descargar el instalador de la rama correspondiente y que pertenece al usuario unizar del gitea, en concreto al token "test-token"
      • ognproject-ssh-private-key --> Clave privada correspondiente al usuario unizar, que se utiliza para que se pueda operar en los repos de gitea y se corresponde con la clave pública Jenkins-pubkey. Está protegida por clave por lo que hay que añadirla a un agente para poder operar con ella.
    • Hay creada una plantilla en el ESXI (Ubuntu-18-template-image) que se usa para provisionar los servidores de Opengnsys. Esta plantilla sólo tiene instalado Ubuntu 18.04 y las utilidades de VMware.
    • Hay creada una plantilla en el ESXI (cli) que se puede usar para el despliegue de los clientes.

Funcionaniento

Revisar el script definido en el job de Jenkins pero básicamente:

  1. Setear variables de entorno y conjunto de claves públicas.
  2. Crear el portgroup para el despliegue mediante el script provision_esxi_net.sh (toma como parametro el nombre que se le quiere dar al portgroup)
  3. Levantar el servidor de opengnsys mediante vagrant up
  4. Configurar el proxy reverso en ognproject mediante el comando setup-proxy.sh

Limitaciones errores conocidos.

  • Actualmente el job de Jenkins detecta mal cuando falla alguno de los pasos. El resultado del job es Ok, aunque haya habido algún fallo.
  • El despliegue de las máquinas cliente no esta automatizado aún debido a limitaciones de Vagrant y ESXI, ahora mismo se realiza de manera manual. Se puede automatizar, pero provocaría que el despliegue con Vagrant fallara, ya que la máquinas no se ponen nunca en running. Para arrancarlas de forma manual, hay que tener en cuenta que hay que setear la MAC address correspondiente y asignarla al portgroup correcto.
  • Los tamaños de los discos empleados no tienen porque ser los correctos, hay que revisarlo.
  • El job de Jenkins debería mandar un email con la URL de acceso al servidor de Opengnsys y (si se puede), la IP dentro del ESXI que es necesaria.
# Descripción Primera versión para el despliegue automático de una rama de Opengnsys en el entorno de ESXI. En esta primera versión se replica el flujo actual que existía mediante el despliegue de Vagrants para Virtual Box. - [Jenkins project Deploy-devel-](http://ognproject.evlt.uma.es:8080/job/Deploy-devel-environment/) - Se ha configurado ognproject.evlt.uma.es como agente del Jenkins situado en un contenedor - Una vez se despliega el servidor se configura un acceso web a la rama mefiante la URL https://ognproject.evlt.uma.es/BRANCH siendo BRANCH la rama que corresponda. - El trabajo de Jenkins espera como parametro el BRANCH que se quiere desplegar. Requerimientos: - Se ha instalado en la máquina agente (ognproject) los siguientes componentes. - esxcli (Requiere registro en VmWare) - ovftool (Requiere Registro en VmWare) - vagrant - plugin para Vagrant https://github.com/josenk/vagrant-vmware-esxi - Permisos al usuario "user" para ejecutar comandos de docker. - Creación de los siguientes secrets en Jenkins - VI_PASSWORD --> Password para conectar al ESXI - GITEA_TOKEN --> Token para descargar el instalador de la rama correspondiente y que pertenece al usuario unizar del gitea, en concreto al token "test-token" - ognproject-ssh-private-key --> Clave privada correspondiente al usuario unizar, que se utiliza para que se pueda operar en los repos de gitea y se corresponde con la clave pública Jenkins-pubkey. Está protegida por clave por lo que hay que añadirla a un agente para poder operar con ella. - Hay creada una plantilla en el ESXI (Ubuntu-18-template-image) que se usa para provisionar los servidores de Opengnsys. Esta plantilla sólo tiene instalado Ubuntu 18.04 y las utilidades de VMware. - Hay creada una plantilla en el ESXI (cli) que se puede usar para el despliegue de los clientes. # Funcionaniento **Revisar el script definido en el job de Jenkins** pero básicamente: 1. Setear variables de entorno y conjunto de claves públicas. 2. Crear el portgroup para el despliegue mediante el script provision_esxi_net.sh (toma como parametro el nombre que se le quiere dar al portgroup) 3. Levantar el servidor de opengnsys mediante vagrant up 4. Configurar el proxy reverso en ognproject mediante el comando setup-proxy.sh # Limitaciones errores conocidos. - Actualmente el job de Jenkins detecta mal cuando falla alguno de los pasos. El resultado del job es Ok, aunque haya habido algún fallo. - El despliegue de las máquinas cliente no esta automatizado aún debido a limitaciones de Vagrant y ESXI, ahora mismo se realiza de manera manual. Se puede automatizar, pero provocaría que el despliegue con Vagrant fallara, ya que la máquinas no se ponen nunca en running. Para arrancarlas de forma manual, hay que tener en cuenta que hay que setear la MAC address correspondiente y asignarla al portgroup correcto. - Los tamaños de los discos empleados no tienen porque ser los correctos, hay que revisarlo. - El job de Jenkins debería mandar un email con la URL de acceso al servidor de Opengnsys y (si se puede), la IP dentro del ESXI que es necesaria.
opengnsys added 60 commits 2023-09-15 08:53:45 +02:00
Opengnsys/opengnsys/pipeline/head This commit looks good Details
feba34d7b7
Misses gitea user in script
Opengnsys/opengnsys/pipeline/head This commit looks good Details
2e4784aec2
Try to stop vm as soon as possible
lgromero was assigned by opengnsys 2023-09-15 08:53:57 +02:00
nserrano was assigned by opengnsys 2023-09-15 08:53:57 +02:00
opengnsys requested review from lgromero 2023-09-15 08:54:26 +02:00
opengnsys requested review from nserrano 2023-09-15 08:54:26 +02:00
opengnsys added 1 commit 2023-09-15 10:52:29 +02:00
Opengnsys/opengnsys/pipeline/head This commit looks good Details
Opengnsys/opengnsys/pipeline/pr-main This commit looks good Details
bf3f1ed889
Fix keypass
lgromero approved these changes 2023-09-15 13:03:37 +02:00
nserrano added 1 commit 2023-09-18 13:52:33 +02:00
Opengnsys/opengnsys/pipeline/head This commit looks good Details
3513239c10
Trivial additions
nserrano merged commit 9df8dc97c2 into main 2023-09-18 13:53:40 +02:00
nserrano deleted branch vagrant-esxi 2023-11-17 15:16:54 +01:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: opengnsys/opengnsys#1
There is no content yet.