ConoHa の API を使ってみる、ついでに、ISOイメージを使って Ubuntu Server 14.04 をインストールしてみる。
評価の高い 新 ConoHa VPS と さくらのVPS の特徴とUnixBenchを含めたパフォーマンスを比較してみました。 で ConoHa がリニューアルしたことを含めてサーバーのパフォーマンスについて紹介しました。
今回は、その新ConoHaの新機能 API を使ってみます。
また、新ConoHaでなくなった ISOアップロード機能について、APIを使って実現できるとのことで、試しに ISOイメージから Ubuntu Server 14.04 LTS をインストールしてみました。
- 目次
- 履歴
2014年5月28日 初版
ConoHa のAPIを使ってみる
ConoHa のAPI (WebAPIともいう) は、ConoHa自体が OpenStack を使っているので、そのAPIそのままです。
オープンソースで開発されているクラウド環境構築用のソフトウェア群のことを言います。
OpenStackは、KVMやXen、VMware ESXi、Hyper-Vといった仮想化技術を用いたソフトウェア(ハイパーバイザー)と組み合わせ、 IaaS(Infrastructure as a Service)や ストレージサービスを提供するための 仮想マシンやストレージ、ネットワークの管理・運営のための機能を提供し、クラウド環境が構築できるようになります。
さらに、OpenStackのAPIは Amazon EC2とAmazon S3と互換性があり、Amazon Web Servicesのために書かれたクライアントアプリケーションを 最小限の移植作業でOpenStackにて使用することができるようになっています。(Wikipedia 引用)
Infrastructure as a Service の略で、直訳では、”サービス(として)の基盤” という感じでしょうか。
Wikipedia では、
コンピュータシステムを構築および稼動させるための基盤(仮想マシンやネットワークなどのインフラ)そのものを、インターネット経由のサービスとして提供する・・・ とあります。
つまりは、仮想マシン単位でリソースを利用できるようにする管理・提供するサービスというところでしょうか。
では、早速、ConoHa のAPI を使ってみましょう。 ここでは、curl コマンド および PHPでやってみます。PHPでは、基本的なことがわかりやすいように curlライブラリを使わず stream_context_create と file を使ってアクセスしてみます。
APIを利用するユーザ、パスワードを追加する
ConoHa のAPI を利用するには、APIを利用する ユーザ、パスワードが必要となります。
そのユーザ、パスワードは、ConoHa コントロールパネルから 登録することができます。
- ConoHa コントロールパネルから、API をクリックします。
- API ページから、追加ボタンをクリックします。
- パスワードを入力、保存ボタンをクリックします。
ユーザは 固定となりますので、この保存処理でユーザ、パスワードが設定完了となります。
上記の画面で 必ず 情報を確認しておきます。
(1)テナント情報 : テナントIDは、APIを利用する際に必要となります。
(2)エンドポイント: APIのアクセスアドレスになります。各リージョンによって異なりますからメモしておかれると良いと思います。
(3)APIユーザ: APIを利用する際に必要となります。ユーザ名は、ここで表示されたものになりますんでメモしておかれると良いと思います。
APIを使ってバージョン情報を出力してみる
先にAPIユーザの登録を終えたら、ConoHa のAPIを利用することができます。
早速、簡単なバージョン情報の出力を行ってみます。
APIへの GET および POST アクセスのためのfunction を作成します。 ほとんど同じような処理ですが、わかりやすいように2つに分けました。この functionは以降でもそのまま利用します。 (conoha_api.php のファイル名で保存します。)
|
先の function を使って、バージョン情報を出力します。 以下のファイルを version.php のファイル名で保存します。
|
上記ファイルを実行してみます。
|
cURLコマンド を使って、バージョン情報を出力します。
|
トークンを取得してみる
次にトークン(一時的なパスワードのようなもの)を取得します。
トークンがないと固有の情報取得や設定、サーバーの作成などはできません。
ここでは、必要となる各情報を以下のような値として解説しています。
- API ユーザ名 : xxxxxxxxxx
- API パスワード : yyyyyyyyy
- テナントID : zzzzzzzzzzzzzzzzz
先の function を使って、トークンを取得します。 以下のファイルを token.php のファイル名で保存します。
|
上記ファイルを実行してみます。
|
cURLコマンド を使って、トークンを取得します。
|
上記の出力情報の AAAAAAAAAAAAAAAAAAAAAAAAAA がトークンIDになります。
VMのプラン(flavor)を出力してみる
先に取得したトークンを使って、VMのプラン(flavor)の詳細情報を取得してみます。
ここでは、必要となる各情報を以下のような値として解説しています。
- テナントID : zzzzzzzzzzzzzzzzz
- トークン : AAAAAAAAAAAAAAAAAAAAAAAAAA
先の function および 先に取得したトークンを使って VMのプラン(flavor)一覧を取得します。 以下のファイルを vmplan.php のファイル名で保存します。
|
上記ファイルを実行してみます。
|
cURLコマンド および 先に取得したトークンを使って VMのプラン(flavor)一覧を取得します。
|
ConoHa のAPIを使って、Ubuntu Server をインストールする
APIを使ってISOイメージをダウンロードしてみる
旧ConoHaでは、ISOアップロード機能と言っていました。
新ConoHaでは、APIで ISOイメージダウンロードが用意されてます。このAPIが同じ機能になります。
ただ、旧ISOアップロード機能がPCからのSFTPによるアップロードであったのに対し、
APIのISOイメージダウンロードは、インターネット上にあるISOイメージファイルを文字通り ConoHaのサーバーへダウンロードする機能になります。
先に取得したトークンを使って、ISOイメージのダウンロードを実行してみます。
ここでは、必要となる各情報を以下のような値として解説しています。
- テナントID : zzzzzzzzzzzzzzzzz
- トークン : AAAAAAAAAAAAAAAAAAAAAAAAAA
先の function および 先に取得したトークンを使って ISOイメージのダウンロードを実行します。 以下のファイルを download.php のファイル名で保存します。
|
上記ファイルを実行してみます。
|
cURLコマンド および 先に取得したトークンを使って ISOイメージのダウンロードを実行します。
|
ちゃんとダウンロードできたかダウンロード一覧を取得してみます。
先の function および 先に取得したトークンを使って ISOイメージの一覧を取得します。 以下のファイルを download-list.php のファイル名で保存します。
|
上記ファイルを実行してみます。
|
cURLコマンド および 先に取得したトークンを使って ISOイメージの一覧を取得します。
|
ここでは、path 情報をメモしておきましょう。マウントする際に使用します。
APIを使ってISOイメージをマウントする
先にダウンロードしたISOイメージを、今度は、APIを使って マウントします。
- マウントするサーバー(VPS)のIDを確認します。
PHP
先の function および 先に取得したトークンを使って サーバー(VPS)の一覧を取得します。 以下のファイルを vm-list.php のファイル名で保存します。
<?php include_once 'conoha_api.php'; print_r( conoha_get_api('https://compute.tyo1.conoha.io/v2/zzzzzzzzzzzzzzzzz/servers', '', 'AAAAAAAAAAAAAAAAAAAAAAAAAA') ); ?>
上記ファイルを実行してみます。
$ php vm-list.php Array ( [server] => Array ( [id] => 111111-2222-3333-4444-55555555 [links] => Array ( [0] => Array ( [href] => https://compute.tyo1.conoha.io/v2/zzzzzzzzzzzzzzzzz/servers/111111-2222-3333-4444-55555555 [rel] => self ) [1] => Array ( [href] => https://compute.tyo1.conoha.io/zzzzzzzzzzzzzzzzz/servers/111111-2222-3333-4444-55555555 [rel] => bookmark ) ) [name] => 133-xxx-yyy-zzz ) )
cURL
cURLコマンド および 先に取得したトークンを使って サーバー(VPS)の一覧を取得します。
$ curl -i -X GET \ -H "Accept: application/json" \ -H "X-Auth-Token: 35941e7df872405d84e5b026dba8323c" \ https://compute.tyo1.conoha.io/v2/zzzzzzzzzzzzzzzzz/servers HTTP/1.1 200 OK Date: Tue, 09 Dec 2014 03:03:08 GMT Server: Apache Content-Length: 691 Content-Type: application/json { "servers": [ { "id": "111111-2222-3333-4444-55555555", "links": [ { "href": "https://compute.tyo1.conoha.io/v2/zzzzzzzzzzzzzzzzz/servers/111111-2222-3333-4444-55555555", "rel": "self" }, { "href": "https://compute.tyo1.conoha.io/zzzzzzzzzzzzzzzzz/servers/111111-2222-3333-4444-55555555", "rel": "bookmark" } ], "name": "133-xxx-yyy-zzz" } ] }
ここでは、id 情報をメモしておきましょう。マウントする際に使用します。
- サーバー(VPS)のシャットダウンします。
ISOイメージをマウントする際は、サーバーを停止しておく必要があります。 そこで、ConoHa コントロールパネルからシャットダウンにてサーバーを停止します。
- 先にダウンロードしたISOイメージをマウントします。
PHP
先の function および 先に取得したトークンを使って サーバー(VPS)にISOイメージをマウントします。 以下のファイルを mount.php のファイル名で保存します。
<?php include_once 'conoha_api.php'; $data = [ "mountImage" => '/mnt/isos/repos/tenant_iso_data/zzzzzzzzzzzzzzzzz/ubuntu-14.04.2-server-amd64.iso' ]; print_r( conoha_post_api('https://compute.tyo1.conoha.io/v2/zzzzzzzzzzzzzzzzz/servers/111111-2222-3333-4444-55555555/action', $data, 'AAAAAAAAAAAAAAAAAAAAAAAAAA') ); ?>
上記ファイルを実行してみます。
$ php mount.php
cURL
cURLコマンド および 先に取得したトークンを使って サーバー(VPS)にISOイメージをマウントします。
$ curl -i -X POST \ -H "Accept: application/json" \ -H "X-Auth-Token: AAAAAAAAAAAAAAAAAAAAAAAAAA" \ -d '{"mountImage": "/mnt/isos/repos/tenant_iso_data/zzzzzzzzzzzzzzzzz/ubuntu-14.04.2-server-amd64.iso"}' \ https://compute.tyo1.conoha.io/v2/zzzzzzzzzzzzzzzzz/servers/111111-2222-3333-4444-55555555/action HTTP/1.1 204 No Content Server: openresty/1.7.10.1 Date: Tue, 26 May 2015 23:52:57 GMT Content-Type: application/json Content-Length: 0
Ubuntu Server をインストールする
ここで、サーバーの再起動を行い、Ubuntu Server 14.04 をインストールします。
言わずと知れた Ubuntu の Serverパッケージになります。 通常の Ubuntu は、Ubuntu Desktop とも呼ばれ、Ubuntu Server と区別されています。 ベースは、Ubuntu Desktop 同様 堅牢なサーバーとして定評のあるDebianをベースとし、高い信頼性とパフォーマンス、Ubuntuの特徴でもある新しいパッケージを提供するものです。
基本はDebianで、扱いやすさを Ubuntu Desktop にあわせたようなものです。 そのため、管理者権限が必要なコマンドは、デフォルトで、すべてsudoが必要になります。
- ConoHa コントロールパネルからサーバーを再起動します。
ISOイメージをマウントは、先の手順でマウントできているものと思いますので、ここでは、サーバー(VPS)の再起動を実行します。
- ConoHaのコントロールパネルへログインし、サーバーリストをクリックします。
- 再起動するサーバーをチェックします。
- 一括操作の再起動をクリックし、システムの再起動を実行します。
- 再起動を実行したら、サーバーリストから再起動したサーバーをクリックします。
- 再起動したサーバーのコンソールを表示します。
再起動すると以下のような画面がコンソールに表示されます。
最初の画面は、言語の指定です。ここでは、日本語を選択し、<Enter>を入力します。
- ConoHaのコントロールパネルへログインし、サーバーリストをクリックします。
- Ubuntu Server のインストール画面から、Ubuntu Server をインストール を選択し<Enter>を入力します。
ここでは、単純に Ubuntu Server をインストールしたいので、そのまま<Enter>を入力します。
( 他のインストール種別を選択したい場合は、カーソルで選択することができます。カーソルで選択後(文字が白くなります)、同様に<Enter>を入力します。 )
- 次に言語選択の画面から、日本語を選択し、<Enter>を入力します。
<Enter>後、以下の画面へ切り替わり、日本語に関しては完全な翻訳となっていないことを通知するメッセージが表示されます。
Tabキーではいを選択し、<Enter>を入力し、インストールを続行します。
( もしも、言語を変更したい場合は、いいえを選択し、前の画面に戻って再度言語を選択しなおしましょう。)
- 次に場所選択の画面から、日本を選択し、<Enter>を入力します。
- 次にキーボードの設定を行います。
上記のようにキーボードの自動検出を行うか確認の画面が表示されます。
通常のインストールであれば、自動検出でもOKですが、ここはあくまでリモートのため、手動での設定を行います。
Tabキーでいいえを選択し、<Enter>を入力します。
次にキーボードの言語を指定します。ここでは、日本語を選択し、<Enter>を入力します。
次にキーボードのタイプを指定します。
上記画面で
Macなら、日本語 (Macintosh)
Windowsなら、日本語 あるいは、日本語 (OADG 109A)で間違いないでしょう。
それぞれ選択し、<Enter>を入力します。
キーボードの配列は、109型と109A型の違いは、~(チルダ、波ダッシュ)の刻印位置がどこに配置されているかで判断できます。
「を」、「0」と同じキーに配置されている場合は、109型になります。
「へ」、「^」と同じキーに配置されている場合は、109A型になります。
105,106,109型の場合、Japanを選択した方が良いでしょう。
あえて「かな入力」をしたい場合は、Japan Kanaの選択もありますが、多少の問題も含まれている?ようなので、「Rかな」でJapanを選択した方が無難でしょう。
- ホスト名を指定します。
ホスト名が決まっている場合は、ホスト名を手動で設定します。TABキーで<続ける>を選択し<Enter>を入力します。
例)host.exmaple.com
- ユーザを設定します。
Ubuntuは、基本的に管理者ユーザとしてのrootは使いません。
管理権限が必要なコマンドは、常にsudoを前につけて実行することで、常に意識して利用することになっています。
そのため、インストール時に、Red Hat系はrootのパスワードを設定するところ、Ubuntuでは、ユーザ、パスワードを設定します。
以下の画面で、ユーザ名を入力し、<Enter>を入力します。
続けて、ユーザ名のフルネームを入力し、<Enter>を入力します。
続けて、パスワードを入力し、<Enter>を入力します。
再度、パスワードを入力し、<Enter>を入力します。
ここで入力したユーザ名、パスワードを必ず控えておきましょう。
ログインできなくなりますからね。最後に、ホームディレクトリの暗号化を行うかどうかの確認が表示されます。
Ubuntuでは、PCの盗難などでディスク中身が参照できないように ホームディレクトリの暗号化ができます。
暗号化したい場合は、Tabキーではいを選択し、<Enter>を入力します。
暗号化したくない場合は、Tabキーでいいえを選択し、<Enter>を入力します。
一般的に暗号化する必要はないと思いますので、ここでは、TABキーで<いいえ>を選択し、<Enter>を入力して、次の画面へ進みます。
- タイムゾーン(地域)を指定します。
画面内にTokyo/Asiaが表記されていると思います。TABキーで<はい>を選択し<Enter>を入力します。
あえて変更したい場合は、TABキーで<いいえ>を選択し<Enter>を入力します。
- インストールするディスク(パーティション)を指定します。
特別なディスクやパーティションの設定を行いたい場合は、ここで詳細な設定を行います。
一般的なインストールの場合、デフォルトのまま「ガイド – ディスク全体を使う」で問題ないと思います。その場合、<Enter>を入力して、次の画面へ進みます。
しかし、ここでは、既にサーバーとして起動していたディスクですので、まっさらのディスクではありません。そのため、一旦、削除し新たなパーティションを作成するため 手動でパーティションを設定 を行います。
パーティションの画面に行く前に、以下のようにマウントが検出された由のメッセージが表示されるかもしれません。
ここでは、パーティションを全面的にやりなおしますので、アンマウントします。
はい を選択し、<Enter>を入力して、次の画面へ進みましょう。
- パーティショニングの方法で手動を選択し、<Enter>を入力します。
- 既にパーティションが存在する場合、現在のパーティションを全削除します。
ここでは、SSD 50GBが1つしかないはずです。仮想ディスク1を選択し、<Enter>を入力します。
上記のように既にパーティションが存在する場合、そのリストが表示されます。
下から順番にパーティションを削除します。上記の出力例であれば、スワップを選択し、<Enter>を入力します。
上記のようにパーティションの操作メニューが表示されますので、パーティションの削除を選択し、<Enter>を入力します。
既存パーティションリストの画面に戻ったら、同じように、基本を選択し、<Enter>を入力します。
同じように、上記のようにパーティションの操作メニューが表示されますので、パーティションの削除を選択し、<Enter>を入力します。
既存パーティションリストの画面に戻ったら、すべての領域が空きになったと思います。
- 仮想ディスク1にOSをインストールするパーティションとスワップ用のパーティションを作成します。
仮想ディスク1の下の空き領域を選択し、<Enter>を入力します。
次に操作の選択です。ここでは、新しいパーティションの作成を選択し、<Enter>を入力します。
次に作成するパーティションの容量を設定します。ここでは、全体が53.7GBで、内2GBをスワップとしたいので、残りの51.7GBを入力し、<Enter>を入力します。
次に作成するパーティションのタイプを設定します。ここでは、OSをインストールするパーティションなので基本パーティションを選択し、<Enter>を入力します。
次に作成するパーティションの場所を設定します。ここでは、先頭選択し、<Enter>を入力します。
最後に作成するパーティションの詳細情報を設定します。 ここでは、OS領域なので起動フラグだけオンに切り替え(起動フラグを選択し<Enter>を入力すると切り替わります)、Tabキーでパーティションのセットアップを終了を選択し、<Enter>を入力します。
続けて、スワップ領域のパーティションを作成します。
仮想ディスク1の下の空き領域を選択し、<Enter>を入力します。
次に操作の選択です。ここでは、新しいパーティションの作成を選択し、<Enter>を入力します。
次に作成するパーティションの容量を設定します。ここでは、スワップ用として残りの2GBを入力し、<Enter>を入力します。
次に作成するパーティションのタイプを設定します。ここでは、スワップ領域のパーティションなので基本パーティションを選択し、<Enter>を入力します。
次に作成するパーティションの詳細情報を設定します。ここでは、利用方法の設定をスワップに変更します。
デフォルトで 利用方法が ext4 ジャーナリングファイルシステム となっているので、これを選択し、<Enter>を入力します。
利用方法の種別が一覧表示されますので、ここでスワップ領域を選択し、<Enter>を入力します。
最後にTabキーでパーティションのセットアップを終了を選択し、<Enter>を入力します。
設定を終えたら、最後に書き込みを行います。
パーティショニングの終了とディスクへの変更の書き込み を選択し、<Enter>を入力します。
書き込み確認画面になります。問題なければ、TABキーで<はい>を選択し<Enter>を入力します。
パーティションの作成が実行されます。
- パーティショニングの方法で手動を選択し、<Enter>を入力します。
- インストールするパッケージ選択し、インストールを開始します。
まずは、外部アクセスする際にプロキシーサーバーを経由する必要がある場合は、プロキシーサーバーの設定をします。
プロキシーサーバーを経由しない場合は、空欄のまま<Enter>を入力して、次の画面へ進みます。
次は、システムの自動アップデートを有効にするか否かを設定します。
ここでは、システムアップデートは、手動で行いたいので、 自動的にアップデートしない を選択し、<Enter>を入力して、次の画面へ進みます。
次は、インストールするパッケージを選択します。
ここでは、外部から接続できるか確認するために OpenSSH Server だけは選択し、TABキーで<続ける>を選択し、<Enter>を入力して、次の画面へ進みます。
次は、ブートローダーのインストールします。
ここでは、TABキーで<はい>を選択し、<Enter>を入力して、パッケージのインストールを開始します。
- インストールを終えたら、確認画面が表示されます。
最後に、確認画面です。
ここでは、TABキーで<続ける>を選択し、<Enter>を入力してシステムのリブートを実行します。
APIを使ってISOイメージをアンマウントする
インストールを終えたら、先にマウントしたISOイメージをアンマウントします。
- サーバー(VPS)のシャットダウンします。
ISOイメージをアンマウントする際は、サーバーを停止しておく必要があります。 そこで、ConoHa コントロールパネルからシャットダウンにてサーバーを停止します。
- ISOイメージをアンマウントします。
PHP
先の function および 先に取得したトークンを使って サーバー(VPS)にISOイメージをマウントします。 以下のファイルを mount.php のファイル名で保存します。
<?php include_once 'conoha_api.php'; $data = [ "unmountImage" => '' ]; print_r( conoha_post_api('https://compute.tyo1.conoha.io/v2/zzzzzzzzzzzzzzzzz/servers/111111-2222-3333-4444-55555555/action', $data, 'AAAAAAAAAAAAAAAAAAAAAAAAAA') ); ?>
上記ファイルを実行してみます。
$ php mount.php
cURL
cURLコマンド および 先に取得したトークンを使って サーバー(VPS)にISOイメージをマウントします。
$ curl -i -X POST \ -H "Accept: application/json" \ -H "X-Auth-Token: AAAAAAAAAAAAAAAAAAAAAAAAAA" \ -d '{"unmountImage": ""}' \ https://compute.tyo1.conoha.io/v2/zzzzzzzzzzzzzzzzz/servers/111111-2222-3333-4444-55555555/action HTTP/1.1 204 No Content Server: openresty/1.7.10.1 Date: Wed, 27 May 2015 00:29:36 GMT Content-Type: application/json Content-Length: 0
- サーバー(VPS)を起動します。
ISOイメージをアンマウントを終えたら、サーバーを起動します。
最後にSSH接続してみる
起動したら、外部のPCからSSH接続してみます。ここではTeraTermを使って接続してみます。
簡単な OpenStack の APIの使い方を含めて Ubuntu Server をインストールしてみました。
旧ConoHaや さくらのVPS の ISOアップロード機能は、 ウェブブラウザ+FTPクライアントソフトで好きなOSをインストールできましたが、今回の新ConoHaでは、APIを使わないと実現できません。
そのため、少なくとも curl コマンドが使えるか php,perlなどのスクリプトが使える程度の知識が必要となります。
ここでは、PHPを使って簡単なプログラミングを行ってみました。 プログラミングと言えるほどのものでもありませんが、何かの参考になればうれしく思います。
ConoHaに興味のある方は、http://www.conoha.jp/ からどうぞ。
さくらのVPSに興味のある方は、http://vps.sakura.ad.jp/ からどうぞ。
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
コメントを投稿 :