| ... | ... | @@ -119,7 +119,50 @@ Vamos IP, Firewall, Adress Lists y agreamos una entrada para la lista de direcci |
|
|
|
|
|
|
|
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
|
|
|
|
La instalación se hace de acuerdo a su [documentación oficial](https://www.postgresql.org/download/linux/debian/), utilizando los repositorios oficiales de Postgres para Debian.
|
|
|
|
|
|
|
|
Agregamos la clave del repositorio y lo configuramos:
|
|
|
|
|
|
|
|
```
|
|
|
|
curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
|
|
|
|
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
|
|
|
|
```
|
|
|
|
|
|
|
|
Lanzamos el update y verificamos que el paquete esté disponible para instalar.
|
|
|
|
|
|
|
|
```
|
|
|
|
sudo apt-get update
|
|
|
|
apt-cache search postgresql-9.6
|
|
|
|
```
|
|
|
|
|
|
|
|
Se hace un respaldo de la base de datos:
|
|
|
|
|
|
|
|
`pg_dump pg_dump nextcloud > nexcloudpg11-upg11-12-030220.sql `
|
|
|
|
|
|
|
|
Se instala Postgres 9.6:
|
|
|
|
|
|
|
|
`sudo apt-get install postgresql-9.6`
|
|
|
|
|
|
|
|
Inmediatamente después nos aparece un mensaje de que esta versión está obsoleta y que ya no se le dará soporte.
|
|
|
|
|
|
|
|
Inicialmente, la versión 9.6 de Postgres quedará escuchando en el puerto 5433, mientras que la 11 en el puerto 5432. Por un tema de practicidad en la operativo con Postgres, se invierten los puertos, quedando la 9.6 en el 5432, y la 11 en el 5433.
|
|
|
|
|
|
|
|
Además se deja solo la instancia 9.6 activa para evitar confusiones:
|
|
|
|
|
|
|
|
```
|
|
|
|
sudo systemctl stop postgresql@11-main
|
|
|
|
sudo systemctl restart postgresql@9.6-main
|
|
|
|
```
|
|
|
|
|
|
|
|
En Halley, el rol/usuario de 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, creamos un rol con el mismo nombre en Postgres (con cualquier contraseña) y se crea la base de datos nextcloud (mismo nombre usado en las host_vars).
|
|
|
|
|
|
|
|
```
|
|
|
|
su - postgres
|
|
|
|
createuser --no-superuser --pwprompt oc2016
|
|
|
|
createdb --encoding=UNICODE --owner=oc2016 nextcloud
|
|
|
|
```
|
|
|
|
|
|
|
|
## Detener servicios y preparar directorios en Candonmbe
|
|
|
|
|
|
|
|
Poner el Nextcloud en mantenimiento y detener el servicio web (Apache) y el cron:
|
|
|
|
|
| ... | ... | @@ -130,8 +173,6 @@ service apache2 stop |
|
|
|
service cron stop
|
|
|
|
```
|
|
|
|
|
|
|
|
## Preparar directorios y archivos en Candombe
|
|
|
|
|
|
|
|
Para la restauración de los datos desde los respaldos, es necesario borrar el contenido del directorio ncdata:
|
|
|
|
|
|
|
|
```
|
| ... | ... | @@ -197,7 +238,7 @@ Se copia este respaldo a Candombe: |
|
|
|
|
|
|
|
## Segunda restauración de archivos
|
|
|
|
|
|
|
|
se hace una nueva copia de datos en frío desde Halley a Candombe:
|
|
|
|
Se hace una nueva copia de datos en frío desde Halley a Candombe:
|
|
|
|
|
|
|
|
```
|
|
|
|
screen
|
| ... | ... | @@ -206,7 +247,7 @@ rsync -arvz --progress --delete /var/www/owncloud/data/ root@candombe.interior.e |
|
|
|
|
|
|
|
Esta última sincronización no debería demorar más de 15 minutos.
|
|
|
|
|
|
|
|
## Restauración de la base de datos
|
|
|
|
## Restauración de la base de datos (en paralelo con la tarea anterior)
|
|
|
|
|
|
|
|
Volvemos a Candombe. Con el usuario root se reubica el dump de la base de datos:
|
|
|
|
|
| ... | ... | @@ -215,18 +256,17 @@ cp /root/postgres_dump_owncloud_XX.sql /var/lib/postgresql/ |
|
|
|
chown postgres:postgres /var/lib/postgresql/postgres_dump_owncloud_XX.sql
|
|
|
|
```
|
|
|
|
|
|
|
|
El role Nextcloud nos creó en Postgres una base de datos **nextcloud** y un role **oc2016**. La base de datos creada no nos sirve, la borramos y creamos una nueva vacía e importamos allí los datos:
|
|
|
|
Actualmente en Postgres tenemos una base de datos **nextcloud** (vacía) y un role **oc2016**. A continuación importamos lo datos provenientes del dump. Inmediatamente después y durante cada paso de los upgrades, conviene hacer un respaldo manual de la base de datos.
|
|
|
|
|
|
|
|
```
|
|
|
|
su - postgres
|
|
|
|
dropdb nextcloud
|
|
|
|
createdb --encoding=UNICODE --owner=oc2016 nextcloud
|
|
|
|
psql nextcloud < postgres_dump_owncloud_XX.sql
|
|
|
|
pg_dump nextcloud > nextcloud10-antesupinicial-XX.sql
|
|
|
|
```
|
|
|
|
|
|
|
|
## Ajustes en la configuración
|
|
|
|
|
|
|
|
Para mejorar la configuración, el rol de Postgres que definimos para instalar Nextcloud (oc2016) será renombrado por **ncadmin** que resulta más acorde a la nueva instalación. Entonces, se ejecuta un alterrole para cambiar el role oc2016 por ncadmin y para definirle la misma password que está almacenada en los vaults:
|
|
|
|
Para mejorar la configuración e irnos preparando al futuro pasaje a Postgres 11, el rol que definimos para instalar Nextcloud (oc2016) será renombrado por **ncadmin** que resulta más acorde a la nueva instalación. Entonces, se ejecuta un alterrole para cambiar el role oc2016 por ncadmin y para definirle la misma password que está almacenada en los vaults:
|
|
|
|
|
|
|
|
```
|
|
|
|
psql nextcloud;
|
| ... | ... | @@ -235,20 +275,7 @@ ALTER ROLE oc2016 RENAME TO ncadmin; |
|
|
|
ALTER ROLE ncadmin WITH password '*claveVaults*';
|
|
|
|
```
|
|
|
|
|
|
|
|
Se edita el archivo de configuración config.php para indicar que el dbuser ahora es **ncadmin**.
|
|
|
|
|
|
|
|
Además, es necesario modificar las host vars de Candombe para que este sea efectivamente respaldado. Concretamente se modifico la variable nextcloud_db_admin en 40_nextcloud.yml:
|
|
|
|
|
|
|
|
```
|
|
|
|
#nextcloud_db_admin: "oc2016"
|
|
|
|
nextcloud_db_admin: "ncadmin"
|
|
|
|
```
|
|
|
|
|
|
|
|
Luego lanzamos el playbook para reconfigurar respaldos:
|
|
|
|
|
|
|
|
`ansible-playbook site.yml --limit candombe.interior.edu.uy --tags backuppc_client -i hosts_prod`
|
|
|
|
|
|
|
|
Se prueba hacer un primer respaldo y se verifica que no surjan errores.
|
|
|
|
Dado que en las host vars de Candombee la variable nextcloud_db_admin ya está seteada en ncadmin, no será necesario ajustar variables ni editar el archivo de configuración config.php de Nextcloud
|
|
|
|
|
|
|
|
## Encender servicios en Candombe
|
|
|
|
|
| ... | ... | @@ -267,8 +294,12 @@ Finalmente ejecutamos la herramienta occ de línea de comandos para realizar el |
|
|
|
```
|
|
|
|
sudo -u www-data php occ upgrade
|
|
|
|
sudo -u www-data php occ maintenance:mode --off
|
|
|
|
service cron start
|
|
|
|
```
|
|
|
|
|
|
|
|
Inmediatamente después conviene quedarnos quedarnos con un respaldo de la base de datos actual:
|
|
|
|
`postgres@candombe:~$ pg_dump nextcloud > nextcloud10-UpIniHecho-040220.sql `
|
|
|
|
|
|
|
|
Logramos poner en marcha el Nextcloud en https://candombe.interior.edu.uy/
|
|
|
|
|
|
|
|
## Verificación de las actualizaciones
|
| ... | ... | |
| ... | ... | |