| @@ -1,13 +1,31 @@ | |||||
| #!/usr/bin/bash | #!/usr/bin/bash | ||||
| if [ "$#" -ne 2 ]; then | |||||
| echo "Illegal number of parameters" | |||||
| echo "Usage: $0 {UUID} {DESTINYNODE}" | |||||
| usage() | |||||
| { | |||||
| echo "Usage: $0 -z UUID -h hostname" >&2 | |||||
| exit 1 | exit 1 | ||||
| fi | |||||
| } | |||||
| UUID=$1 | |||||
| NODODESTINO=$2 | |||||
| while getopts "z:h:" opt; | |||||
| do | |||||
| case "$opt" in | |||||
| z) | |||||
| UUID=$OPTARG | |||||
| ;; | |||||
| h) | |||||
| HOSTNAME=$OPTARG | |||||
| ;; | |||||
| *) | |||||
| usage | |||||
| ;; | |||||
| esac | |||||
| done | |||||
| shift $((OPTIND-1)) | |||||
| if [ -z "${UUID}" ] || [ -h "${HOSTNAME}" ]; then | |||||
| usage | |||||
| fi | |||||
| KEYFILE="/usbkey/ssh/id_rsa" | KEYFILE="/usbkey/ssh/id_rsa" | ||||
| DESTINYPORT="2221" | DESTINYPORT="2221" | ||||
| @@ -27,9 +45,9 @@ fi | |||||
| snapshot() | snapshot() | ||||
| { | { | ||||
| zfs snapshot $1@`date +%Y%m%d` | zfs snapshot $1@`date +%Y%m%d` | ||||
| zfs send $1@`date +%Y%m%d` | $SSH $NODODESTINO zfs receive $1 | |||||
| zfs send $1@`date +%Y%m%d` | $SSH $HOSTNAME zfs receive $1 | |||||
| zfs snapshot $1@`date +%Y%m%d`.incremental | zfs snapshot $1@`date +%Y%m%d`.incremental | ||||
| zfs send -i $1@`date +%Y%m%d` $1@`date +%Y%m%d`.incremental | $SSH $NODODESTINO zfs receive $1 | |||||
| zfs send -i $1@`date +%Y%m%d` $1@`date +%Y%m%d`.incremental | $SSH $HOSTNAME zfs receive $1 | |||||
| } | } | ||||
| # capturamos el alias que vmadm usa en base64 y que da problemas con el mitico zonecfg | # capturamos el alias que vmadm usa en base64 y que da problemas con el mitico zonecfg | ||||
| @@ -62,18 +80,18 @@ fi | |||||
| echo "exportamos configuracion..." | echo "exportamos configuracion..." | ||||
| zonecfg -z ${UUID} export > $CFG/${UUID}.cfg | zonecfg -z ${UUID} export > $CFG/${UUID}.cfg | ||||
| $SCP $CFG/${UUID}.cfg $NODODESTINO:$CFG/${UUID}.cfg | |||||
| $SCP $CFG/${UUID}.cfg $HOSTNAME:$CFG/${UUID}.cfg | |||||
| # destino | # destino | ||||
| echo "enviamos config a destino..." | echo "enviamos config a destino..." | ||||
| $SSH $NODODESTINO zonecfg -z ${UUID} < $CFG/${UUID}.cfg | |||||
| $SSH $NODODESTINO zoneadm -z ${UUID} attach | |||||
| $SSH $NODODESTINO zoneadm -z ${UUID} halt | |||||
| $SSH $HOSTNAME zonecfg -z ${UUID} < $CFG/${UUID}.cfg | |||||
| $SSH $HOSTNAME zoneadm -z ${UUID} attach | |||||
| $SSH $HOSTNAME zoneadm -z ${UUID} halt | |||||
| # reestablecemos el alias que usa vmadm | # reestablecemos el alias que usa vmadm | ||||
| $SSH $NODODESTINO vmadm update ${UUID} alias=${ALIAS} | |||||
| $SSH $HOSTNAME vmadm update ${UUID} alias=${ALIAS} | |||||
| vmadm update ${UUID} alias=${ALIAS} | vmadm update ${UUID} alias=${ALIAS} | ||||
| # detenemos la zona en local | # detenemos la zona en local | ||||
| @@ -82,7 +100,7 @@ zoneadm -z ${UUID} halt | |||||
| # iniciamos la zona en remoto | # iniciamos la zona en remoto | ||||
| $SSH $NODODESTINO zoneadm -z ${UUID} boot | |||||
| $SSH $HOSTNAME zoneadm -z ${UUID} boot | |||||
| # TODO: | # TODO: | ||||