Diferència entre revisions de la pàgina «WoSeBerry - Manual de usuarios»
(Hi ha 12 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 == | ||
− | |||
+ | 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 == | ||
− | |||
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 === | |
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 | ||
− | |||
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 === | |
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 | + | 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 | + | 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 | + | 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 === | |
+ | |||
+ | 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 [[#Informe de cada servidor|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: | ||
+ | |||
+ | <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