Respaldo de OpenGnsys de Triana

Anuncio
Servidor de respaldo de opengnsys:
Índice de contenido
Servidor de respaldo de opengnsys:.....................................................................................................1
Resumen......................................................................................................................................1
Proceso de sincronización la máquina de respaldo con triana....................................................1
Para ver la marcha de la sincronización .....................................................................................1
Eliminamos todas las posibilidades de que están los dos servicios iniciados a la vez................2
La autenticación en triana se realizará con clave pública..........................................................2
Script de copia de seguridad de la base de datos de triana..........................................................3
Script de syncronización de triana a 10.1.14.5:..........................................................................4
Script para iniciar de opengnsys.................................................................................................5
Cron en el hipervisor: arrancando la máquina virtual.................................................................5
Otros............................................................................................................................................5
Resumen.
Semanalmente se realizará una sincronización semanal de triana en el equipo 10.1.14.5 con el script
sincronizacion_triana en /home/cdc/bin.
Si queremos utilizar el servicio de opengnsys en el 10.1.14.5 como respaldo hemos de ejecutar el
script iniciar_opengnsys en /home/cdc/bin, que prepara la configuración del dhcp y el cron y
arranca los servicios opengnsys y dhcp.
Proceso de sincronización la máquina de respaldo con triana.
La máquina de respaldo estará normalmente parada.
En el fin de semana:
* En triana se hará un backup de la base de datos.
* Se arrancará la máquina virtual, que lanzará un script que compruebe si el servicio está
funcionando en triana y si está iniciado:
apaga los servicios de opengnsys y dhcpd (si están arrancados)
configura el dhcp para que no responda a ningún equipo.
borra el /etc/cron.d/opengnsys que activa los servicios si esta caído
realiza el respaldo de la configuración dhcp, de opengnsys y de la base de datos.
al acabar para la máquina virtual.
Se sincronizan:
/etc/dhcp/dhcpd.conf guardándolo en /etc/dhcpd/respaldo_triana
/opt/opengnsys → excluyendo directorio etc y el archivo www/controlacceso.php (lo copiamos al
directorio etc)
la base de datos ogAdmBD → los datos de triana se guardan en
/opt/opengnsys/doc/backup_ogAdmBD.sql
Para ver la marcha de la sincronización
El comando rsync al copiar los archivos crea primero un archivo temporal oculto y loago lo
renombra para ver qué archivo está sincronizando tenemos dos posibilidades:
lsof|grep /opt/opengnsys
rsync 1516
root cwd
rsync 1518
root cwd
rsync 1518
root 3u
DIR
DIR
REG
252,1
4096 8388609 /opt/opengnsys
252,1
4096 8388609 /opt/opengnsys
252,1 4734320640 8391702
/opt/opengnsys/images/.Win72012.img.JraISS
find /opt/opengnsys -name ".*"
/opt/opengnsys/images/groups/I2.35/.iptables
/opt/opengnsys/images/.Win72012.img.JraISS
Eliminamos todas las posibilidades de que están los dos servicios
iniciados a la vez.
Configuramos opengnsys y dhcp para que no arranquen al inicio
systemctl disable opengnsys.service
opengnsys.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig opengnsys off
systemctl disable dhcpd.service
rm '/etc/systemd/system/multi-user.target.wants/dhcpd.service'
La configuración del dhcp
No contiene ningún equipo
La configuración de triana se copia al directorio /etc/dhcpd/respaldo_triana
Existe un archivo /etc/dhcpd/dhcp.vacio.conf que se copia cuando se realiza el respaldo
En el cron:
Se elimina el cron.d/opengnsys que comprueba si el servicio está apagado y lo arranca.
Se modifica el cron.d/torrentcreator para que si sólo cree ficheros .torrent y .sum cuando está
arrancado el servicio opengnsys. (Aunque se ejecuta durante la sincronización los ficheros de
imágenes no se corrompen porque mientras se copias están ocultos).
#* * * * * root [ -x /opt/opengnsys/bin/torrent-creator ] && /opt/opengnsys/bin/torrent-creator
* * * * * root [ "$(pgrep ogAdmRepo | wc -w)" -gt "0" ] && /opt/opengnsys/bin/torrent-creator
En iniciar_opengnsys
Comprueba si el servicio está iniciado en triana, y en ese caso pregunta si queremos arrancarlo en
10.1.14.5.
La autenticación en triana se realizará con clave pública.
Se genera la clave pública en 10.1.14.5
ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
1d:77:ae:0b:62:50:4d:f3:cb:ab:1c:7e:28:38:9c:38 root@triana
The key's randomart image is:
+--[ DSA 1024]----+
|
o
|
|
o o
|
|
. o o . |
|
. . + +
|
|
. S . o . |
|
.
o
|
|
o oo o.o
|
|
E =..+.+..
|
|
. . .+..
|
+-----------------+
Se copia la clave publica a triana
ssh-copy-id -i /root/.ssh/id_dsa.pub root@10.1.14.5
root@10.1.14.5's password:
Now try logging into the machine, with "ssh 'root@10.1.14.5'", and check in:
~/.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
Comprobamos que en triana está la clave pública
cat /root/.ssh/authorized_keys
ssh-dss A ... M= root@opengnsys
Configurar el servicio ssh de triana para que permita la conexión. En /etc/ssh/sshd_config
PubkeyAuthentication yes
Script de copia de seguridad de la base de datos de triana.
/home/cdc/ bin/ backup_ogAdmBD
#!/bin/bash
# Descripción: hace copia de seguridad de la base de datos de opengnsys guardanadola en
/opt/opengnsys/doc.
# Uso:
backup_ogAdmBD (sin parametros)
CLAVE=$(grep cnx /opt/opengnsys/www/controlacceso.php| cut -d\" -f2|cut -d\; -f3)
DATE=$(date +%Y%m%d)
FILE="/opt/opengnsys/doc/backup_ogAdmBD.$DATE.sql"
LOGFILE="/var/log/messages"
mysqldump --opt -u ogadmin -p$CLAVE ogAdmBD >> $FILE
date +"%b %d %T opengnsys $(basename $0): Copia de seguridad realizada en $FILE" >>
$LOGFILE
/etc/cron.d/backup_ogAdmBD
0 0 * * 5 root [ -x /home/cdc/bin/backup_ogAdmBD ] && /home/cdc/bin/backup_ogAdmBD
Script de syncronización de triana a 10.1.14.5:
/home/cdc/bin/sincronizacion_triana
#!/bin/bash
# Descripcion: sincroniza con triana el directorio /opt/opengnsys (excluyendo el etc) y
#
la base de datos ogAdmBD
# Uso: sincronizacion_triana (sin parametros)
FILESAL="/var/log/respaldo_triana.log"
FILELOG="/var/log/messages"
CLAVE=$(grep cnx /opt/opengnsys/www/controlacceso.php| cut -d\" -f2|cut -d\; -f3)
FILE="/opt/opengnsys/doc/backup_ogAdmBD.sql"
RESPALDO="si"
TIME1=$SECONDS
# Comprobamos que triana esta funcionando bien: si tiene el puerto de ogAdmRepo abiertos
# Si esta bien hacemos el respaldo
tcping triana -u 600 2002 > /dev/null || RESPALDO="no"
if [ $RESPALDO == "no" ]; then
date +"%b %d %T opengnsys $(basename $0): ERROR triana no tiene opengnsys arrancado. No
realizamos la sincronizacion." | tee -a $FILESAL $FILELOG
else
date +"%b %d %T opengnsys $(basename $0): Comenzamos respaldo de opengnsys desde triana." |
tee -a $FILESAL $FILELOG
echo " * Apagamos los servicios" | tee -a $FILESAL
[ $(pgrep ogAdmRepo |wc -l) == "0" ] || systemctl stop opengnsys
[ $(pgrep dhcpd |wc -l) == "0" ] || systemctl stop dhcpd
echo " * Borramos archivo de cron que arranca los servicios de opengnsys" | tee -a $FILESAL
[ -r /etc/cron.d/opengnsys ] && rm -rf /etc/cron.d/opengnsys
echo " * La configuracion del dhcp la dejamos vacia. "| tee -a $FILESAL
cp -f /etc/dhcp/dhcpd.vacio.conf /etc/dhcp/dhcpd.conf
# DHCP
echo " * Sincronizamos configuracion dhcpd" | tee -a $FILESAL
[ -r /etc/dhcp/respaldo_triana/dhcpd.conf ] && mv -f /etc/dhcp/respaldo_triana/dhcpd.conf
/etc/dhcp/respaldo_triana/dhcpd.conf.ant
rsync -aHAX --delete root@triana:/etc/dhcp/dhcpd.conf /etc/dhcp/respaldo_triana 2>&1 | tee -a
$FILESAL
# Opengnsys
echo " * Sincronizamos opengnsys" | tee -a $FILESAL
rsync -aHAX --delete --exclude 'etc' root@triana:/opt/opengnsys/ /opt/opengnsys 2>&1 | tee -a
$FILESAL
cp /opt/opengnsys/etc/controlacceso.php /opt/opengnsys/www/controlacceso.php
# MYSQL
echo " * Actualizamos la base de datos de opengnsys" | tee -a $FILESAL
mysql -u ogadmin -p$CLAVE ogAdmBD < $FILE 2>&1 | tee -a $FILESAL
TIME=$[SECONDS-TIME1]
date +"%b %d %T opengnsys $(basename $0): Respaldo de opengnsys desde triana finalizado." | tee
-a $FILESAL $FILELOG
date +"%b %d %T opengnsys $(basename $0): Duracion de la operacion $[TIME/60]m $[TIME
%60]s." | tee -a $FILESAL $FILELOG
# Despues del respaldo apagamos la maquina
# poweroff
fi
/etc/cron.d/sincronizacion_triana.cron
30 2 * * 5 root [ -x /home/cdc/bin/sincronizacion_triana] &&
/home/cdc/bin/sincronizacion_triana
Script para iniciar de opengnsys.
/home/cdc/bin/iniciar_opengnsys
#!/bin/bash
# Descripcion: Prepara el equipo antes de iniciar el servicio de opengngsys respaldo de triana y lo
inicia.
#
* Crea en el cron que se comprueben los servicios de opengnsys.
#
* Copia configuración dhcp
#
* Arranca los servicios opengnsys y dhcp
#
* Comenta en el cron la sincronizacion con triana
# Uso: inicio_opengnsys (sin parametros)
FILESAL="/var/log/respaldo_triana.log"
FILELOG="/var/log/messages"
# Comprobamos que triana esta funcionando bien: si tiene el puerto de ogAdmRepo abiertos
# Si esta bien hacemos el respaldo y si no arrancamos el servicio de opengnsys.
tcping triana -u 600 2002 > /dev/null && TRIANA="si" || TRIANA="no"
if [ "$TRIANA" == "si" ]; then
echo -n "Triana esta arrancado, quiere iniciar opengnsys: [si/No] "
read INICIAR
else
INICIAR="si"
fi
if [ "$INICIAR" == "si" ]; then
echo "Incluimos en el cromtab que compruebe que esten los servicios arrancados." | tee -a
$FILESAL
echo "* * * * * root [ -x /opt/opengnsys/bin/opengnsys.cron ] &&
/opt/opengnsys/bin/opengnsys.cron" >>/etc/cron.d/opengnsys
echo "Actualizamos configuración servicio dhcp." | tee -a $FILESAL
cp -f /etc/dhcpd/respaldo_triana/dhcpd.conf /etc/dhcp/dhcpd.conf
# FALTA: Comentar linea de sincronizar con triana en el cron
echo "Arrancamos los servicios dhcp y opengnsys" | tee -a $FILESAL $FILELOG
[ $(pgrep dhcpd |wc -l) == "0" ] && systemctl start dhcpd
[ $(pgrep ogAdmRepo |wc -l) == "0" ] && systemctl start opengnsys
fi
Cron en el hipervisor: arrancando la máquina virtual
/etc/cron.d/arranque_triana_respaldo
0 0 * * 4 root virsh start triana-respaldo
Otros
Nos traemos de triana:
el fichero de configuración de iptables /etc/sysconfig/iptables
la página de inicio de apache que redirige al https://10.1.14.5/opengnsys (hay que cambiar la url)
Descargar