Grup 3 - Posada en producció classVRroom dockeritzat (Azure)
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';
Posada en marxa
Un cop seguits els passos anteriors, aixecar el WordPress serà tan senzill com realitzar un docker-compose up -d
, que automàticament agafarà les dades emmagatzemades als volums que hem transferit, mantenint tota la nostra configuració tal com estava en local.