概要

APIを使用して作成済みのVPSに任意のISOイメージを挿入する方法の一例をご案内します。


事前準備

APIを使用するには、事前にAPIユーザーの作成が必要になります。未作成の場合は、以下ドキュメントをご参考に作成ください。

 APIユーザーを作成する

また、各種APIを操作する上で「テナント情報」や「エンドポイント」を使用します。以下ドキュメントをご参考にご確認ください。

 API情報を確認する


APIによるISOイメージの挿入方法

[1] APIを利用するためにトークンを発行します。
  レスポンス結果から「トークン情報」をメモします。

  ※対象のAPIドキュメントは、こちら

Request

curl -i -X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"auth": {"identity": {"methods": ["password"],"password": {"user": {"id": "APIユーザーID","password": "パスワード"}}},"scope": {"project": {"id": "テナントID"}}}}' \
https://identity.c3j1.conoha.io/v3/auth/tokens

Response

HTTP/1.1 201 Created
server: nginx
date: Wed, 15 Nov 2023 10:06:01 GMT
content-type: application/json
content-length: 2709
x-subject-token: トークン情報
vary: X-Auth-Token
x-openstack-request-id: req-f71225d0-44fd-425c-9ea5-f788d1fa0a43
cache-control: no-store
x-frame-options: DENY
x-content-type-options: nosniff


[2] ISOイメージをアップロードするためのイメージIDを作成します。
  レスポンス結果から「イメージID」をメモします。

  ※対象のAPIドキュメントは、こちら

curl -X POST \
-H "Accept: application/json" \
-H "X-Auth-Token: トークン" \
-d '{"name": "任意のイメージ名","disk_format": "iso","hw_rescue_bus": "ide","hw_rescue_device": "cdrom","container_format": "bare"}' \
https://image-service.c3j1.conoha.io/v2/images

Response

{
	"hw_rescue_bus": "ide",
	"hw_rescue_device": "cdrom",
	"name": "イメージ名",
	"disk_format": "iso",
	"container_format": "bare",
	"visibility": "shared",
	"size": null,
	"virtual_size": null,
	"status": "queued",
	"checksum": null,
	"protected": false,
	"min_ram": 0,
	"min_disk": 0,
	"owner": "テナントID",
	"os_hidden": false,
	"os_hash_algo": null,
	"os_hash_value": null,
	"id": "イメージID",


[3] 任意のISOイメージをアップロードします。
  アップロード完了には時間がかかる場合があります。

  ※対象のAPIドキュメントは、こちら

Request

curl -X PUT \
-H "Accept: application/json" \
-H "Content-Type: application/octet-stream" \
-H "X-Auth-Token: トークン" \
-T "アップロードするファイル名" \
https://image-service.c3j1.conoha.io/v2/images/イメージID/file

Response

There is no response body for this operation.


[4] ISOイメージを挿入したいVPSのサーバーIDを確認します。
  レスポンス結果から「サーバーID」をメモします。

  ※対象のAPIドキュメントは、こちら

Request

curl -X GET \
-H "Accept: application/json" \
-H "X-Auth-Token: トークン" \
https://compute.c3j1.conoha.io/v2.1/servers

Response

{
	"servers": [
		{
			"id": "サーバーID",
			"name": "vm-f7879f6d-19",


[5] ISOイメージを挿入したいVPSを停止します。

  ※対象のAPIドキュメントは、こちら

Request

curl -X POST \
-H "Accept: application/json" \
-H "X-Auth-Token: トークン" \
-d '{"os-stop": null}' \
https://compute.c3j1.conoha.io/v2.1/servers/サーバーID/action

Response

There is no response body for this operation.


[6] 対象のVPSが停止したか確認します。

  ※対象のAPIドキュメントは、こちら

Request

curl -X GET \
-H "Accept: application/json" \
-H "X-Auth-Token: トークン" \
https://compute.c3j1.conoha.io/v2.1/servers/サーバーID

Response

{
	"server": {
		"id": "cfeadc3b-c9ab-4365-b081-a784009532d4",
		"name": "vm-f7879f6d-19",
		"status": "SHUTOFF",


[7] ISOイメージを挿入するため、対象のVPSにマウントします。
  レスポンス結果から「管理者パスワード」をメモします。

  ※対象のAPIドキュメントは、こちら

Request

curl -X POST \
-H "Accept: application/json" \
-H "X-Auth-Token: トークン" \
-d '{"rescue": {"rescue_image_ref": "イメージID"}}' \
https://compute.c3j1.conoha.io/v2.1/servers/サーバーID/action

Response

{
	"adminPass": "管理者パスワード"
}


[8] 対象のVPSの状態がレスキューモードに遷移したか確認します。

  ※対象のAPIドキュメントは、こちら

Request

curl -X GET \
-H "Accept: application/json" \
-H "X-Auth-Token: トークン" \
https://compute.c3j1.conoha.io/v2.1/servers/サーバーID

Response

{
	"server": {
		"id": "cfeadc3b-c9ab-4365-b081-a784009532d4",
		"name": "vm-f7879f6d-19",
		"status": "RESCUE",


[9] サーバー内をVNCコンソールで調整するため、URLを発行します。
  レスポンス結果から「URL」をメモします。

  ※対象のAPIドキュメントは、こちら

Request

curl -X POST \
-H "Accept: application/json" \
-H "X-Auth-Token: トークン" \
-d '{"remote_console": {"protocol": "vnc","type": "novnc"}}' \
https://compute.c3j1.conoha.io/v2.1/servers/サーバーID/remote-consoles

Response

{
	"remote_console": {
		"protocol": "vnc",
		"type": "novnc",
		"url": "https://*********************"
	}
}


[10] ブラウザからコンソールURLにアクセスして、サーバー内を調整します。


[11] サーバー内の調整が完了後、対象のVPSからアンマウントします。

  ※対象のAPIドキュメントは、こちら

Request

curl -X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Auth-Token: トークン" \
-d '{"unrescue": null}' \
https://compute.c3j1.conoha.io/v2.1/servers/サーバーID/action

Response

There is no response body for this operation.


[12] 対象のVPSが起動したか確認します。

  ※対象のAPIドキュメントは、こちら

Request

curl -X GET \
-H "Accept: application/json" \
-H "X-Auth-Token: トークン" \
https://compute.c3j1.conoha.io/v2.1/servers/サーバーID

Response

{
	"server": {
		"id": "cfeadc3b-c9ab-4365-b081-a784009532d4",
		"name": "vm-f7879f6d-19",
		"status": "ACTIVE",

本ドキュメントはConoHa VPSのバージョン3.0のAPIをご利用いただく際の一例となり、お客様の運用やポリシーによってその限りではございません。お客様のご利用状況に応じて必要な設定や操作をおこなってください。

また、ConoHaにて提供しておりますAPIにつきましては、クラウド基盤として採用しておりますOpenStackの機能にて実装しておりますので、詳細な情報や使い方はOpenStackのドキュメントにてご確認ください。