首页 > orther > article > 新版Conoha利用API上传镜像安装系统
2015
06-07

新版Conoha利用API上传镜像安装系统

本教程主要利用如下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.tyo1.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
返回信息没啥东西,无视吧。

日文原版教程:http://server-setting.info/blog/conoha-api-iso-ubuntu-server.html

最后编辑:
作者:admin

留下一个回复