From da03ed417f54f81bc53cbbd829d9c2f78b7b6ca3 Mon Sep 17 00:00:00 2001 From: Pablo Sarria Date: Tue, 17 Dec 2024 17:53:06 +0100 Subject: [PATCH] =?UTF-8?q?a=C3=B1ado=20par=C3=A1metro=20-u=20al=20zfs=20r?= =?UTF-8?q?eceive=20para=20permitir=20incrementales;=20elimino=20el=20trab?= =?UTF-8?q?ajo=20de=20alias,=20no=20es=20necesario=20al=20importarlo=20dir?= =?UTF-8?q?ectamente=20con=20zonecfg;=20mostramos=20la=20mac=20e=20ip=20de?= =?UTF-8?q?l=20VPS=20a=20trasladar;=20a=C3=B1adimos=20un=20payload=20de=20?= =?UTF-8?q?.cfg=20para=20modificar=20en=20destino;=20montamos=20dataset=20?= =?UTF-8?q?en=20destino;=20actualizamos=20VPS=20en=20local=20para=20evitar?= =?UTF-8?q?=20su=20inicio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zonemigrate.sh | 45 +++++++++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 16 deletions(-) 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