ソースを参照

añado parámetro -u al zfs receive para permitir incrementales; elimino el trabajo de alias, no es necesario al importarlo directamente con zonecfg; mostramos la mac e ip del VPS a trasladar; añadimos un payload de .cfg para modificar en destino; montamos dataset en destino; actualizamos VPS en local para evitar su inicio

develop
Pablo Sarria 1年前
コミット
da03ed417f
1個のファイルの変更29行の追加16行の削除
  1. +29
    -16
      zonemigrate.sh

+ 29
- 16
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

読み込み中…
キャンセル
保存