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 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 wp-higiene-postural_db_1 /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';