很早就想写这个文章,但由于conoha日本的机房跟国内速度这段时间太渣,所以也没搞了,最近测了一下新加坡的,电信还是飞快的,于是搞起来自己用,但是网上流传的文章有错误,包括几个所谓的名博的,所以自己记录一下过程,备忘,也让网友少走弯路。
我能确定我文中的每一条命令和每一个词都是正确的,因为就在半小时以前这个过程才运行过一次,所以不需要发邮件问了,如果你运行不通过,请检查细节。
一:准备工作
登录进conoha,点左侧的API以及虚拟机的详细页面,记下几个信息
店铺ID、用户名、密码、Identity Service、虚拟机的uuid
同时需要在关闭虚拟机的情况下把键盘映射改为en-us
自己准备一个http或者ftp可以请求的ISO地址,ISO文件需要内置virtio驱动。
友情提示:ftp的合法地址格式为
ftp://用户名:密码@主机名/文件地址
我建议开一个记事本,把这些内容复制进去,方便下面输入命令的时候进行替换。
api的密码不记得的话可以立刻改一个,Identity Service要搞正确你要的数据中心,如果你要开新加坡的就别用美国的,默认显示的是日本的,我这里用的是新加坡的,所以如果你也用新加坡的就不用更换提交的地址了。
店铺名称自始至终是不会用到的,所以不需要按照其他博客说的那样记下来。
运行的时候呢,因为最后一条命令需要在虚拟机关闭的情况下才可以执行,所以这意味着你需要在其他的虚拟机上面运行,而不能在欲安装的虚拟机上做这些工作。
二:操作过程
conoha的api是这样,其实只有第一次获取TokenID的时候是需要验证的,这个TokenID有一个有效时间,好像是24还是48小时,后面的都是依靠这个TokenID进行授权。
首先来获取TokenID:
curl -i -X POST \
-H "Accept: application/json" \
-d '{ "auth": { "passwordCredentials": { "username": "API用户名", "password": "密码" }, "tenantId": "店铺ID" } }' \
https://identity.sin1.conoha.io/v2.0/tokens
记录下返回信息中的ID,这个就是TokenID了。
然后我们通过指令要求conoha的服务器把ISO文件搞到他们服务器上
curl -i -X POST \
-H 'Content-Type: application/json' \
-H "Accept: application/json" \
-H "X-Auth-Token: TokenID" \
-d '{
"iso-image": {
"url": "ISO文件地址"
}
}' \
https://compute.sin1.conoha.io/v2/店铺ID/iso-images
这里可以同时提交多个地址,需要等一段时间的,具体看双方连接速度,你可以时不时的运行下面这个命令来获取ISO文件状态:
curl -i -X GET -H 'Content-Type: application/json' -H "Accept: application/json" -H "X-Auth-Token: TokenID" https://compute.sin1.conoha.io/v2/店铺ID/iso-images
如果还没看到你的ISO文件名,那就是传输中,等你能看到文件名的时候就是传送完成了,记录下path,这个就是存放iso的mnt路径,这个路径是相对于conoha服务器而言的,应该是/mnt开头。
然后将虚拟机关闭电源,挂载上ISO:
curl -i -X POST \
-H "Accept: application/json" \
-H "X-Auth-Token: TokenID" \
-d '{"mountImage": "iso的mnt路径"}' \
https://compute.sin1.conoha.io/v2/店铺ID/servers/UUID/action
不放心的话可以检查一下:
curl -i -X GET \
-H "Accept: application/json" \
-H "X-Auth-Token: a31426bc74b544c9a262754c897d9d06" \
https://compute.sin1.conoha.io/v2/4f4d7de550264cb6a46ba4f97d4be2a5/servers/12523ae1-9cd5-43df-bbe2-6a421a03da29
然后呢,就可以启动虚拟机,并且进控制台安装系统了,后面的跟平时一样,不啰嗦了:
需要注意的是,因为虚拟机在启动状态才能进控制台,而有时候因为网络慢或者什么原因,你没能及时的进控制台按任意键进入安装程序而直接进了linux系统,那么我试过可行的几个办法:
1,在控制台登入linux,reboot重启
2,在控制台发送特殊键重启
3,重启虚拟机,并且尽快点进控制台,这个方法成功率最低
4,conoha的api文档里面还有一个可以直接长连接的web控制台,具体命令我肯定记不得,去看一下文档就好了,这个控制台在关机的情况下好像也可以连的
conoha网站的重启按钮,其实相当于我们电脑机箱的restart按钮,点了以后属于硬重启,这个情况会让控制台断掉的,所以这个路子不用试了,我试过很多次的,就像第三个办法那样,没用。
附:新加坡机房速度测试:
补充一下,用api获取网页VNC:
curl -i -X POST \
-H "Accept: application/json" \
-H "X-Auth-Token: TokenID" \
-d '{"os-getVNCConsole": {"type": "novnc"}}' \
https://compute.sin1.conoha.io/v2/店铺ID/servers/UUID/action
返回信息有一个URL,用浏览器打开就可以了