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

admin
2015-06-02 / 0 评论 / 385 阅读 / 正在检测是否收录...

感谢hostloc  “dzxx36gyy” 做出的贡献

经过一番折腾,楼主我已经搞定了新版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.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
返回信息没啥东西,无视吧。

好了,本教程END  
(别问我这些命令在什么里面运行……,随便找台联网的linux机子都行)
0

评论 (0)

取消