Grup 3 - Posada en producció classVRroom dockeritzat (Azure)

De Wiket
Salta a la navegació Salta a la cerca

Tornar a Projecte IETI Cloud - Grup 3.

Tasca

Posada en producció de la web d'higiene postural dockeritzada sobre cloud extern (Azure).

Informe

Posarem en producció el nostre WordPress prèviament desplegat en local sobre una màquina virtual amb sistema operatiu Ubuntu dins d'Azure.

Migració de local a cloud extern

En primer lloc, instal·lem Docker i Docker Compose dins la nova màquina virtual d'Azure.

sudo apt-get install docker.io docker-compose

Un cop tenim Docker instal·lat, podem transferir els arxius del projecte mitjançant scp.

scp -i (private key) ./docker-compose.yml (user)@(ip):~/wp-higiene-postural/docker-compose.yml
scp -i (private key) ./mysql_db_password.txt (user)@(ip):~/wp-higiene-postural/mysql_db_password.txt
scp -i (private key) ./mysql_root_password.txt (user)@(ip):~/wp-higiene-postural/mysql_root_password.txt

Una vegada hem transferit els arxius del projecte a Azure, encara falta transferir les dades contingudes dins els volums cap a la màquina virtual d'Azure. Amb Docker podem realitzar backups dels nostres volums en local, que després podrem enviar a Azure i restaurar des d'allà. Amb els contenidors actius podem realitzar aquests backups mitjançant tar amb la següent comanda:

tar czf ./backup_db_data.tar.gz -C /var/lib/docker/volumes/ wp-higiene-postural_db_data
tar czf ./backup_wordpress_data.tar.gz -C /var/lib/docker/volumes/ wp-higiene-postural_wordpress_data

Tot just tinguem els backups, els podem enviar també amb scp cap a la màquina d'Azure.

scp -i (private key) backup_db_data.tar.gz (user)@(ip):~/wp-higiene-postural/backup_db_data.tar.gz
scp -i (private key) backup_wordpress_data.tar.gz (user)@(ip):~/wp-higiene-postural/backup_wordpress_data.tar.gz

Finalment, haurem de descomprimir els backups al directori /var/lib/docker/volumes/ de la màquina virtual d'Azure.

sudo tar xzf ./backup_db_data.tar.gz -C /var/lib/docker/volumes/
sudo tar xzf ./backup_wordpress_data.tar.gz -C /var/lib/docker/volumes/

Ajustament de wp_options dins de MySQL

Després del punt anterior ens mancarà però solucionar un problema habitual relatiu a l'instal·lació de WordPress. A l'haver instal·lat WordPress en local, dins la base de dades ha quedat la direcció localhost:8000 guardada com a direcció de la pàgina, això provocarà que els enllaços interns de la pàgina de WordPress reencaminin o intentin buscar recursos dins el localhost, en comptes del nostre servidor Azure. Per solucionar aquest problema ens connectarem al contenidor mitjançant la shell amb docker exec:

docker exec -ti (nomdelcontenidor) /bin/bash

Un cop a dins del shell del contenidor de MySQL podem connectar-nos directament amb la contrasenya present al fitxer de Docker Secrets i solucionar el problema:

$> mysql -u root -p
Enter Password: (contrasenya de l'usuari root)
USE wordpress;
UPDATE wp_options SET option_value = "http://(ip):(port)" WHERE option_name LIKE 'siteurl' OR option_name LIKE 'home';

Referències