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 típic problema de WordPress. A l'haver instal·lat WordPress en local, dins la base de dades s'ha quedat guardat localhost:8000 guardat com a direcció de la pàgina i per tant ens reaccionarà o intentarà buscar recursos dins el localhost. Per solucionar això ens connectarem al contenidor mitjançant la shell:

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