Diferència entre revisions de la pàgina «WoSeBerry - Manual de usuarios»

De Wiket
Salta a la navegació Salta a la cerca
 
(Hi ha 10 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
  
 
== Manual de usuario estándar ==
 
== Manual de usuario estándar ==
Operativa del servicio ...
 
  
 +
En este proyecto el usuario estándar de la aplicación no requiere ningún tipo de manual, ya que el FrontEnd es una simple página web con una tienda online a la que accederá mediante el navegador.
 +
 +
En dicha página web, el usuario podrá realizar las cosas habituales de una tienda online, tales como:
 +
 +
* Visualizar artículos de venta
 +
* Registrarse en la web
 +
* Añadir productos al "carrito" y comprarlos
 +
* Ver sus pedidos realizados
  
 
== Manual de usuario administrador ==
 
== Manual de usuario administrador ==
  
=== Scripts de mantenimiento ===
 
 
Dado que el usuario administrador tendrá la obligación de asegurar el funcionamiento correcto en esta infraestructura, dispondrá de una carpeta llamada '''''Scripts''''' en su home. Esta carpeta dispone de una serie de scripts que facilitarán tareas como:
 
Dado que el usuario administrador tendrá la obligación de asegurar el funcionamiento correcto en esta infraestructura, dispondrá de una carpeta llamada '''''Scripts''''' en su home. Esta carpeta dispone de una serie de scripts que facilitarán tareas como:
  
Línia 12: Línia 18:
 
* Realizar un backup de las bases de datos
 
* Realizar un backup de las bases de datos
 
* Comprobar el número de nodos activos en el clúster MariaDB
 
* Comprobar el número de nodos activos en el clúster MariaDB
 +
* Visualizar un informe del estado de cada servidor
  
==== Sincronizar contenido multimedia entre WordPress ====
+
=== Sincronizar contenido multimedia entre WordPress ===
 
El comando de este script es idéntico al que se ha programado en el demonio ''crontab'' de las BERRY-02 y BERRY-03 para que se ejecute cada 15 minutos. Sin embargo, si el usuario administrador ha añadido nuevos archivos y desea realizar la sincronización en ese instante, podrá hacerlo mediante dicho script:
 
El comando de este script es idéntico al que se ha programado en el demonio ''crontab'' de las BERRY-02 y BERRY-03 para que se ejecute cada 15 minutos. Sin embargo, si el usuario administrador ha añadido nuevos archivos y desea realizar la sincronización en ese instante, podrá hacerlo mediante dicho script:
  
Línia 19: Línia 26:
 
  rsync -ahvrz /var/www/html/wp-content/uploads/* [email protected]:/var/www/html/wp-content/uploads
 
  rsync -ahvrz /var/www/html/wp-content/uploads/* [email protected]:/var/www/html/wp-content/uploads
 
  rsync -ahvrz [email protected]:/var/www/html/wp-content/uploads/* /var/www/html/wp-content/uploads  
 
  rsync -ahvrz [email protected]:/var/www/html/wp-content/uploads/* /var/www/html/wp-content/uploads  
<pre style="color: red">Porqué ese segundo comando?</pre>
 
 
  echo -e "\nSincronización de la carpeta uploads realizada correctamente."
 
  echo -e "\nSincronización de la carpeta uploads realizada correctamente."
  
Para ejecutarlo, el usuario administrador tan solo deberá ejecutar el siguiente comando:
+
De esta manera, se comprobarán los archivos y directorios que hay distintos en la BERRY-03 con respecto a la BERRY-02 y viceversa. Para ejecutarlo, el usuario administrador tan solo deberá ejecutar el siguiente comando:
  
 
  '''pi@BERRY-02:~$''' bash /home/pi/Scripts/sincronizarWordpress.sh
 
  '''pi@BERRY-02:~$''' bash /home/pi/Scripts/sincronizarWordpress.sh
  
==== Realizar un backup de la base de datos ====
+
=== Realizar un backup de la base de datos ===
 
Por defecto, se realizará una copia de seguridad de la base de datos '''''wordpress''''' todos los días a las 4:00 am. Sin embargo, al usuario administrador le puede resultar útil realizar dicha copia en un momento dado. Para facilitar esta tarea, se ha creado un script el cual realiza una copia de la base de datos, asignándole como nombre la fecha y la hora en la que se realizó. De esta manera, se hace distintiva de las copias de seguridad automáticas mediante el demonio ''crontab'':
 
Por defecto, se realizará una copia de seguridad de la base de datos '''''wordpress''''' todos los días a las 4:00 am. Sin embargo, al usuario administrador le puede resultar útil realizar dicha copia en un momento dado. Para facilitar esta tarea, se ha creado un script el cual realiza una copia de la base de datos, asignándole como nombre la fecha y la hora en la que se realizó. De esta manera, se hace distintiva de las copias de seguridad automáticas mediante el demonio ''crontab'':
  
Línia 32: Línia 38:
 
   
 
   
 
  echo -e "\nIntroduce el nodo en el cual quieres realizar la copia de seguridad:"
 
  echo -e "\nIntroduce el nodo en el cual quieres realizar la copia de seguridad:"
  echo -e "\t1) BERRY-04
+
  echo -e "\t1) BERRY-04"
  echo -e "\t1) BERRY-05
+
  echo -e "\t1) BERRY-05"
  echo -e "\t1) BERRY-06
+
  echo -e "\t1) BERRY-06"
 +
echo -e "Opción:[_]\b\b\c"
 
  read nodo
 
  read nodo
 
   
 
   
 
  case $nodo in
 
  case $nodo in
         1) mysqldump -h BERRY-04.woseberry.tk --user=pi --password=woseberry wordpress > /home/pi/backups/backup_wordpress_$(date "+%d-%m-%Y_%H:%M:%S").sql
+
         1) mysqldump -h 192.168.30.4 --user=pi --password=woseberry wordpress > /home/pi/backups/backup_wordpress_$(date "+%d-%m-%Y_%H:%M:%S").sql;;
         2) mysqldump -h BERRY-05.woseberry.tk --user=pi --password=woseberry wordpress > /home/pi/backups/backup_wordpress_$(date "+%d-%m-%Y_%H:%M:%S").sql
+
         2) mysqldump -h 192.168.30.5 --user=pi --password=woseberry wordpress > /home/pi/backups/backup_wordpress_$(date "+%d-%m-%Y_%H:%M:%S").sql;;
         3) mysqldump -h BERRY-06.woseberry.tk --user=pi --password=woseberry wordpress > /home/pi/backups/backup_wordpress_$(date "+%d-%m-%Y_%H:%M:%S").sql
+
         3) mysqldump -h 192.168.30.6 --user=pi --password=woseberry wordpress > /home/pi/backups/backup_wordpress_$(date "+%d-%m-%Y_%H:%M:%S").sql;;
 
  esac
 
  esac
 
   
 
   
Línia 48: Línia 55:
 
  '''$''' bash /home/pi/Scripts/backupsWordpress.sh
 
  '''$''' bash /home/pi/Scripts/backupsWordpress.sh
  
==== Comprobar el número de nodos activos en el clúster MariaDB ====
+
=== Comprobar el número de nodos activos en el clúster MariaDB ===
  
 
Siempre que el usuario administrador quiera saber el número de nodos que hay operativos en el clúster, tan solo deberá ejecutar la siguiente sentencia SQL desde las BERRY-04, BERRY-05 o BERRY-06:
 
Siempre que el usuario administrador quiera saber el número de nodos que hay operativos en el clúster, tan solo deberá ejecutar la siguiente sentencia SQL desde las BERRY-04, BERRY-05 o BERRY-06:
Línia 64: Línia 71:
 
De lo contrario, alguno de los nodos que forman el clúster estará fallando, por lo que se deberá revisar la causa de este fallo. Para ello, podrá utilizar el [[#Informe de cada servidor|script que genera un informe]] de todos los servidores y así saber en que Raspberry se está produciendo el fallo.
 
De lo contrario, alguno de los nodos que forman el clúster estará fallando, por lo que se deberá revisar la causa de este fallo. Para ello, podrá utilizar el [[#Informe de cada servidor|script que genera un informe]] de todos los servidores y así saber en que Raspberry se está produciendo el fallo.
  
==== Informe de cada servidor ====
+
Sin embargo, para facilitar la tarea al administrador de acordarse de esta sentencia, dispondrá de un script que realice la misma operación:
 +
 
 +
#!/bin/bash
 +
 +
mysql -u pi -pwoseberry -e 'SELECT VARIABLE_VALUE as "Núm. nodos" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"
 +
 
 +
=== Informe de cada servidor ===
 +
 
 +
Para que el usuario administrador sepa en todo momento el estado de cada Raspberry, dispondrá de un script el cual se conecte remotamente a cada servidor y compruebe los servicios. De esta manera, visualizando el informe comprobará que todos los servicios estén funcionando correctamente. De lo contrario, sabrá qué servicio está fallando y el servidor donde se está produciendo el fallo:
 +
 
 +
<pre>
 +
#!/bin/bash
 +
 
 +
function comprobarBERRY-01(){
 +
echo "ESTADO DE LA BERRY-01:"
 +
 
 +
# Comprobar el servicio haproxy
 +
if [  $(ps -ef | grep -v grep | grep haproxy | wc -l) -ge 1 ]; then
 +
echo -e "\tHAProxy: OK"
 +
else
 +
echo -e "\tHAProxy: KO"
 +
fi
 +
   
 +
    # Comprobar el servicio bind9
 +
if [  $(ps -ef | grep -v grep | grep bind | wc -l) -ge 1 ]; then
 +
echo -e "\tBind9 (DNS): OK"
 +
else
 +
echo -e "\tBind9 (DNS): KO"
 +
fi
 +
   
 +
    # Comprobar el enrutamiento
 +
if [ $(cat /proc/sys/net/ipv4/ip_forward) -eq 0 ]; then
 +
echo -e "\tEnrutamiento: KO"
 +
else
 +
echo -e "\tEnrutamiento: OK"
 +
fi
 +
   
 +
    # Comprobar la salida a Internet
 +
ping -q -c2 8.8.8.8 > /dev/null
 +
 +
if [ $? -eq 0 ]; then
 +
echo -e "\tInternet: OK"
 +
else
 +
echo -e "\tInternet: KO"
 +
fi
 +
}
 +
 
 +
function comprobarBERRY-02(){
 +
echo -e "\nESTADO DE LA BERRY-02:"
 +
   
 +
# Comprobar el servicio de apache2
 +
if [ $(ssh [email protected] ps -ef | grep -v grep | grep apache | wc -l) -ge 1 ]; then
 +
echo -e "\tApache: OK"
 +
else
 +
echo -e "\tApache: KO"
 +
fi
 +
 
 +
    # Comprobar la salida a Internet
 +
ssh [email protected] ping -q -c2 8.8.8.8 > /dev/null
 +
 +
if [ $? -eq 0 ]; then
 +
echo -e "\tInternet: OK"
 +
else
 +
echo -e "\tInternet: KO"
 +
fi
 +
}
 +
 
 +
function comprobarBERRY-03(){
 +
echo -e "\nESTADO DE LA BERRY-03:"
 +
   
 +
# Comprobar el servicio de apache2
 +
if [ $(ssh [email protected] ps -ef | grep -v grep | grep apache | wc -l) -ge 1 ]; then
 +
echo -e "\tApache: OK"
 +
else
 +
echo -e "\tApache: KO"
 +
fi
 +
 
 +
    # Comprobar la salida a Internet
 +
ssh [email protected] ping -q -c2 8.8.8.8 > /dev/null
 +
 +
if [ $? -eq 0 ]; then
 +
echo -e "\tInternet: OK"
 +
else
 +
echo -e "\tInternet: KO"
 +
fi
 +
}
 +
 
 +
function comprobarBERRY-04(){
 +
echo -e "\nESTADO DE LA BERRY-04:"
 +
 
 +
# Comprobar el servicio de mysql
 +
if [ $(ssh [email protected] ps -ef | grep -v grep | grep mysql | wc -l) -ge 1 ]; then
 +
echo -e "\tMySQL: OK"
 +
else
 +
echo -e "\tMySQL: KO"
 +
fi
 +
   
 +
    # Comprobar la salida a Internet
 +
ssh [email protected] ping -q -c2 8.8.8.8 > /dev/null
 +
 +
if [ $? -eq 0 ]; then
 +
echo -e "\tInternet: OK"
 +
else
 +
echo -e "\tInternet: KO"
 +
fi
 +
}
 +
 
 +
function comprobarBERRY-05(){
 +
echo -e "\nESTADO DE LA BERRY-05:"
 +
 
 +
# Comprobar el servicio de mysql
 +
if [ $(ssh [email protected] ps -ef | grep -v grep | grep mysql | wc -l) -ge 1 ]; then
 +
echo -e "\tMySQL: OK"
 +
else
 +
echo -e "\tMySQL: KO"
 +
fi
 +
   
 +
    # Comprobar la salida a Internet
 +
ssh [email protected] ping -q -c2 8.8.8.8 > /dev/null
 +
 +
if [ $? -eq 0 ]; then
 +
echo -e "\tInternet: OK"
 +
else
 +
echo -e "\tInternet: KO"
 +
fi
 +
}
 +
 
 +
function comprobarBERRY-06(){
 +
echo -e "\nESTADO DE LA BERRY-06:"
 +
 
 +
# Comprobar el servicio de mysql
 +
if [ $(ssh [email protected] ps -ef | grep -v grep | grep mysql | wc -l) -ge 1 ]; then
 +
echo -e "\tMySQL: OK"
 +
else
 +
echo -e "\tMySQL: KO"
 +
fi
 +
   
 +
    # Comprobar la salida a Internet
 +
ssh [email protected] ping -q -c2 8.8.8.8 > /dev/null
 +
 +
if [ $? -eq 0 ]; then
 +
echo -e "\tInternet: OK"
 +
else
 +
echo -e "\tInternet: KO"
 +
fi
 +
}
 +
 
 +
clear
 +
 
 +
comprobarBERRY-01
 +
comprobarBERRY-02
 +
comprobarBERRY-03
 +
comprobarBERRY-04
 +
comprobarBERRY-05
 +
comprobarBERRY-06
 +
</pre>

Revisió de 18:02, 25 maig 2018

Manual de usuario estándar

En este proyecto el usuario estándar de la aplicación no requiere ningún tipo de manual, ya que el FrontEnd es una simple página web con una tienda online a la que accederá mediante el navegador.

En dicha página web, el usuario podrá realizar las cosas habituales de una tienda online, tales como:

  • Visualizar artículos de venta
  • Registrarse en la web
  • Añadir productos al "carrito" y comprarlos
  • Ver sus pedidos realizados

Manual de usuario administrador

Dado que el usuario administrador tendrá la obligación de asegurar el funcionamiento correcto en esta infraestructura, dispondrá de una carpeta llamada Scripts en su home. Esta carpeta dispone de una serie de scripts que facilitarán tareas como:

  • Sincronizar contenido multimedia entre WordPress
  • Realizar un backup de las bases de datos
  • Comprobar el número de nodos activos en el clúster MariaDB
  • Visualizar un informe del estado de cada servidor

Sincronizar contenido multimedia entre WordPress

El comando de este script es idéntico al que se ha programado en el demonio crontab de las BERRY-02 y BERRY-03 para que se ejecute cada 15 minutos. Sin embargo, si el usuario administrador ha añadido nuevos archivos y desea realizar la sincronización en ese instante, podrá hacerlo mediante dicho script:

#!/bin/bash
rsync -ahvrz /var/www/html/wp-content/uploads/* [email protected]:/var/www/html/wp-content/uploads
rsync -ahvrz [email protected]:/var/www/html/wp-content/uploads/* /var/www/html/wp-content/uploads 
echo -e "\nSincronización de la carpeta uploads realizada correctamente."

De esta manera, se comprobarán los archivos y directorios que hay distintos en la BERRY-03 con respecto a la BERRY-02 y viceversa. Para ejecutarlo, el usuario administrador tan solo deberá ejecutar el siguiente comando:

pi@BERRY-02:~$ bash /home/pi/Scripts/sincronizarWordpress.sh

Realizar un backup de la base de datos

Por defecto, se realizará una copia de seguridad de la base de datos wordpress todos los días a las 4:00 am. Sin embargo, al usuario administrador le puede resultar útil realizar dicha copia en un momento dado. Para facilitar esta tarea, se ha creado un script el cual realiza una copia de la base de datos, asignándole como nombre la fecha y la hora en la que se realizó. De esta manera, se hace distintiva de las copias de seguridad automáticas mediante el demonio crontab:

#!/bin/bash

echo -e "\nIntroduce el nodo en el cual quieres realizar la copia de seguridad:"
echo -e "\t1) BERRY-04"
echo -e "\t1) BERRY-05"
echo -e "\t1) BERRY-06"
echo -e "Opción:[_]\b\b\c"
read nodo

case $nodo in
       1) mysqldump -h 192.168.30.4 --user=pi --password=woseberry wordpress > /home/pi/backups/backup_wordpress_$(date "+%d-%m-%Y_%H:%M:%S").sql;;
       2) mysqldump -h 192.168.30.5 --user=pi --password=woseberry wordpress > /home/pi/backups/backup_wordpress_$(date "+%d-%m-%Y_%H:%M:%S").sql;;
       3) mysqldump -h 192.168.30.6 --user=pi --password=woseberry wordpress > /home/pi/backups/backup_wordpress_$(date "+%d-%m-%Y_%H:%M:%S").sql;;
esac

echo -e "\n Backup realizado correctamente."

Para ejecutarlo, el usuario administrador tan solo deberá ejecutar el siguiente comando:

$ bash /home/pi/Scripts/backupsWordpress.sh

Comprobar el número de nodos activos en el clúster MariaDB

Siempre que el usuario administrador quiera saber el número de nodos que hay operativos en el clúster, tan solo deberá ejecutar la siguiente sentencia SQL desde las BERRY-04, BERRY-05 o BERRY-06:

$ sudo mysql -u root -p -e 'SELECT VARIABLE_VALUE as "Núm. nodos" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"'

De esta manera, si el cluster con Galera funciona correctamente, la salida del comando será la siguiente:

+-------------+
| Núm. nodos  |
+-------------+
| 3           |
+-------------+

De lo contrario, alguno de los nodos que forman el clúster estará fallando, por lo que se deberá revisar la causa de este fallo. Para ello, podrá utilizar el script que genera un informe de todos los servidores y así saber en que Raspberry se está produciendo el fallo.

Sin embargo, para facilitar la tarea al administrador de acordarse de esta sentencia, dispondrá de un script que realice la misma operación:

#!/bin/bash

mysql -u pi -pwoseberry -e 'SELECT VARIABLE_VALUE as "Núm. nodos" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"

Informe de cada servidor

Para que el usuario administrador sepa en todo momento el estado de cada Raspberry, dispondrá de un script el cual se conecte remotamente a cada servidor y compruebe los servicios. De esta manera, visualizando el informe comprobará que todos los servicios estén funcionando correctamente. De lo contrario, sabrá qué servicio está fallando y el servidor donde se está produciendo el fallo:

#!/bin/bash

function comprobarBERRY-01(){
	echo "ESTADO DE LA BERRY-01:"

	# Comprobar el servicio haproxy
	if [  $(ps -ef | grep -v grep | grep haproxy | wc -l) -ge 1 ]; then
		echo -e "\tHAProxy: OK"
	else
		echo -e "\tHAProxy: KO"
	fi
    
    # Comprobar el servicio bind9
	if [  $(ps -ef | grep -v grep | grep bind | wc -l) -ge 1 ]; then
		echo -e "\tBind9 (DNS): OK"
	else
		echo -e "\tBind9 (DNS): KO"
	fi
    
    # Comprobar el enrutamiento
	if [ $(cat /proc/sys/net/ipv4/ip_forward) -eq 0 ]; then
		echo -e "\tEnrutamiento: KO"
	else
		echo -e "\tEnrutamiento: OK"
	fi
    
    # Comprobar la salida a Internet
	ping -q -c2 8.8.8.8 > /dev/null
	 
	if [ $? -eq 0 ]; then
		echo -e "\tInternet: OK"
	else
		echo -e "\tInternet: KO"
	fi
}

function comprobarBERRY-02(){
	echo -e "\nESTADO DE LA BERRY-02:"
    
	# Comprobar el servicio de apache2
	if [ $(ssh [email protected] ps -ef | grep -v grep | grep apache | wc -l) -ge 1 ]; then
		echo -e "\tApache: OK"
	else
		echo -e "\tApache: KO"
	fi

    # Comprobar la salida a Internet
	ssh [email protected] ping -q -c2 8.8.8.8 > /dev/null
	 
	if [ $? -eq 0 ]; then
		echo -e "\tInternet: OK"
	else
		echo -e "\tInternet: KO"
	fi
}

function comprobarBERRY-03(){
	echo -e "\nESTADO DE LA BERRY-03:"
    
	# Comprobar el servicio de apache2
	if [ $(ssh [email protected] ps -ef | grep -v grep | grep apache | wc -l) -ge 1 ]; then
		echo -e "\tApache: OK"
	else
		echo -e "\tApache: KO"
	fi

    # Comprobar la salida a Internet
	ssh [email protected] ping -q -c2 8.8.8.8 > /dev/null
	 
	if [ $? -eq 0 ]; then
		echo -e "\tInternet: OK"
	else
		echo -e "\tInternet: KO"
	fi
}

function comprobarBERRY-04(){
	echo -e "\nESTADO DE LA BERRY-04:"

	# Comprobar el servicio de mysql
	if [ $(ssh [email protected] ps -ef | grep -v grep | grep mysql | wc -l) -ge 1 ]; then
		echo -e "\tMySQL: OK"
	else
		echo -e "\tMySQL: KO"
	fi
    
    # Comprobar la salida a Internet
	ssh [email protected] ping -q -c2 8.8.8.8 > /dev/null
	 
	if [ $? -eq 0 ]; then
		echo -e "\tInternet: OK"
	else
		echo -e "\tInternet: KO"
	fi
}

function comprobarBERRY-05(){
	echo -e "\nESTADO DE LA BERRY-05:"

	# Comprobar el servicio de mysql
	if [ $(ssh [email protected] ps -ef | grep -v grep | grep mysql | wc -l) -ge 1 ]; then
		echo -e "\tMySQL: OK"
	else
		echo -e "\tMySQL: KO"
	fi
    
    # Comprobar la salida a Internet
	ssh [email protected] ping -q -c2 8.8.8.8 > /dev/null
	 
	if [ $? -eq 0 ]; then
		echo -e "\tInternet: OK"
	else
		echo -e "\tInternet: KO"
	fi
}

function comprobarBERRY-06(){
	echo -e "\nESTADO DE LA BERRY-06:"

	# Comprobar el servicio de mysql
	if [ $(ssh [email protected] ps -ef | grep -v grep | grep mysql | wc -l) -ge 1 ]; then
		echo -e "\tMySQL: OK"
	else
		echo -e "\tMySQL: KO"
	fi
    
    # Comprobar la salida a Internet
	ssh [email protected] ping -q -c2 8.8.8.8 > /dev/null
	 
	if [ $? -eq 0 ]; then
		echo -e "\tInternet: OK"
	else
		echo -e "\tInternet: KO"
	fi
}

clear

comprobarBERRY-01
comprobarBERRY-02
comprobarBERRY-03
comprobarBERRY-04
comprobarBERRY-05
comprobarBERRY-06