| @@ -57,7 +57,7 @@ snapshot() | |||||
| zfs snapshot $1@`date +%Y%m%d` | zfs snapshot $1@`date +%Y%m%d` | ||||
| check $? | check $? | ||||
| echo "enviando snapshot de $1 a $SERVER ..." | echo "enviando snapshot de $1 a $SERVER ..." | ||||
| zfs send $1@`date +%Y%m%d` | $SSH $SERVER zfs receive $1 | |||||
| zfs send $1@`date +%Y%m%d` | $SSH $SERVER zfs receive -u $1 | |||||
| check $? | check $? | ||||
| echo "creando snapshot incremental de $1 ..." | echo "creando snapshot incremental de $1 ..." | ||||
| zfs snapshot $1@`date +%Y%m%d`.incremental | zfs snapshot $1@`date +%Y%m%d`.incremental | ||||
| @@ -67,10 +67,9 @@ snapshot() | |||||
| check $? | check $? | ||||
| } | } | ||||
| # capturamos el alias que vmadm usa en base64 y que da problemas con el mitico zonecfg | |||||
| ALIAS=`vmadm get ${UUID} | json alias | tr -d '\n'` | |||||
| zonecfg -z ${UUID} "select attr name=alias; set value=temporal; end" | |||||
| # mostramos mac a exporar por VXLAN | |||||
| echo "mostramos mac e ips a exportar via VXLAN..." | |||||
| vmadm get ${UUID} | json nics.0.ips nics.0.mac | |||||
| # creamos snapshot, lo enviamos, creamos incremental y la enviamos | # creamos snapshot, lo enviamos, creamos incremental y la enviamos | ||||
| @@ -94,31 +93,45 @@ if [ -n "${DATASET}" ]; then | |||||
| fi | fi | ||||
| # exportamos configuracion | # exportamos configuracion | ||||
| echo "exportamos configuracion..." | |||||
| echo "exportamos configuracion y enviamos a destino..." | |||||
| zonecfg -z ${UUID} export > $CFG/${UUID}.cfg | |||||
| $SCP $CFG/${UUID}.cfg $SERVER:$CFG/${UUID}.cfg | |||||
| zonecfg -z ${UUID} export | $SSH $SERVER "zonecfg -z ${UUID}" | |||||
| # destino | |||||
| echo "enviamos config a destino..." | |||||
| # modificamos de acuerdo a la config de datacenter remoto | |||||
| echo "modificamos config de acuerdo a datacenter remoto..." | |||||
| $SSH $SERVER zonecfg -z ${UUID} < $CFG/${UUID}.cfg | |||||
| $SSH $SERVER zoneadm -z ${UUID} attach | |||||
| $SSH $SERVER zoneadm -z ${UUID} halt | |||||
| echo " | |||||
| select net physical=eth0 | |||||
| clear vlan-id | |||||
| set global-nic=v/100 | |||||
| add property (name=mtu,value="1200") | |||||
| remove property (name=gateway,value="194.53.148.1") | |||||
| remove property (name=gateways,value="194.53.148.1") | |||||
| add property (name=gateway,value="194.53.148.2") | |||||
| add property (name=gateways,value="194.53.148.2") | |||||
| end" | $SSH $SERVER "zonecfg -z ${UUID}" | |||||
| # montamos el dataset | |||||
| $SSH $SERVER zfs mount ${ZONEPATH} | |||||
| # reestablecemos el alias que usa vmadm | |||||
| # instalamos | |||||
| $SSH $SERVER vmadm update ${UUID} alias=${ALIAS} | |||||
| vmadm update ${UUID} alias=${ALIAS} | |||||
| $SSH $SERVER zoneadm -z ${UUID} attach | |||||
| # detenemos la zona en local | # detenemos la zona en local | ||||
| zoneadm -z ${UUID} halt | zoneadm -z ${UUID} halt | ||||
| # actualizamos la zona en local para que no inicie | |||||
| vmadm udpate ${UUID} autoboot=false | |||||
| # iniciamos la zona en remoto | # iniciamos la zona en remoto | ||||
| $SSH $SERVER zoneadm -z ${UUID} boot | $SSH $SERVER zoneadm -z ${UUID} boot | ||||
| # TODO: | # TODO: | ||||
| # - puede haber mas de un FILESYSTEM en la zona, necesitamos iterar por el array y lanzar la funcion snapshot sobre cada uno de ellos | # - puede haber mas de un FILESYSTEM en la zona, necesitamos iterar por el array y lanzar la funcion snapshot sobre cada uno de ellos | ||||
| # - puede haber mas de un DATASET en la zona, necesitamos iterar por el array y lanzar la funcion snapshot sobre cada uno | # - puede haber mas de un DATASET en la zona, necesitamos iterar por el array y lanzar la funcion snapshot sobre cada uno | ||||