Contents
はじめに
ConoHa VPSにISOイメージを使ってOSインストールします。方法はConoHa APIを直接叩いて実行する方法と、conoha-isoツールを使う方法があります。conoha-isoツールの手順は公式ドキュメントが用意されています。
私はAPIを使いたかったので、以下はAPIを使ったOSインストール手順になります。
事前準備
APIを使うためにはトークンを事前に発行して確認しておく必要があります。過去記事を参考までに。
必要なパラメータ等の値を確認しておきます。
パラメータ | 値 | 説明 |
X-Auth-Token | <User Token> | 事前に確認しておく |
tenant_id | <Tenant ID> | 管理画面で確認 |
url | http://ftp.tsukuba.wide.ad.jp/Linux/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso | CentOSのダウンロードページで確認。(CentOS7.4) |
server_id | <Server ID> | 管理画面で確認(VPS設定のUUID) |
エンドポイント(Identity Service) | https://compute.tyo1.conoha.io/ | 管理画面で確認(左のValueは公式ドキュメントから) |
ISOイメージのダウンロード
外部サーバからConoHa側の一時領域にISOイメージをダウンロードします。
リクエスト
Macなどのターミナルから以下のコマンド実行。
$ curl -i -X POST \ -H 'Content-Type: application/json' \ -H "Accept: application/json" \ -H "X-Auth-Token: <User Token>" \ -d '{"iso-image":{"url":"http://ftp.tsukuba.wide.ad.jp/Linux/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso"}}' \ https://compute.tyo1.conoha.io/v2/<Tenant ID>/iso-images
レスポンス
以下のような結果が返ってくればOK。
HTTP/1.1 201 Created Server: openresty/1.7.10.1 Date: Thu, 21 Dec 2017 02:19:15 GMT Content-Type: application/json Content-Length: 167 Connection: keep-alive "request":{"iso-image":{"url":"http://ftp.tsukuba.wide.ad.jp/Linux/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso"}},"user":"<Tenant ID>";}
ISOイメージの一覧取得
ISOイメージ一覧を取得して、ISOイメージがダウンロードされていることを確認します。また次項のISOイメージの挿入でパスが必要なので確認しておきます。
リクエスト
結果を見やすくするためオプション"-i"を外して、最後にパイプでjqにつなげてます。
$ curl -X GET \ -H 'Content-Type: application/json' \ -H "Accept: application/json" \ -H "X-Auth-Token: <User Token>" \ https://compute.tyo1.conoha.io/v2/<Tenant ID>/iso-images | jq
レスポンス
"path"を確認しておきます。
{
"iso-images": [
{
"url": "http://ftp.tsukuba.wide.ad.jp/Linux/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso";,
"path": "/mnt/isos/repos/tenant_iso_data/<Tenant ID>/CentOS-7-x86_64-Minimal-1708.iso",
"ctime": "Tue Sep 5 23:15:13 2017",
"name": "CentOS-7-x86_64-Minimal-1708.iso",
"size": 830472192
}
]
}
ISOイメージの挿入
ISOイメージをマウントします。VM停止時にのみ実行できます。
リクエスト
"mountImage"は「ISOイメージの一覧取得」で確認したパスを入れます。sever_idも必要になるため、管理画面のVPS設定でUUIDを確認しておきます。
$ curl -i -X POST \ -H "Accept: application/json" \ -H "X-Auth-Token: <User Token>" \ -d '{"mountImage": "/mnt/isos/repos/tenant_iso_data/<Tenant ID>/CentOS-7-x86_64-Minimal-1708.iso"}' \ https://compute.tyo1.conoha.io/v2/<Tenant ID>/servers/<Server ID>/action
レスポンス
以下のような結果が返ればOK。
HTTP/1.1 204 No Content Server: openresty/1.7.10.1 Date: Thu, 21 Dec 2017 02:42:47 GMT Content-Type: application/json Content-Length: 0 Connection: keep-alive
ISOイメージからOSインストール
ここまでくればインストール可能です。管理画面でサーバを起動し、コンソールでインストール画面を表示させてインストールします。(手順は省略)
ISOイメージの排出
OSのインストールが終わったら、ISOイメージをアンマウントしておきます。
リクエスト
"unmountImage"は空の文字列を指定。
$ curl -i -X POST \ -H "Accept: application/json" \ -H "X-Auth-Token: <User Token>" \ -d '{"unmountImage": ""}' \ https://compute.tyo1.conoha.io/v2/<Tenant ID>/servers/<Server ID>/action
レスポンス
以下のような結果が返ればOK。
HTTP/1.1 204 No Content Server: openresty/1.7.10.1 Date: Thu, 21 Dec 2017 04:21:24 GMT Content-Type: application/json Content-Length: 0 Connection: keep-alive
最後に
APIのドキュメントを見ると他にもいろいろできそうで良い感じ。
参考
https://www.conoha.jp/guide/clitools.php
https://www.conoha.jp/docs/?btn_id=header_docs