Diferència entre revisions de la pàgina «Puesta en producción web higiene postural (Azure, AWS)»

De Wiket
Salta a la navegació Salta a la cerca
 
(Hi ha 30 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
Con referencia a la puesta en producción de la web de higiene postural en la plataforma '''Azure''', hemos realizado los mismos pasos que hicimos en el punto [https://wiket.esteveterradas.cat/index.php/Accesibilidad_externa_a_los_servicios_(Proxy_inverso,_WAF,_etc...) '''9. Accesibilidad a servicios externos'''] a la hora de levantar nuestros servicios, pero, con una pequeña peculiaridad. Esta peculiaridad, se trata de que comprimimos nuestros volúmenes de Docker con la herramienta '''tar''', con la finalidad de transferirlos posteriormente a nuestra '''máquina Azure''', descomprimirlos y levantar nuevamente los servicios solicitados con la información que ya teníamos antes en dichos volúmenes, es decir, sin perder ningún tipo de información y configuración que realizamos en su día.  
+
Con referencia a la puesta en producción de la web de higiene postural en la plataforma '''Azure''', hemos realizado los mismos pasos que hicimos en el punto [https://wiket.esteveterradas.cat/index.php/Accesibilidad_externa_a_los_servicios_(Proxy_inverso,_WAF,_etc...) '''9. Accesibilidad a servicios externos'''] a la hora de levantar nuestros servicios, pero, con una pequeña peculiaridad. Esta peculiaridad se trata de que comprimimos nuestros volúmenes de Docker con la herramienta '''tar''', con la finalidad de transferirlos posteriormente a nuestra '''máquina Azure''', descomprimirlos y levantar nuevamente los servicios solicitados con la información que ya teníamos antes en dichos volúmenes, es decir, sin perder ningún tipo de información y configuración que efectuamos en su día.  
  
  
Esto, lo realizaremos a partir de la herramienta '''SCP (Secure Copy Protocol)''', que como ya dice su nombre, se trata de una herramienta para copiar archivos de manera segura a otros equipos. Aclarado esto, dejémonos de rodeos y veamos como se hace.
+
Esto, lo llevaremos a cabo a partir de la herramienta '''SCP (Secure Copy Protocol)''', que como ya dice su nombre, se trata de una herramienta para copiar archivos de manera segura a otros equipos. Aclarado esto, dejémonos de rodeos y veamos como se hace.
  
 
+
=== Transferencia de los volúmenes Docker a máquina Azure ===
'''1)''' En primer lugar, tenemos que tener claro que los volúmenes de Docker se guardan por defecto en el directorio '''/var/lib/docker/volumes''' y que no podremos acceder a él si no somos '''root (súperadministrador)'''. Por dicha razón, deberemos iniciar sesión como '''root''' e intentar seguir todos los pasos que veamos sin errores, dado que, con un comando mal ejecutado podríamos afectar nuestro sistema.  
+
'''1)''' En primer lugar, tenemos que tener claro que los volúmenes de Docker se guardan por defecto en el directorio '''/var/lib/docker/volumes''' y que no podremos acceder a él si no somos '''root (súperadministrador)'''. Por dicha razón, deberemos iniciar sesión como '''root''' e intentar seguir todos los pasos que veamos sin errores, dado que, con un comando mal ejecutado, podríamos afectar nuestro sistema.  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
   sudo su
 
   sudo su
Línia 33: Línia 33:
  
  
'''4)''' Después de verificar la existencia de nuestros volúmenes, crearemos un directorio donde guardaremos todas las compresiones que realizaremos a nuestros volúmenes existentes. Para crear dicho directorio ejecutaremos el siguiente comando:
+
'''4)''' Después de comprobar la existencia de nuestros volúmenes, crearemos un directorio donde guardaremos todas las compresiones que realizaremos a nuestros volúmenes existentes. Para crear dicho directorio ejecutaremos el siguiente comando:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
   1. mkdir backup_volumenes
 
   1. mkdir backup_volumenes
Línia 51: Línia 51:
  
 
[[Fitxer:Compresion_Volumen_5.png|750px|center]]
 
[[Fitxer:Compresion_Volumen_5.png|750px|center]]
 +
 +
 +
'''6)''' Ulteriormente, cuando finalicemos de hacer todas las compresiones de nuestros volúmenes, procederemos a utilizar la herramienta '''SCP''' para hacer la transferencia del directorio que contiene todas estas compresiones. Dicho esto, deberemos retroceder un directorio atrás para apuntar correctamente al directorio que queremos transferir y, ejecutar un comando '''ping''' hacia la máquina a la que queremos hacerle dicha transferencia para verificar si tenemos comunicación con ella, si no, esta operación no funcionará.
 +
<syntaxhighlight lang="bash">
 +
  1. cd ..
 +
  2. ping <dirección IP de destino>
 +
</syntaxhighlight>
 +
 +
 +
En caso de que la comunicación sea exitosa, podremos proceder a hacer la transferencia de la siguiente manera:
 +
 +
''' ''¡NOTA!'' ---> Deberemos usar la misma clave privada que utilizamos para acceder a nuestra máquina Azure.'''
 +
 +
 +
''' Transferencia de ficheros'''
 +
<syntaxhighlight lang="bash">
 +
  3. scp -i <clave privada máquina Azure> <nombre fichero> <nombre de usuario destino>@<dirección IP del destino>:<ruta de destino>
 +
</syntaxhighlight>
 +
 +
 +
'''Transferencia de directorios'''
 +
<syntaxhighlight lang="bash">
 +
  3. scp -i <clave privada máquina Azure> -r <nombre directorio> <nombre de usuario destino>@<dirección IP del destino>:<ruta de destino>
 +
</syntaxhighlight>
 +
 +
 +
'''Nuestro caso'''
 +
<syntaxhighlight lang="bash">
 +
  3. scp -i ieti-cloud-grupo2_key.pem -r backup_volumenes [email protected]:/home/ieticloudgrupo2
 +
</syntaxhighlight>
 +
 +
 +
[[Fitxer:Transferencia_SCP_6.png|1150px|thumb|center|'''Ejemplo de transferencia con SCP''']]
 +
 +
 +
'''7)''' Ya casi acabando último, cuando tengamos todos nuestros volúmenes comprimidos en la máquina deseada, descomprimiremos '''cada uno de nuestros volúmenes''' en la ruta '''/var/lib/docker/volumes''' de la siguiente forma:
 +
<syntaxhighlight lang="bash">
 +
  1. cd backup_volumenes
 +
  2. tar xvf <nombre de unos de nuestros volúmenes comprimidos> -C /var/lib/docker/volumes
 +
</syntaxhighlight>
 +
 +
 +
[[Fitxer:Descompresion_Volumenes_7.png|750px|center|]]
 +
 +
 +
'''8)''' Por último, teniendo todos nuestros volúmenes descomprimidos en la ruta '''/var/lib/docker/volumes''', deberemos dirigirnos a la ruta '''/home/<nombre de nuestro usuario>''', crear un directorio con el mismo nombre que teníamos en nuestra máquina anterior '''(directorio donde se alojaba nuestro docker-compose.yml y Dockerfile)''' y arrancar los servicios con nuestro fichero '''docker-compose.yml''' y '''Dockerfile''' exactamente igual como hicimos en el punto [https://wiket.esteveterradas.cat/index.php/Accesibilidad_externa_a_los_servicios_(Proxy_inverso,_WAF,_etc...)#Implementaci.C3.B3n_de_los_servicios '''9. Accesibilidad a servicios externos''']:
 +
<syntaxhighlight lang="bash">
 +
  1. cd /home/<nombre de nuestro usuario>
 +
  2. mkdir <nombre de nuestro directorio en la anterior máquina>
 +
  3. docker-compose up -d
 +
</syntaxhighlight>
 +
 +
 +
=== Solución del problema de acceso al WordPress (wp_options) ===
 +
Una vez hayamos realizado la transferencia de nuestros volúmenes Docker con la información y configuración de nuestros servicios y lo hayamos puesto en marcha, es posible que tengamos un problema a la hora de iniciar nuestro WordPress nuevamente, ya que, la base de datos '''MySQL''' que está enlazada con él, tiene una dirección IP y puerto diferente al que tenemos ahora en nuestra máquina Azure. Por dicha razón, deberemos acceder a nuestro contenedor '''MySQL''' y cambiar un pequeño detalle. Veamos como se hace:
 +
 +
'''1)''' En primer lugar, ejecutaremos el comando '''docker ps -a''' para visualizar cada uno de nuestros contenedores en el sistema:
 +
<syntaxhighlight lang="bash">
 +
    sudo docker ps -a
 +
</syntaxhighlight>
 +
 +
 +
[[Fitxer:Visualizacion Contenedores 8.png|900px|center|]]
 +
 +
 +
'''2)''' Posteriormente, nos fijaremos cuál de ellos es nuestro contenedor '''MySQL''' y accederemos a el de la siguiente forma:
 +
<syntaxhighlight lang="bash">
 +
    docker exec -it <ID de nuestro contenedor || nombre de nuestro contenedor> /bin/bash
 +
</syntaxhighlight>
 +
 +
 +
[[Fitxer:Contenedor_MySQL_9.png|900px|center|]]
 +
 +
 +
'''3)''' Una vez nos encontremos dentro del contenedor '''MySQL''', accederemos a '''MySQL''' con nuestro usuario '''root''' de la siguiente forma:
 +
<syntaxhighlight lang="mysql">
 +
    1. mysql - u root -p
 +
    2. Enter password: <introducir la contraseña de nuestro usuario root MySQL>
 +
</syntaxhighlight>
 +
 +
 +
[[Fitxer:Acceso_Root_MySQL_10.png|750px|center|]]
 +
 +
 +
'''4)''' Ulteriormente, cuando ya hayamos accedido a '''MySQL''' con nuestro usuario '''root''', procederemos a actualizar la tabla '''wp_options''' de la siguiente manera para que tenga coherencia con la dirección IP y puerto de nuestra máquina Azure:
 +
 +
'''¡ATENCIÓN! ---> Utilizad vuestra respectiva base de datos en la línea marcada.'''
 +
<syntaxhighlight lang="mysql" highlight="1">
 +
    1. use ieti_wordpress;
 +
    2. UPDATE wp_options SET option_value = "http://(dirección IP de nuestro Azure):(puerto)" WHERE option_name LIKE 'siteurl' OR option_name LIKE 'home';
 +
</syntaxhighlight>
 +
 +
 +
[[Fitxer:WP_Options_Cambiado_11.png|750px|center|]]
 +
 +
 +
'''5)''' Por último, saldremos del contenedor '''MySQL''' con la combinación de teclas '''Control + D''' y detendremos y arrancaremos nuevamente nuestros servicios para que se apliquen todos los cambios. Para ello, ejecutaremos los comandos que veremos a continuación:
 +
<syntaxhighlight lang="bash">
 +
  1. sudo docker-compose down
 +
  2. sudo docker-compose up -d
 +
</syntaxhighlight>
 +
 +
 +
=== Webgrafía ===
 +
*[https://www.hostinger.com/tutorials/wordpress/how-to-change-wordpress-urls-in-mysql-database-using-phpmyadmin '''Información sobre el problema wp_options''']
 +
 +
 +
  
  
 
[https://wiket.esteveterradas.cat/index.php/Proyecto_IETI_Cloud_-_Grupo_2 Volver a '''IETI Cloud Grupo 2''']
 
[https://wiket.esteveterradas.cat/index.php/Proyecto_IETI_Cloud_-_Grupo_2 Volver a '''IETI Cloud Grupo 2''']

Revisió de 17:15, 3 abr 2022

Con referencia a la puesta en producción de la web de higiene postural en la plataforma Azure, hemos realizado los mismos pasos que hicimos en el punto 9. Accesibilidad a servicios externos a la hora de levantar nuestros servicios, pero, con una pequeña peculiaridad. Esta peculiaridad se trata de que comprimimos nuestros volúmenes de Docker con la herramienta tar, con la finalidad de transferirlos posteriormente a nuestra máquina Azure, descomprimirlos y levantar nuevamente los servicios solicitados con la información que ya teníamos antes en dichos volúmenes, es decir, sin perder ningún tipo de información y configuración que efectuamos en su día.


Esto, lo llevaremos a cabo a partir de la herramienta SCP (Secure Copy Protocol), que como ya dice su nombre, se trata de una herramienta para copiar archivos de manera segura a otros equipos. Aclarado esto, dejémonos de rodeos y veamos como se hace.

Transferencia de los volúmenes Docker a máquina Azure

1) En primer lugar, tenemos que tener claro que los volúmenes de Docker se guardan por defecto en el directorio /var/lib/docker/volumes y que no podremos acceder a él si no somos root (súperadministrador). Por dicha razón, deberemos iniciar sesión como root e intentar seguir todos los pasos que veamos sin errores, dado que, con un comando mal ejecutado, podríamos afectar nuestro sistema.

   sudo su


Inicio De Sesion Root 1.png


2) En segundo lugar, cuando hayamos iniciado como root, procederemos a dirigirnos al directorio donde Docker guarda por defecto los volúmenes que hemos creado en nuestro fichero docker-compose.yml. Para ello, ejecutaremos el siguiente comando:

   cd /var/lib/docker/volumes


Ruta Docker Volumes 2.png


3) Una vez nos encontremos en el directorio /var/lib/docker/volumes, con el comando ls podremos verificar cuantos volúmenes tenemos en total. En nuestro caso, tendremos un total de 9, los cuales se nombrarán con el nombre del directorio donde tengamos nuestro docker-compose.yml guardado más el nombre que le pusimos en la configuración del docker-compose.yml (normalmente aparecerán con el nombre de color azul):

   ls


Verificacion Volumenes 3.png


4) Después de comprobar la existencia de nuestros volúmenes, crearemos un directorio donde guardaremos todas las compresiones que realizaremos a nuestros volúmenes existentes. Para crear dicho directorio ejecutaremos el siguiente comando:

   1. mkdir backup_volumenes
   2. ls


Directorio BackupVolumenes 4.png


5) Posteriormente, accederemos al directorio que hemos creado y comenzaremos con las compresiones de cada uno de nuestros volúmenes. Para ello, ejecutaremos el siguiente comando que veremos a continuación con cada uno de los nombres de nuestros volúmenes:

   1. cd backup_volumenes
   2. tar cvf <nombre que le queramos dar a nuestra compresión> /var/lib/docker/volumes/<nombre del volumen a comprimir>


Compresion Volumen 5.png


6) Ulteriormente, cuando finalicemos de hacer todas las compresiones de nuestros volúmenes, procederemos a utilizar la herramienta SCP para hacer la transferencia del directorio que contiene todas estas compresiones. Dicho esto, deberemos retroceder un directorio atrás para apuntar correctamente al directorio que queremos transferir y, ejecutar un comando ping hacia la máquina a la que queremos hacerle dicha transferencia para verificar si tenemos comunicación con ella, si no, esta operación no funcionará.

   1. cd ..
   2. ping <dirección IP de destino>


En caso de que la comunicación sea exitosa, podremos proceder a hacer la transferencia de la siguiente manera:

¡NOTA! ---> Deberemos usar la misma clave privada que utilizamos para acceder a nuestra máquina Azure.


Transferencia de ficheros

   3. scp -i <clave privada máquina Azure> <nombre fichero> <nombre de usuario destino>@<dirección IP del destino>:<ruta de destino>


Transferencia de directorios

   3. scp -i <clave privada máquina Azure> -r <nombre directorio> <nombre de usuario destino>@<dirección IP del destino>:<ruta de destino>


Nuestro caso

   3. scp -i ieti-cloud-grupo2_key.pem -r backup_volumenes [email protected]:/home/ieticloudgrupo2


Ejemplo de transferencia con SCP


7) Ya casi acabando último, cuando tengamos todos nuestros volúmenes comprimidos en la máquina deseada, descomprimiremos cada uno de nuestros volúmenes en la ruta /var/lib/docker/volumes de la siguiente forma:

   1. cd backup_volumenes
   2. tar xvf <nombre de unos de nuestros volúmenes comprimidos> -C /var/lib/docker/volumes


Descompresion Volumenes 7.png


8) Por último, teniendo todos nuestros volúmenes descomprimidos en la ruta /var/lib/docker/volumes, deberemos dirigirnos a la ruta /home/<nombre de nuestro usuario>, crear un directorio con el mismo nombre que teníamos en nuestra máquina anterior (directorio donde se alojaba nuestro docker-compose.yml y Dockerfile) y arrancar los servicios con nuestro fichero docker-compose.yml y Dockerfile exactamente igual como hicimos en el punto 9. Accesibilidad a servicios externos:

   1. cd /home/<nombre de nuestro usuario>
   2. mkdir <nombre de nuestro directorio en la anterior máquina>
   3. docker-compose up -d


Solución del problema de acceso al WordPress (wp_options)

Una vez hayamos realizado la transferencia de nuestros volúmenes Docker con la información y configuración de nuestros servicios y lo hayamos puesto en marcha, es posible que tengamos un problema a la hora de iniciar nuestro WordPress nuevamente, ya que, la base de datos MySQL que está enlazada con él, tiene una dirección IP y puerto diferente al que tenemos ahora en nuestra máquina Azure. Por dicha razón, deberemos acceder a nuestro contenedor MySQL y cambiar un pequeño detalle. Veamos como se hace:

1) En primer lugar, ejecutaremos el comando docker ps -a para visualizar cada uno de nuestros contenedores en el sistema:

    sudo docker ps -a


Visualizacion Contenedores 8.png


2) Posteriormente, nos fijaremos cuál de ellos es nuestro contenedor MySQL y accederemos a el de la siguiente forma:

    docker exec -it <ID de nuestro contenedor || nombre de nuestro contenedor> /bin/bash


Contenedor MySQL 9.png


3) Una vez nos encontremos dentro del contenedor MySQL, accederemos a MySQL con nuestro usuario root de la siguiente forma:

    1. mysql - u root -p
    2. Enter password: <introducir la contraseña de nuestro usuario root MySQL>


Acceso Root MySQL 10.png


4) Ulteriormente, cuando ya hayamos accedido a MySQL con nuestro usuario root, procederemos a actualizar la tabla wp_options de la siguiente manera para que tenga coherencia con la dirección IP y puerto de nuestra máquina Azure:

¡ATENCIÓN! ---> Utilizad vuestra respectiva base de datos en la línea marcada.

    1. use ieti_wordpress;
    2. UPDATE wp_options SET option_value = "http://(dirección IP de nuestro Azure):(puerto)" WHERE option_name LIKE 'siteurl' OR option_name LIKE 'home';


WP Options Cambiado 11.png


5) Por último, saldremos del contenedor MySQL con la combinación de teclas Control + D y detendremos y arrancaremos nuevamente nuestros servicios para que se apliquen todos los cambios. Para ello, ejecutaremos los comandos que veremos a continuación:

   1. sudo docker-compose down
   2. sudo docker-compose up -d


Webgrafía



Volver a IETI Cloud Grupo 2