| ... | ... | @@ -4,6 +4,36 @@ |
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
## Comentarios sobre el rol elegido para instalar Nextcloud en Debian 10
|
|
|
|
|
|
|
|
La última versión del rol de la galaxia de Nextcloud que estabamos 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ída 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.
|
|
|
|
|
|
|
|
Por otro lado, para Buster, el rol instala por defecto Php 7.3. Sin embargo, a través de algunas variables es posible especificar otra versión de Php a instalar como lo indica [la documentación](https://github.com/aalaesar/install_nextcloud#system-configuration). Siguiendo estas indicaciones se agregan las variables **php_custom**, **php_ver**, etc dentro de las host_vars de candombe para instalar Php 7.0:
|
|
|
|
|
|
|
|
```
|
|
|
|
php_custom: yes
|
|
|
|
php_version: '7.0'
|
|
|
|
php_ver: "{{ php_version }}"
|
|
|
|
```
|
|
|
|
|
|
|
|
(Cabe aclarar que la variable php_custom se usa en la versión 1.3.5 (galaxia) del rol pero no se le da ningún uso en la última versión de la rama master del repositorio Github correspondiente)
|
|
|
|
|
|
|
|
Sin embargo, esta configuración no termina de funcionar porque la variable **php_ver** está definida en las vars del rol con el valor 7.3 para Buster, y dado que las vars de un rol le ganan en precedencia las host_vars, el valor que gana es el 7.3. Para solucionar esto, al momento de correr el playbook site.yml se le decide pasar **php_ver** como una variable extra.
|
|
|
|
|
|
|
|
Pero por otro lado, en los repositorios de Debian Buster no hay un candidato para instalar Php 7.0. Para solucionar esto y poder instalar esta versión de Php, se va a configurar de forma temporal el repositorio de [Sury para Php](https://packages.sury.org/php/) mediante el rol apt_repos ([esta simple guía](https://warlord0blog.wordpress.com/2019/01/02/php-7-0-on-debian-buster/) fue de utilidad).
|
|
|
|
|
|
|
|
En este caso, si bien estamos agregando un repositorio por fuera de la Debian, la estrategia seguida es la más adecuada. Dado que se requiere Php 7.0 solo para las etapas iniciales e intermedias del proceso de upgrades del Owncloud/Nextcloud y dado que el rol install_nextcloud ya instala Php y que solo con el agregado de un repositorio extra, logramos instalar la versión deseada de este paquete, se decide configurar este repositorio extra y forzar la instalación de Php 7.0. Al finalizar el proceso de upgrades, la versión Php que quedará instalada será la 7.3 (para Nextcloud 16), por lo cual, ya no será necesario el uso de este repositorio. Dado que el repositorio se configurará de forma temporal, no amerita usar otro rol más para este host.
|
|
|
|
|
|
|
|
## 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:
|
| ... | ... | @@ -16,6 +46,10 @@ Primero se configuran las host vars de Candombe, servidor elegido para poner en |
|
|
|
* **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.
|
|
|
|
* **php_custom, php_ver**. Mediante esta variables y otras más descriptas en [esta documentación](https://github.com/aalaesar/install_nextcloud#system-configuration) se indica la versión específica de Php a instalar que en este caso será 7.0.
|
|
|
|
* Repos (var/20_apt_repos.yml)
|
|
|
|
* **apt_repos_management**. Se activa esta variable para que el rol apt_repos maneje los repositorios del host. El resultado será que se configurarán por defectos nuestros repositorios (repos.interior.edu.uy) para Buster en el host.
|
|
|
|
* **apt_repositories_extra:**. Para poder instalar en Buster Php en versión 7.0, será necesario configurar de forma temporal el repositorio extra de [Sury para Php](https://packages.sury.org/php/) mediante el rol apt_repos.
|
|
|
|
* Certbot (vars/30_certbot.yml)
|
|
|
|
* Backkupc (vars/60_backuppc.yml)
|
|
|
|
* Zabbix (vars/50_zabbix.yml)
|
| ... | ... | @@ -25,18 +59,6 @@ Para definir a nivel del Nodo las reglas de firewall que se aplicarán sobre el |
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
Antes de crear o recrear el LXC, primero que nada procedemos a actualizar nuestra rama de trabajo con lo que contiene master:
|
| ... | ... | @@ -81,9 +103,9 @@ 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
|
|
|
|
```
|
|
|
|
|
|
|
|
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:
|
|
|
|
Luego, se crea el contenedor y se instala el NC mediante el rol tomado desde su repositorio Github, ejecutando el playbook site.yml (pasandole la versión de php a instalar por parámetro) de la siguiente manera:
|
|
|
|
|
|
|
|
`ansible-playbook site.yml --limit candombe.interior.edu.uy -i hosts_prod`
|
|
|
|
`ansible-playbook site.yml -vv --limit candombe.interior.edu.uy -i hosts_prod --extra-vars "php_ver=7.0"`
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
| ... | ... | @@ -93,14 +115,19 @@ Desde el navegador accedemos a la interfaz gráfica del Firewall Mikrotick de la |
|
|
|
|
|
|
|
Vamos IP, Firewall, Adress Lists y agreamos una entrada para la lista de direcciones "web" correspondientes al nombre de dominio de Candombe (candombe.interior.edu.uy). De esta manera quedarán abiertos los puertos 80 y 443 para Candombe a traves de Chinchulin.
|
|
|
|
|
|
|
|
## Instalación de Potgres 9.6
|
|
|
|
|
|
|
|
Dado que para Debian Buster, la versión de Postgres instalable desde los repositorios Debian es la 11 y debido a la imcopatbilidad de esta versión con las versiones de Nextcloud anteriores a la 16, se hace necesario instalar Postgres 9.6 para iniciar la migración y actualización del Nextcloud.
|
|
|
|
|
|
|
|
## Detener servicios en Candonmbe
|
|
|
|
|
|
|
|
Poner el Nextcloud en mantenimiento y detener el servicio web (Apache):
|
|
|
|
Poner el Nextcloud en mantenimiento y detener el servicio web (Apache) y el cron:
|
|
|
|
|
|
|
|
```
|
|
|
|
cd /opt/nextcloud
|
|
|
|
sudo -u www-data php occ maintenance:mode --on
|
|
|
|
service apache2 stop
|
|
|
|
service cron stop
|
|
|
|
```
|
|
|
|
|
|
|
|
## Preparar directorios y archivos en Candombe
|
| ... | ... | |
| ... | ... | |