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

 经过一番折腾,楼主我已经搞定了新版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机子都行)