| ... | ... | @@ -4,9 +4,42 @@ |
|
|
|
|
|
|
|
Previo al día de la migración (2 días antes) avisar a los usuarios que existirá no disponibilidad del servicio por un tiempo de 2 horas. Se manda un comunicado a la lista nubeinterior@listas.softwarelibre.edu.uy que se encuentra actualizada.
|
|
|
|
|
|
|
|
## Adecuación de variables para instalar Nextcloud en Debian 10
|
|
|
|
|
|
|
|
Primero se configuran las host vars de Candombe, servidor elegido para poner en producción la nube. Concretamente, se creo un nuevo directorio en host_vars/candombe.interior.edu.uy y se definieron y ajustaron variables en vars y vaults de la siguiente manera:
|
|
|
|
* Parámetros de configuración del LXC (vars/10_lxc_container.yml).
|
|
|
|
* Le damos 8 GB de RAM, 4 GB de Swap y le definimos un disco de 2GB sobre el volúmen NFS nubes.
|
|
|
|
* **url_ostemplate**. Indicamos la template de sistema operativo que vamos a utilizar (en este caso Debian 10).
|
|
|
|
* **pve_additional_conf**. Dado que Apache (servicio que vamos a instalar) requiere que se le asigne algunos permisos especiales de acceso al kernel del nodo, fue necesario activar la característica nesting del LXC mediante esta variable.
|
|
|
|
* Parámetros de configuración del Nextcloud (vars/40_nextcloud.yml).
|
|
|
|
* **nextcloud_version_major** y **nextcloud_db_backend**. Se configuran estos valores para instalar un NC 10, con conexión a base Postgres. Partimos de esta versión porque queremos ir hacia un NextCloud y tenemos en nube.interior un Owncloud 9.1. Por más información, leer [este enlace](https://nextcloud.com/migration/).
|
|
|
|
* **nextcloud_db_admin**. En Halley, el rol/usuario de Postgres que usa Owncloud para conectarse a la base es oc2016. En Candombe vamos a poner en marcha 2 instancias de Posgres distintas (9.6 y 11). Al correr el playbook se instalará un Postgres 11 y se creará el rol/usuario de Postgres ncadmin que utilizaremos al finalizar la migración.
|
|
|
|
* **nextcloud_config_settings**. Debido a que estamos realizando una tarea de migración, algunos parámetros de configuración de la vieja instalación deben mantenerse como con sus valores originales como: instanceid, passwordsalt y secret. Además se incorporarán a la configuración parámetros inherentes a la vieja instalación que el rol por defecto no define. También se descartará el parámetro mysql.utf8mb4 ya que se trabajará con una base Postgres.
|
|
|
|
* **nextcloud_disable_websrv_default_site**. Esta variable se pone en True para desacctivar el default Virtual Host de Apache.
|
|
|
|
* Certbot (vars/30_certbot.yml)
|
|
|
|
* Backkupc (vars/60_backuppc.yml)
|
|
|
|
* Zabbix (vars/50_zabbix.yml)
|
|
|
|
* Claves seguras para los servicios (vaults/main.yml). Concretamente guardamos los passwords del usuario root del SO, del usuario de conexión Postgres y del usuario administrador del Nextcloud.
|
|
|
|
|
|
|
|
Para definir a nivel del Nodo las reglas de firewall que se aplicarán sobre el host Candombe, creamos el nuevo archivo config/files/firewall_proxmox/etc/pve/firewall/cadombe.fw, imitando el definido para Chivito. Básicamente se abren los puertos necesarios para un Webserver (80 y 443).
|
|
|
|
|
|
|
|
Además, se agrega el nuevo host dentro de nuestro inventario de servicios en producción, concretamente agregamos candombe.interior.edu.uy dentro de los grupos **seciu_contenedores_botija, seciu_certbot, seciu_nube y seciu_backup** de hosts_prod. Recordamos que hemos tomado la decisión de destinar **Botija** para los servicios dinámicos críticos de producción.
|
|
|
|
|
|
|
|
Por otro lado, la última versión del rol de la galaxia de Nextcloud que estamos usando es la **1.3.5**. Esta versión es antigua en 6 meses y no funciona para Buster. El soporte para Buster se encuentra en la master del correspondiente repositorio Github del rol y fue incluído en [este commit](https://github.com/aalaesar/install_nextcloud/commit/8aee88212d97859baf54db87adf84714fa929bbe). Por esa razón se edita el requirements para instalar Nextcloud a partir del poryecto Github:
|
|
|
|
|
|
|
|
```
|
|
|
|
...
|
|
|
|
# src: aalaesar.install_nextcloud
|
|
|
|
- src: https://github.com/aalaesar/install_nextcloud
|
|
|
|
scm: git
|
|
|
|
...
|
|
|
|
```
|
|
|
|
|
|
|
|
A raíz de esto fue necesario editar config_host.yml debido al cambio en el nombre del rol.
|
|
|
|
|
|
|
|
## Actualización de la rama 41 con los últimos cambios hechos en master
|
|
|
|
|
|
|
|
Primero que nada procedemos a actualizar nuestra rama de trabajo con lo que contiene master:
|
|
|
|
Antes de crear o recrear el LXC, primero que nada procedemos a actualizar nuestra rama de trabajo con lo que contiene master:
|
|
|
|
|
|
|
|
```
|
|
|
|
git checkout master
|
| ... | ... | @@ -18,7 +51,7 @@ git merge master |
|
|
|
|
|
|
|
En caso de que no se logre un merge automático, será necesario resolver los conflictos de forma manual.
|
|
|
|
|
|
|
|
Luego conviene descargarnos los últimas versiones de los distintos repositorios que utilizamos y están hospedados en Github. Para esto podemos utilizar un nuevo rol específicamente diseñado para esto o los siguientes comandos (pullDeTodo.sh):
|
|
|
|
Luego conviene descargarnos los últimas versiones de los distintos repositorios que utilizamos y están hospedados en Github. Para esto podemos utilizar un nuevo rol específicamente diseñado para esto (FIXME) o los siguientes comandos (pullDeTodo.sh):
|
|
|
|
|
|
|
|
```
|
|
|
|
git pull
|
| ... | ... | @@ -35,30 +68,26 @@ done |
|
|
|
|
|
|
|
## Creación del contenedor Candombe mediante Ansible
|
|
|
|
|
|
|
|
Primero se configuran las host vars de Candombe. Concretamente, se creo un nuevo directorio en host_vars/candombe.interior.edu.uy y se definieron y ajustaron variables en vars y vaults de la siguiente manera:
|
|
|
|
Previo a la creación del contenedor, inspirados en [esta estrategia](https://git.interior.edu.uy/adminsys/config/wikis/actualizacion-lxc-en-pve6), se deben revisar y/o ajustar las siguientes cosas:
|
|
|
|
* Parámetros de configuración del LXC (vars/10_lxc_container.yml).
|
|
|
|
* Le damos 8 GB de RAM, 4 GB de Swap y le definimos un disco de 2GB sobre el volúmen NFS nubes.
|
|
|
|
* **hwaddr**. Inicialmente, en la configuración de la interfaz de red net0, este parámetro que define la dirección MAC del dispositivo, debe estar comentado. Esto se debe a que no podemos asignarle una dirección MAC de forma aleatoria al host, dado que esta será definida por el Cluster.
|
|
|
|
* Parámetros de configuración del Nextcloud (vars/40_nextcloud.yml).
|
|
|
|
* **nextcloud_version_major** y **nextcloud_db_backend**. Se configuran estos valores para instalar un NC 10, con conexión a base Postgres. Partimos de esta versión porque queremos ir hacia un NextCloud y tenemos en nube.interior un Owncloud 9.1. Por más información, leer [este enlace](https://nextcloud.com/migration/).
|
|
|
|
* **nextcloud_db_admin**. En Halley, el usuario Postgres que usa Owncloud para conectarse a la base es oc2016. Por esa razón y para simplificar la migración de la base de datos, definimos el mismo usuario en Candombe. De esta manera, se creará ese usuario en Postgres que permitirá que el Nextcloud se conecte a la base de datos.
|
|
|
|
* **nextcloud_config_settings**. Debido a que estamos realizando una tarea de migración, algunos parámetros de configuración de la vieja instalación deben mantenerse como con sus valores originales como: instanceid, passwordsalt y secret. Además se incorporarán a la configuración parámetros inherentes a la vieja instalación que el rol por defecto no define. También se descartará el parámetro mysql.utf8mb4 ya que se trabajará con una base Postgres.
|
|
|
|
* Certbot (vars/30_certbot.yml)
|
|
|
|
* Backkupc (vars/60_backuppc.yml)
|
|
|
|
* Zabbix (vars/50_zabbix.yml)
|
|
|
|
* Claves seguras para los servicios (vaults/main.yml). Concretamente guardamos los passwords del usuario root del SO, del usuario de conexión Postgres y del usuario administrador del Nextcloud.
|
|
|
|
* Dado que el servidor aún no es alias de nube.interior.edu.uy, se debe remover dicho domiminio dentro de la configuración de Certbot en las host vars de Candombe. Concretamente se descomenta la línea nube.interior.edu.uy para el parámetro domains de la variable certbot_certs en 30_cerbot.yml.
|
|
|
|
* Known_hosts. Si el contenedor ya fue creado con anterioridad y lo vamos a recrear debemos eliminarlo de nuestro archivo local known_hosts, de lo contrario el playbook fallará al correrlo dado que el host se encuentrará registrado en dicho fichero con un antiguo fingerprint. Para eso hacemos lo siguiente:
|
|
|
|
|
|
|
|
Para definir a nivel del Nodo las reglas de firewall que se aplicarán sobre el host Candombe, creamos el nuevo archivo config/files/firewall_proxmox/etc/pve/firewall/cadombe.fw, imitando el definido para Chivito. Básicamente se abren los puertos necesarios para un Webserver (80 y 443).
|
|
|
|
|
|
|
|
Además, se agrega el nuevo host dentro de nuestro inventario de servicios en producción, concretamente agregamos candombe.interior.edu.uy dentro de los grupos **seciu_contenedores_botija, seciu_certbot, seciu_nube y seciu_backup** de hosts_prod.
|
|
|
|
```
|
|
|
|
ssh-keygen -f "/home/apias/.ssh/known_hosts" -R 164.73.98.70
|
|
|
|
ssh-keygen -f "/home/apias/.ssh/known_hosts" -R candombe.interior.edu.uy
|
|
|
|
ssh-keygen -f "/home/apias/.ssh/known_hosts" -R 2001:1328:6a::70
|
|
|
|
```
|
|
|
|
|
|
|
|
Se crea el contenedor y se instala el NC mediante el rol de la galaxia de nuestro repositorio Github, ejecutando el playbook site.yml de la siguiente manera:
|
|
|
|
Luego, se crea el contenedor y se instala el NC mediante el rol de la galaxia de nuestro repositorio Github, ejecutando el playbook site.yml de la siguiente manera:
|
|
|
|
|
|
|
|
`ansible-playbook site.yml --limit candombe.interior.edu.uy -i hosts_prod`
|
|
|
|
|
|
|
|
Una vez creado el container, nos fijamos que MAC le asignó el cluster para ahora sí darle un valor al parámetro **hwaddr** en la configuración de la interfaz de red net0 en vars/10_lxc_container.yml.
|
|
|
|
|
|
|
|
## Configurar Firewall perimetral
|
|
|
|
## Configurar Firewall
|
|
|
|
|
|
|
|
Desde el navegador accedemos a la interfaz gráfica del Firewall Mikrotick de la nueva plataforma en http://chinchulin.interior.edu.uy.
|
|
|
|
|
| ... | ... | |
| ... | ... | |