我们收到了一份关于计划迁移到新的管理程序的通知,提到我们可以在SL Portal或通过API进行这种迁移。
问:如何通过API调用迁移服务器:
我们收到通知:
IBM正在为所有位置的VSI (Virtual实例)扩展“热修补”功能。热修补允许IBM Bluemix Virtual团队将许多软件和安全修补程序应用到虚拟机主机上,而不会因为主机重新启动而中断客户端工作负载。 为了提供灵活性,客户端将能够在迁移窗口之前通过API或UI进行自我迁移,如下所示: 要自我迁移您的虚拟服务器,请转到“设备列表”,该列表可以在Control顶部的“设备”下找到,并选择"Actions“。“迁移主机”应该是可选择的(取决于容量)。
发布于 2017-03-28 13:16:51
使用rest,您可以使用此请求:
https://$USERNAME:$APIKEY@api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest/$VSIID/migrate
Note: replace $USERNAM , $APIKEY and $VSIID
问候
发布于 2017-09-18 11:59:38
这就是我们用来逐个迁移VM的脚本。
您可以使用这个命令slcli virtual list --columns id,hostname,pendingMigrationFlag | grep True
列出可迁移的VM,实际的迁移可以用这个slcli call-api Virtual_Guest migrate "--id=$VSID"
完成。
#!/bin/bash
TYPE=${1:-server}
while :; do
VSID=`slcli virtual list --columns id,hostname,pendingMigrationFlag | grep "$TYPE" | grep True | head -1 | cut -d ' ' -f1`;
if [[ -n "$VSID" ]]; then
echo "Next item to migrate: $VSID"
slcli vs detail "$VSID"
slcli call-api Virtual_Guest migrate "--id=$VSID"
if [[ "$?" -eq "0" ]]; then
echo "Waiting for the migration to complete..."
while :; do
sleep 5
STATE=`slcli vs detail "$VSID" | grep active_transaction | awk '{print $2}'`
if [ "$STATE" = "NULL" ]; then
echo "Migration finished"
break
else
echo "Current state: $STATE"
fi
done
fi
else
echo "No vs found to migrate"
break
fi
done
https://stackoverflow.com/questions/43064768
复制相似问题