diff --git a/zonemigrate.sh b/zonemigrate.sh index 1a9b69d..a3699a9 100755 --- a/zonemigrate.sh +++ b/zonemigrate.sh @@ -57,7 +57,7 @@ snapshot() zfs snapshot $1@`date +%Y%m%d` check $? 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 $? echo "creando snapshot incremental de $1 ..." zfs snapshot $1@`date +%Y%m%d`.incremental @@ -67,10 +67,9 @@ snapshot() 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 @@ -94,31 +93,45 @@ if [ -n "${DATASET}" ]; then fi # 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 zoneadm -z ${UUID} halt +# actualizamos la zona en local para que no inicie + +vmadm udpate ${UUID} autoboot=false + # iniciamos la zona en remoto $SSH $SERVER zoneadm -z ${UUID} boot + # 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 DATASET en la zona, necesitamos iterar por el array y lanzar la funcion snapshot sobre cada uno