经过一番折腾,楼主我已经搞定了新版Conoha利用API上传ISO安装系统的方法了,当然,
大部分人还是会拿来安装windows(水晶党退散,迅雷这么坑还玩?)。
本教程主要利用如下API:
1.ISO上传API https://www.conoha.jp/docs/compute-iso-download-add.html
2.查看已上传的ISO的API https://www.conoha.jp/docs/compute-iso-list-show.html
3.挂载已上传的ISO的API https://www.conoha.jp/docs/compute-insert_iso_image.html
4.卸载ISO的API https://www.conoha.jp/docs/compute-eject_iso_image.html
5.身份验证API https://www.conoha.jp/docs/identity-post_tokens.html
6.VPS详细信息查看API https://www.conoha.jp/docs/compute-get_vms_detail_specified.html
首先,参照官方文档,我发现大部分操作并没有利用到Conoha面板API中的密码,而是用到了
X-Auth-Token,然后我找啊找,发现身份验证的API里面有一项可以生成这个。命令如下:
curl -i -X POST -H "Accept: application/json" -d '{ "auth": { "passwordCredentials": { "username": "API用户名", "password": "API用户密码(请自己在面板里添加)" }, "tenantId": "店铺ID" } }' https://identity.sin1.conoha.io/v2.0/tokens 这是东京的API,其它地区的自己按照地址格式改。
运行之后会返回一串数据,请注意
{ "access": { "token": { "issued_at": "2015-05-19T07:08:21.927295", "expires": "2015-05-20T07:08:21Z", "id": "sample00d88246078f2bexample788f7"
其余省略
这段中的id即为X-Auth-Token,上面那个expires是有效期,之后的操作均要用到X-Auth-Token。
现在我们可以开始上传ISO了,注意,由于官方API系统没建设完全,对http链接支持不完善,请
使用ftp格式的ISO地址(ISO必须带virtio驱动),上传命令如下:
curl -i -X POST -H 'Content-Type: application/json' -H "Accept: application/json" -H "X-Auth-Token: (前面有个空格)这里是啥不用我说了吧" -d '{ "iso-image": { "url": "ftp格式的ISO地址" } }' https://compute.tyo1.conoha.io/v2/店铺ID/iso-images 同样,这个是东京的API地址,其它地区的
请按照格式自己修改
命令运行之后会返回数据,是ISO地址和你的API信息
之后我们应该查看ISO是否成功上传,命令如下
curl -i -X GET -H 'Content-Type: application/json' -H "Accept: application/json" -H "X-Auth-Token: (同样前面有个空格)" https://compute.tyo1.conoha.io/v2/店铺ID/iso-images
返回数据大概是这样的
{ "iso-images": [ { "url": "ftp://ftp.riken.jp/Linux/centos/6.6/isos/x86_64/CentOS-6.6-x86_64-minimal.iso", "path": "/mnt/isos/repos/tenant_iso_data/43b36734a9e541fd91a62fc63ee93fed/CentOS-6.6-x86_64-minimal.iso", "ctime": "Fri Oct 24 23:22:57 2014", "name": "CentOS-6.6-x86_64-minimal.iso", "size": 401604608 }, { "url": "http://ftp.riken.jp/Linux/centos/7/isos/x86_64/CentOS-7.0-1406-x86_64-Everything.iso", "path": "/mnt/isos/repos/tenant_iso_data/43b36734a9e541fd91a62fc63ee93fed/CentOS-7.0-1406-x86_64-Everything.iso", "ctime": "Sat Jul 5 07:16:46 2014", "name": "CentOS-7.0-1406-x86_64-Everything.iso", "size": 7062159360 } ] }
出现在里面的代表成功上传了,挂载镜像会使用到path
挂载命令如下(前提条件:先创建vps,然后关机,在面板——服务器——VPS(别真以为有个选项叫vps啊)——vps设置——控制台键盘映射改为en-us
curl -i -X POST -H "Accept: application/json" -H "X-Auth-Token: 不说了" -d '{"mountImage": "前面查看已上传的ISO里的path"}' https://compute.tyo1.conoha.io/v2/店铺ID/servers/VPS的UUID(点开vps管理,在VPS设置里和网址上有)/action
接下来要查看VPS详细信息,确认是否成功挂载
curl -i -X GET -H "Accept: application/json" -H "X-Auth-Token: 不说了" https://compute.tyo1.conoha.io/v2/店铺ID/servers/上一步里的UUID
返回信息里自己看吧,有你ISO的path就代表挂载成功了。
然后你开机吧(之前挂载步骤必须在关机状态下进行,不然会失败)
开启VNC,重启,会提示你按任意键以从光驱启动,之后不用我说了吧,唯一需要注意的一点就是
VPS设置里的那个控制台键盘映射必须换成en-us(电脑是日语键盘的请无视),不然各种灵异事件。
对了,安装完之后请卸载ISO,当然你不卸貌似也没问题,请在关机状态下运行
curl -i -X POST -H "Accept: application/json" -H "X-Auth-Token: 不说了" -d '{"unmountImage": ""}' https://compute.tyo1.conoha.io/v2/店铺ID/servers/VPS的UUID/action
返回信息没啥东西,无视吧。
好了,本教程END
(别问我这些命令在什么里面运行……,随便找台联网的linux机子都行)
本教程由本人原创,发布于博客和hostloc,转载请注明原地址。
文章评论
我想请教下如果在上传iso的时候,检查返回的iso-images后面是空白的,地址是ftp的,这个问题如何处理哦
@tmdjiuji 这个是由于Conoha官方API服务器压力过大的问题(ISO任务提交队列满了),这个你可以看最新的通知。应该目前已经修复了
文档全是日文。。。。
@PWF 毕竟日本商家……能给出中文界面和支付宝付款已经很给力了,api文档这种非普通用户用得到的没反应成中文也是情有可原,非要看中文的话可以用chrome自带的反应功能。
关机状态怎么执行代码啊,挂载没一次成功啊
@帅气凌云 请在另外一台vps或电脑上执行这个程序,我们所执行的命令只是简单的把数据和请求提交给conoha的服务器,操作最终是由它执行的,所以完全不存在由于关机无法执行代码的问题……因为本来就不用在这台机子上执行命令。
哈哈很好奇博主如若有一天重新回到博客。是否怀念着最初建立博客时候自己乐于助人的心理和自身从懵懂到现在大佬的心境。致敬。