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 [email protected] [email protected]'s password: Now try logging into the machine, with "ssh '[email protected]'", 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)