レンタルサーバー・自宅サーバー設定・構築のヒント
レンタルサーバー・自宅サーバー設定・構築のヒント - レンタルサーバー・自宅サーバーの設定・構築情報を公開しています。

U14

ConoHa の API を使ってみる、ついでに、ISOイメージを使って Ubuntu Server 14.04 をインストールしてみる。

2015年5月28日 2015年5月28日
ConoHa VPS

評価の高い 新 ConoHa VPS と さくらのVPS の特徴とUnixBenchを含めたパフォーマンスを比較してみました。 で ConoHa がリニューアルしたことを含めてサーバーのパフォーマンスについて紹介しました。

今回は、その新ConoHaの新機能 API を使ってみます。
また、新ConoHaでなくなった ISOアップロード機能について、APIを使って実現できるとのことで、試しに ISOイメージから Ubuntu Server 14.04 LTS をインストールしてみました。

ConoHa のAPIを使ってみる

ConoHa のAPI (WebAPIともいう) は、ConoHa自体が OpenStack を使っているので、そのAPIそのままです。

各APIの詳しい解説は、https://www.conoha.jp/docs/index.html を参照されると良いでしょう。 ただ、日本語の解説がされていない部分(空白のまま)も多いです。 その際は、OpenStackのAPI仕様書を http://docs.openstack.org/ 確認されると良いでしょう。
OpenStackとは、
オープンソースで開発されているクラウド環境構築用のソフトウェア群のことを言います。
OpenStackは、KVMやXen、VMware ESXi、Hyper-Vといった仮想化技術を用いたソフトウェア(ハイパーバイザー)と組み合わせ、 IaaSInfrastructure as a Service)や ストレージサービスを提供するための 仮想マシンやストレージ、ネットワークの管理・運営のための機能を提供し、クラウド環境が構築できるようになります。

さらに、OpenStackのAPIは Amazon EC2とAmazon S3と互換性があり、Amazon Web Servicesのために書かれたクライアントアプリケーションを 最小限の移植作業でOpenStackにて使用することができるようになっています。(Wikipedia 引用)
IaaSとは、
Infrastructure as a Service の略で、直訳では、”サービス(として)の基盤” という感じでしょうか。
Wikipedia では、
コンピュータシステムを構築および稼動させるための基盤(仮想マシンやネットワークなどのインフラ)そのものを、インターネット経由のサービスとして提供する・・・ とあります。

つまりは、仮想マシン単位でリソースを利用できるようにする管理・提供するサービスというところでしょうか。

では、早速、ConoHa のAPI を使ってみましょう。 ここでは、curl コマンド および PHPでやってみます。PHPでは、基本的なことがわかりやすいように curlライブラリを使わず stream_context_create と file を使ってアクセスしてみます。

APIを利用するユーザ、パスワードを追加する

ConoHa のAPI を利用するには、APIを利用する ユーザ、パスワードが必要となります。
そのユーザ、パスワードは、ConoHa コントロールパネルから 登録することができます。

  1. ConoHa コントロールパネルから、API をクリックします。

  2. API ページから、追加ボタンをクリックします。
  3. パスワードを入力、保存ボタンをクリックします。

    ユーザは 固定となりますので、この保存処理でユーザ、パスワードが設定完了となります。


    上記の画面で 必ず 情報を確認しておきます。

    (1)テナント情報 : テナントIDは、APIを利用する際に必要となります。
    (2)エンドポイント: APIのアクセスアドレスになります。各リージョンによって異なりますからメモしておかれると良いと思います。
    (3)APIユーザ: APIを利用する際に必要となります。ユーザ名は、ここで表示されたものになりますんでメモしておかれると良いと思います。

APIを使ってバージョン情報を出力してみる

先にAPIユーザの登録を終えたら、ConoHa のAPIを利用することができます。
早速、簡単なバージョン情報の出力を行ってみます。

PHP

APIへの GET および POST アクセスのためのfunction を作成します。 ほとんど同じような処理ですが、わかりやすいように2つに分けました。この functionは以降でもそのまま利用します。 (conoha_api.php のファイル名で保存します。)

<?php
//	conoha API get --
function conoha_get_api($url, $query, $token='' )
{
	$header = [
		"Accept: application/json" 
	];
	if(!empty($token)) {
		$header[] = "X-Auth-Token: $token";
	}

	if( !empty($query) && is_array($query) && count($query)>0 ) {
		$url .= '?'.http_build_query($query);
	}
	
	$context = stream_context_create(array(
		'http' => array(
			'method' => 'GET',
			'header' => implode(PHP_EOL,$header),
		)
	));
	$response = file_get_contents(
						$url,
						false,
						$context
				);
	if($response===false) {
		return false;
	} else {
		return json_decode($response,true);
	}
}
//	conoha API post --
function conoha_post_api($url, $data, $token='' )
{
	$header = [
		'Content-Type: application/json' ,
		"Accept: application/json" 
	];
	if(!empty($token)) {
		$header[] = "X-Auth-Token: $token";
	}

	$context = stream_context_create(array(
		'http' => array(
			'method' => 'POST',
			'header' => implode(PHP_EOL,$header),
			'content'=>  json_encode($data),
		)
	));

	$response = file_get_contents(
						$url,
						false,
						$context
				);
	if($response===false) {
		return false;
	} else {
		return json_decode($response,true);
	}
}
?>

先の function を使って、バージョン情報を出力します。 以下のファイルを version.php のファイル名で保存します。

<?php
include_once 'conoha_api.php';
print_r( conoha_get_api('https://identity.tyo1.conoha.io/v2.0', '') );
?>

上記ファイルを実行してみます。

$ php version.php

Array
(
    [version] => Array
        (
            [status] => stable
            [updated] => 2015-05-12T09:00:00Z
            [media-types] => Array
                (
                    [0] => Array
                        (
                            [base] => application/json
                        )

                    [1] => Array
                        (
                            [base] => application/xml
                        )

                )

            [id] => v2.0
            [links] => Array
                (
                    [0] => Array
                        (
                            [href] => https://identity.tyo1.conoha.io/v2.0/
                            [rel] => self
                        )

                    [1] => Array
                        (
                            [href] => https://www.conoha.jp/docs/
                            [type] => text/html
                            [rel] => describedby
                        )

                )

        )

)
cURL

cURLコマンド を使って、バージョン情報を出力します。

$ curl -i -X GET \
-H "Accept: application/json" \
https://identity.tyo1.conoha.io/v2.0

HTTP/1.1 200 OK
Server: openresty/1.7.10.1
Date: Wed, 27 May 2015 17:16:21 GMT
Content-Type: application/json
Content-Length: 310

{
    "version": {
        "status": "stable",
        "updated": "2015-05-12T09:00:00Z",
        "media-types": [
            {
                "base": "application\/json"
            },
            {
                "base": "application\/xml"
            }
        ],
        "id": "v2.0",
        "links": [
            {
                "href": "https:\/\/identity.tyo1.conoha.io\/v2.0\/",
                "rel": "self"
            },
            {
                "href": "https:\/\/www.conoha.jp\/docs\/",
                "type": "text\/html",
                "rel": "describedby"
            }
        ]
    }
}

トークンを取得してみる

次にトークン(一時的なパスワードのようなもの)を取得します。 トークンがないと固有の情報取得や設定、サーバーの作成などはできません。

ここでは、必要となる各情報を以下のような値として解説しています。

  • API ユーザ名 : xxxxxxxxxx
  • API パスワード : yyyyyyyyy
  • テナントID : zzzzzzzzzzzzzzzzz
PHP

先の function を使って、トークンを取得します。 以下のファイルを token.php のファイル名で保存します。

<?php
include_once 'conoha_api.php';
$data = [
  "auth"=> [
    "passwordCredentials" => [
      "username" => "xxxxxxxxxx" ,   // API ユーザ名
      "password" => "yyyyyyyyy"      // API パスワード
    ],
    "tenantId" => "zzzzzzzzzzzzzzzzz" // テナントID
  ]
];
print_r( conoha_get_api('https://identity.tyo1.conoha.io/v2.0/tokens', $data) );
?>

上記ファイルを実行してみます。

$ php token.php

Array
(
    [access] => Array
        (
            [token] => Array
                (
                    [issued_at] => 2015-05-27T17:41:12.211331
                    [expires] => 2015-05-28T17:41:12Z
                    [id] => AAAAAAAAAAAAAAAAAAAAAAAAAA
                    [tenant] => Array
                        (
                            [name] => tenantNAMEzzzzz
                            [enabled] => 1
                            [tyo1_image_size] => 50GB
                            [id] => zzzzzzzzzzzzzzzzz
                            [sin1_image_size] => 50GB
                            [sjc1_image_size] => 50GB
                            [domain_id] => gnc
                            [description] =>
                        )

                    [audit_ids] => Array
                        (
                            [0] => ccccccccccccccc
                        )

                )

            [serviceCatalog] => Array
                (
                .... ( 省略 )

                )

            [user] => Array
                (
                .... ( 省略 )
                )

            [metadata] => Array
                (
                .... ( 省略 )
                )

        )

)
cURL

cURLコマンド を使って、トークンを取得します。

$ curl -i -X POST \
-H "Accept: application/json" \
-d '{"auth":{"passwordCredentials":{"username":"xxxxxxxxxx","password":"yyyyyyyyy"},"tenantId":"zzzzzzzzzzzzzzzzz"}}' \
https://identity.tyo1.conoha.io/v2.0/tokens

HTTP/1.1 200 OK
Server: openresty/1.7.10.1
Date: Wed, 27 May 2015 17:40:54 GMT
Content-Type: application/json
Content-Length: 2452

{
    "access": {
        "token": {
            "issued_at": "2015-05-27T17:41:12.211331",
            "expires": "2015-05-28T17:41:12Z",
            "id": "AAAAAAAAAAAAAAAAAAAAAAAAAA",
            "tenant": {
                "name": "tenantNAMEzzzzz",
                "enabled": true,
                "tyo1_image_size": "50GB",
                "id": "zzzzzzzzzzzzzzzzz",
                "sin1_image_size": "50GB",
                "sjc1_image_size": "50GB",
                "domain_id": "gnc",
                "description": ""
            },
            "audit_ids": [
                "ccccccccccccccc"
            ]
        },
        "serviceCatalog": [
                .... ( 省略 )
        ],
        "user": {
                .... ( 省略 )
        },
        "metadata": {
                .... ( 省略 )
        }
    }
}

上記の出力情報の AAAAAAAAAAAAAAAAAAAAAAAAAA がトークンIDになります。

VMのプラン(flavor)を出力してみる

先に取得したトークンを使って、VMのプラン(flavor)の詳細情報を取得してみます。
ここでは、必要となる各情報を以下のような値として解説しています。

  • テナントID : zzzzzzzzzzzzzzzzz
  • トークン : AAAAAAAAAAAAAAAAAAAAAAAAAA
PHP

先の function および 先に取得したトークンを使って VMのプラン(flavor)一覧を取得します。 以下のファイルを vmplan.php のファイル名で保存します。

<?php
include_once 'conoha_api.php';
print_r( conoha_get_api('https://compute.tyo1.conoha.io/v2/zzzzzzzzzzzzzzzzz/flavors', '', 'AAAAAAAAAAAAAAAAAAAAAAAAAA') );
?>

上記ファイルを実行してみます。

$ php vmplan.php

Array
(
    [flavors] => Array
        (
            [0] => Array
                (
                    [id] => 294639c7-72ba-43a5-8ff2-513c8995b869
                    [links] => Array
                        (
                            [0] => Array
                                (
                                    [href] => https://compute.tyo1.conoha.io/v2/zzzzzzzzzzzzzzzzz/flavors/294639c7-72ba-43a5-8ff2-513c8995b869
                                    [rel] => self
                                )

                            [1] => Array
                                (
                                    [href] => https://compute.tyo1.conoha.io/zzzzzzzzzzzzzzzzz/flavors/294639c7-72ba-43a5-8ff2-513c8995b869
                                    [rel] => bookmark
                                )

                        )

                    [name] => g-2gb
                )

            [1] => Array
                (
                    [id] => 3aa001cd-95b6-46c9-a91e-e62d6f7f06a3
                    .... ( 省略 )
                    [name] => g-16gb
                )

            [2] => Array
                (
                    [id] => 62e8fb4b-6a26-46cd-be13-e5bbf5614d15
                    .... ( 省略 )
                    [name] => g-4gb
                )

            [3] => Array
                (
                    [id] => 7eea7469-0d85-4f82-8050-6ae742394681
                    .... ( 省略 )
                    [name] => g-1gb
                )

            [4] => Array
                (
                    [id] => 965affd4-d9e8-4ffb-b9a9-624d63e2d83f
                    .... ( 省略 )
                    [name] => g-8gb
                )

            [5] => Array
                (
                    [id] => a20905c6-3733-46c4-81cc-458c7dca1bae
                    .... ( 省略 )
                    [name] => g-32gb
                )

            [6] => Array
                (
                    [id] => c2a97b05-1b4b-4038-bbcb-343201659279
                    .... ( 省略 )
                    [name] => g-64gb
                )

        )

)
cURL

cURLコマンド および 先に取得したトークンを使って VMのプラン(flavor)一覧を取得します。

$ curl -i -X GET \
-H "Accept: application/json" \
-H "X-Auth-Token: AAAAAAAAAAAAAAAAAAAAAAAAAA" \
https://compute.tyo1.conoha.io/v2/zzzzzzzzzzzzzzzzz/flavors/detail

HTTP/1.1 200 OK
Server: openresty/1.7.10.1
Date: Wed, 27 May 2015 18:05:20 GMT
Content-Type: application/json
Content-Length: 2424

{
    "flavors": [
        {
            "id": "294639c7-72ba-43a5-8ff2-513c8995b869",
            "links": [
                {
                    "href": "https:\/\/compute.tyo1.conoha.io\/v2\/zzzzzzzzzzzzzzzzz\/flavors\/294639c7-72ba-43a5-8ff2-513c8995b869",
                    "rel": "self"
                },
                {
                    "href": "https:\/\/compute.tyo1.conoha.io\/zzzzzzzzzzzzzzzzz\/flavors\/294639c7-72ba-43a5-8ff2-513c8995b869",
                    "rel": "bookmark"
                }
            ],
            "name": "g-2gb"
        },
        {
            "id": "3aa001cd-95b6-46c9-a91e-e62d6f7f06a3",
            .... ( 省略 )
            "name": "g-16gb"
        },
        {
            "id": "62e8fb4b-6a26-46cd-be13-e5bbf5614d15",
            .... ( 省略 )
            "name": "g-4gb"
        },
        {
            "id": "7eea7469-0d85-4f82-8050-6ae742394681",
            .... ( 省略 )
            "name": "g-1gb"
        },
        {
            "id": "965affd4-d9e8-4ffb-b9a9-624d63e2d83f",
            .... ( 省略 )
            "name": "g-8gb"
        },
        {
            "id": "a20905c6-3733-46c4-81cc-458c7dca1bae",
            .... ( 省略 )
            "name": "g-32gb"
        },
        {
            "id": "c2a97b05-1b4b-4038-bbcb-343201659279",
            .... ( 省略 )
            "name": "g-64gb"
        }
    ]
}

ConoHa のAPIを使って、Ubuntu Server をインストールする

APIを使ってISOイメージをダウンロードしてみる

旧ConoHaでは、ISOアップロード機能と言っていました。
新ConoHaでは、APIで ISOイメージダウンロードが用意されてます。このAPIが同じ機能になります。

ただ、旧ISOアップロード機能がPCからのSFTPによるアップロードであったのに対し、
APIのISOイメージダウンロードは、インターネット上にあるISOイメージファイルを文字通り ConoHaのサーバーへダウンロードする機能になります。

先に取得したトークンを使って、ISOイメージのダウンロードを実行してみます。
ここでは、必要となる各情報を以下のような値として解説しています。

  • テナントID : zzzzzzzzzzzzzzzzz
  • トークン : AAAAAAAAAAAAAAAAAAAAAAAAAA
PHP

先の function および 先に取得したトークンを使って ISOイメージのダウンロードを実行します。 以下のファイルを download.php のファイル名で保存します。

<?php
include_once 'conoha_api.php';
$data = [
    "iso-image" => [
        "url" => 'http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-server-amd64.iso' // ダウンロードするISOファイルのURL
    ]
];
print_r( conoha_post_api('https://compute.tyo1.conoha.io/v2/zzzzzzzzzzzzzzzzz/iso-images', $data, 'AAAAAAAAAAAAAAAAAAAAAAAAAA') );
?>

上記ファイルを実行してみます。

$ php download.php

Array
(
    [request] => Array
        (
            [iso-image] => Array
                (
                    [url] => http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-server-amd64.iso
                )

        )

    [user] => zzzzzzzzzzzzzzzzz
)
cURL

cURLコマンド および 先に取得したトークンを使って ISOイメージのダウンロードを実行します。

$ curl -i -X POST \
-H 'Content-Type: application/json' \
-H "Accept: application/json" \
-H "X-Auth-Token: AAAAAAAAAAAAAAAAAAAAAAAAAA" \
-d '{"iso-image":{"url":"http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-server-amd64.iso"}}' \
https://compute.tyo1.conoha.io/v2/zzzzzzzzzzzzzzzzz/iso-images


HTTP/1.0 201 CREATED
Content-Type: application/json
Content-Length: 173
Location: http://172.21.20.24:8774/v2/zzzzzzzzzzzzzzzzz/iso-images
Server: Werkzeug/0.8.3 Python/2.6.6
Date: Wed, 18 Mar 2015 11:37:10 GMT


{
  "request": {
    "iso-image": {
      "url": "http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-server-amd64.iso"
    }
  },
  "user": "zzzzzzzzzzzzzzzzz"
}

ちゃんとダウンロードできたかダウンロード一覧を取得してみます。

PHP

先の function および 先に取得したトークンを使って ISOイメージの一覧を取得します。 以下のファイルを download-list.php のファイル名で保存します。

<?php
include_once 'conoha_api.php';
print_r( conoha_get_api('https://compute.tyo1.conoha.io/v2/zzzzzzzzzzzzzzzzz/iso-images', '', 'AAAAAAAAAAAAAAAAAAAAAAAAAA') );
?>

上記ファイルを実行してみます。

$ php download-list.php

Array
(
    [iso-images] => Array
        (
            [0] => Array
                (
                    [url] => http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-server-amd64.iso
                    [path] => /mnt/isos/repos/tenant_iso_data/zzzzzzzzzzzzzzzzz/ubuntu-14.04.2-server-amd64.iso
                    [ctime] => Thu Feb 19 04:46:48 2015
                    [name] => ubuntu-14.04.2-server-amd64.iso
                    [size] => 623902720
                )

        )

)
cURL

cURLコマンド および 先に取得したトークンを使って ISOイメージの一覧を取得します。

$ curl -i -X GET \
-H 'Content-Type: application/json' \
-H "Accept: application/json" \
-H "X-Auth-Token: AAAAAAAAAAAAAAAAAAAAAAAAAA" \
https://compute.tyo1.conoha.io/v2/zzzzzzzzzzzzzzzzz/iso-images

HTTP/1.1 202 Accepted
Server: openresty/1.7.10.1
Date: Tue, 26 May 2015 23:28:03 GMT
Content-Type: application/json
Content-Length: 442

{
  "iso-images": [
    {
      "url": "http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-server-amd64.iso",
      "path": "/mnt/isos/repos/tenant_iso_data/zzzzzzzzzzzzzzzzz/ubuntu-14.04.2-server-amd64.iso",
      "ctime": "Thu Feb 19 04:46:48 2015",
      "name": "ubuntu-14.04.2-server-amd64.iso",
      "size": 623902720
    },
  ]
}

ここでは、path 情報をメモしておきましょう。マウントする際に使用します。



APIを使ってISOイメージをマウントする

先にダウンロードしたISOイメージを、今度は、APIを使って マウントします。

  1. マウントするサーバー(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 情報をメモしておきましょう。マウントする際に使用します。

  2. サーバー(VPS)のシャットダウンします。

    ISOイメージをマウントする際は、サーバーを停止しておく必要があります。 そこで、ConoHa コントロールパネルからシャットダウンにてサーバーを停止します。

    1. ConoHaのコントロールパネルへログインし、サーバーリストをクリックします。

    2. 停止するサーバーをチェックします。
    3. 一括操作のシャットダウンをクリックし、システムの停止を実行します。

      停止できたら、以下のようにステータスが停止となります。


  3. 先にダウンロードした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 の Serverパッケージになります。 通常の Ubuntu は、Ubuntu Desktop とも呼ばれ、Ubuntu Server と区別されています。 ベースは、Ubuntu Desktop 同様 堅牢なサーバーとして定評のあるDebianをベースとし、高い信頼性とパフォーマンス、Ubuntuの特徴でもある新しいパッケージを提供するものです。

基本はDebianで、扱いやすさを Ubuntu Desktop にあわせたようなものです。 そのため、管理者権限が必要なコマンドは、デフォルトで、すべてsudoが必要になります。
  1. ConoHa コントロールパネルからサーバーを再起動します。

    ISOイメージをマウントは、先の手順でマウントできているものと思いますので、ここでは、サーバー(VPS)の再起動を実行します。

    1. ConoHaのコントロールパネルへログインし、サーバーリストをクリックします。

    2. 再起動するサーバーをチェックします。
    3. 一括操作の再起動をクリックし、システムの再起動を実行します。

    4. 再起動を実行したら、サーバーリストから再起動したサーバーをクリックします。

    5. 再起動したサーバーのコンソールを表示します。

      再起動すると以下のような画面がコンソールに表示されます。

      最初の画面は、言語の指定です。ここでは、日本語を選択し、<Enter>を入力します。


  2. Ubuntu Server のインストール画面から、Ubuntu Server をインストール を選択し<Enter>を入力します。
    インストール画面表示

    ここでは、単純に Ubuntu Server をインストールしたいので、そのまま<Enter>を入力します。
    ( 他のインストール種別を選択したい場合は、カーソルで選択することができます。カーソルで選択後(文字が白くなります)、同様に<Enter>を入力します。 )

  3. 次に言語選択の画面から、日本語を選択し、<Enter>を入力します。
    言語選択

    <Enter>後、以下の画面へ切り替わり、日本語に関しては完全な翻訳となっていないことを通知するメッセージが表示されます。

    言語選択

    Tabキーではいを選択し、<Enter>を入力し、インストールを続行します。
    ( もしも、言語を変更したい場合は、いいえを選択し、前の画面に戻って再度言語を選択しなおしましょう。)

  4. 次に場所選択の画面から、日本を選択し、<Enter>を入力します。
    場所選択

  5. 次にキーボードの設定を行います。
    キーボード検出

    上記のようにキーボードの自動検出を行うか確認の画面が表示されます。
    通常のインストールであれば、自動検出でもOKですが、ここはあくまでリモートのため、手動での設定を行います。
    Tabキーでいいえを選択し、<Enter>を入力します。

    次にキーボードの言語を指定します。ここでは、日本語を選択し、<Enter>を入力します。

    キーボード言語

    次にキーボードのタイプを指定します。

    キーボードタイプ

    上記画面で
    Macなら、日本語 (Macintosh)
    Windowsなら、日本語 あるいは、日本語 (OADG 109A)で間違いないでしょう。
    それぞれ選択し、<Enter>を入力します。

    キーボードの配列は、109型と109A型の違いは、~(チルダ、波ダッシュ)の刻印位置がどこに配置されているかで判断できます。
    「を」、「0」と同じキーに配置されている場合は、109型になります。
    「へ」、「^」と同じキーに配置されている場合は、109A型になります。

    105,106,109型の場合、Japanを選択した方が良いでしょう。
    あえて「かな入力」をしたい場合は、Japan Kanaの選択もありますが、多少の問題も含まれている?ようなので、「Rかな」でJapanを選択した方が無難でしょう。

  6. ホスト名を指定します。
    ホスト名

    ホスト名が決まっている場合は、ホスト名を手動で設定します。TABキーで<続ける>を選択し<Enter>を入力します。
    例)host.exmaple.com


  7. ユーザを設定します。

    Ubuntuは、基本的に管理者ユーザとしてのrootは使いません。
    管理権限が必要なコマンドは、常にsudoを前につけて実行することで、常に意識して利用することになっています。

    そのため、インストール時に、Red Hat系はrootのパスワードを設定するところ、Ubuntuでは、ユーザ、パスワードを設定します。
    以下の画面で、ユーザ名を入力し、<Enter>を入力します。

    Ubuntuユーザ名

    続けて、ユーザ名のフルネームを入力し、<Enter>を入力します。

    Ubuntuユーザ名フルネーム

    続けて、パスワードを入力し、<Enter>を入力します。

    Ubuntuパスワード

    再度、パスワードを入力し、<Enter>を入力します。

    Ubuntuパスワード
    ここで入力したユーザ名、パスワードを必ず控えておきましょう。
    ログインできなくなりますからね。

    最後に、ホームディレクトリの暗号化を行うかどうかの確認が表示されます。
    Ubuntuでは、PCの盗難などでディスク中身が参照できないように ホームディレクトリの暗号化ができます。

    暗号化したい場合は、Tabキーではいを選択し、<Enter>を入力します。
    暗号化したくない場合は、Tabキーでいいえを選択し、<Enter>を入力します。

    Ubuntuホームの暗号化

    一般的に暗号化する必要はないと思いますので、ここでは、TABキーで<いいえ>を選択し、<Enter>を入力して、次の画面へ進みます。


  8. タイムゾーン(地域)を指定します。

    画面内にTokyo/Asiaが表記されていると思います。TABキーで<はい>を選択し<Enter>を入力します。

    Ubuntuタイムゾーンの設定

    あえて変更したい場合は、TABキーで<いいえ>を選択し<Enter>を入力します。


  9. インストールするディスク(パーティション)を指定します。

    特別なディスクやパーティションの設定を行いたい場合は、ここで詳細な設定を行います。
    一般的なインストールの場合、デフォルトのまま「ガイド – ディスク全体を使う」で問題ないと思います。その場合、<Enter>を入力して、次の画面へ進みます。

    しかし、ここでは、既にサーバーとして起動していたディスクですので、まっさらのディスクではありません。そのため、一旦、削除し新たなパーティションを作成するため 手動でパーティションを設定 を行います。

    Ubuntuパーティションの設定
    パーティションの画面に行く前に、以下のようにマウントが検出された由のメッセージが表示されるかもしれません。
    Ubuntuパーティションの設定
    ここでは、パーティションを全面的にやりなおしますので、アンマウントします。
    はい を選択し、<Enter>を入力して、次の画面へ進みましょう。
    1. パーティショニングの方法で手動を選択し、<Enter>を入力します。
      Ubuntuパーティションの設定

    2. 既にパーティションが存在する場合、現在のパーティションを全削除します。
      Ubuntuパーティションの削除1

      ここでは、SSD 50GBが1つしかないはずです。仮想ディスク1を選択し、<Enter>を入力します。


      Ubuntuパーティションの削除1確認

      上記のように既にパーティションが存在する場合、そのリストが表示されます。
      下から順番にパーティションを削除します。上記の出力例であれば、スワップを選択し、<Enter>を入力します。

      Ubuntuパーティションの削除1確認

      上記のようにパーティションの操作メニューが表示されますので、パーティションの削除を選択し、<Enter>を入力します。

      Ubuntuパーティションの削除1確認

      既存パーティションリストの画面に戻ったら、同じように、基本を選択し、<Enter>を入力します。

      Ubuntuパーティションの削除1確認

      同じように、上記のようにパーティションの操作メニューが表示されますので、パーティションの削除を選択し、<Enter>を入力します。

      Ubuntuパーティションの削除1確認

      既存パーティションリストの画面に戻ったら、すべての領域が空きになったと思います。


    3. 仮想ディスク1にOSをインストールするパーティションとスワップ用のパーティションを作成します。
      Ubuntuパーティションの設定

      仮想ディスク1の下の空き領域を選択し、<Enter>を入力します。

      次に操作の選択です。ここでは、新しいパーティションの作成を選択し、<Enter>を入力します。

      Ubuntuパーティションの設定

      次に作成するパーティションの容量を設定します。ここでは、全体が53.7GBで、内2GBをスワップとしたいので、残りの51.7GBを入力し、<Enter>を入力します。

      Ubuntuパーティションの設定

      次に作成するパーティションのタイプを設定します。ここでは、OSをインストールするパーティションなので基本パーティションを選択し、<Enter>を入力します。

      Ubuntuパーティションの設定

      次に作成するパーティションの場所を設定します。ここでは、先頭選択し、<Enter>を入力します。

      Ubuntuパーティションの設定

      最後に作成するパーティションの詳細情報を設定します。 ここでは、OS領域なので起動フラグだけオンに切り替え(起動フラグを選択し<Enter>を入力すると切り替わります)、Tabキーでパーティションのセットアップを終了を選択し、<Enter>を入力します。

      Ubuntuパーティションの設定


      続けて、スワップ領域のパーティションを作成します。
      仮想ディスク1の下の空き領域を選択し、<Enter>を入力します。

      Ubuntuパーティションの設定

      次に操作の選択です。ここでは、新しいパーティションの作成を選択し、<Enter>を入力します。

      Ubuntuパーティションの設定

      次に作成するパーティションの容量を設定します。ここでは、スワップ用として残りの2GBを入力し、<Enter>を入力します。

      Ubuntuパーティションの設定

      次に作成するパーティションのタイプを設定します。ここでは、スワップ領域のパーティションなので基本パーティションを選択し、<Enter>を入力します。

      Ubuntuパーティションの設定

      次に作成するパーティションの詳細情報を設定します。ここでは、利用方法の設定をスワップに変更します。
      デフォルトで 利用方法が ext4 ジャーナリングファイルシステム となっているので、これを選択し、<Enter>を入力します。

      Ubuntuパーティションの設定

      利用方法の種別が一覧表示されますので、ここでスワップ領域を選択し、<Enter>を入力します。

      Ubuntuパーティションの設定

      最後にTabキーでパーティションのセットアップを終了を選択し、<Enter>を入力します。

      Ubuntuパーティションの設定

    設定を終えたら、最後に書き込みを行います。
    パーティショニングの終了とディスクへの変更の書き込み を選択し、<Enter>を入力します。

    Ubuntuパーティションの設定

    書き込み確認画面になります。問題なければ、TABキーで<はい>を選択し<Enter>を入力します。

    Ubuntuパーティションの設定

    パーティションの作成が実行されます。


  10. インストールするパッケージ選択し、インストールを開始します。

    まずは、外部アクセスする際にプロキシーサーバーを経由する必要がある場合は、プロキシーサーバーの設定をします。


    プロキシーサーバーを経由しない場合は、空欄のまま<Enter>を入力して、次の画面へ進みます。

    次は、システムの自動アップデートを有効にするか否かを設定します。

    システムの自動アップデート

    ここでは、システムアップデートは、手動で行いたいので、 自動的にアップデートしない を選択し、<Enter>を入力して、次の画面へ進みます。

    次は、インストールするパッケージを選択します。

    パッケージの設定

    ここでは、外部から接続できるか確認するために OpenSSH Server だけは選択し、TABキーで<続ける>を選択し、<Enter>を入力して、次の画面へ進みます。

    次は、ブートローダーのインストールします。

    ブートローダーのインストール

    ここでは、TABキーで<はい>を選択し、<Enter>を入力して、パッケージのインストールを開始します。


  11. インストールを終えたら、確認画面が表示されます。

    最後に、確認画面です。

    パッケージの設定

    ここでは、TABキーで<続ける>を選択し、<Enter>を入力してシステムのリブートを実行します。



APIを使ってISOイメージをアンマウントする

インストールを終えたら、先にマウントしたISOイメージをアンマウントします。

  1. サーバー(VPS)のシャットダウンします。

    ISOイメージをアンマウントする際は、サーバーを停止しておく必要があります。 そこで、ConoHa コントロールパネルからシャットダウンにてサーバーを停止します。

    1. ConoHaのコントロールパネルへログインし、サーバーリストをクリックします。

    2. 停止するサーバーをチェックします。
    3. 一括操作のシャットダウンをクリックし、システムの停止を実行します。

      停止できたら、以下のようにステータスが停止となります。


  2. 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

  3. サーバー(VPS)を起動します。

    ISOイメージをアンマウントを終えたら、サーバーを起動します。

    1. ConoHaのコントロールパネルへログインし、サーバーリストをクリックします。

    2. 停止するサーバーをチェックします。
    3. 一括操作の起動をクリックし、システムの起動を実行します。

      停止できたら、以下のようにステータスが起動中となります。


最後にSSH接続してみる

起動したら、外部のPCからSSH接続してみます。ここではTeraTermを使って接続してみます。

  1. TeraTermを起動し、IPアドレスを指定し、OKをクリックします。
    TeraTerm Host設定
  2. 次に、ユーザ、パスフレーズ(パスワード)を入力し、OKをクリックします。
    TeraTerm ユーザ設定
  3. 以下のようにログインできればOKです。
    TeraTerm ログイン
いかがだったでしょうか?
簡単な OpenStack の APIの使い方を含めて Ubuntu Server をインストールしてみました。

旧ConoHaや さくらのVPSさくらのVPS の ISOアップロード機能は、 ウェブブラウザ+FTPクライアントソフトで好きなOSをインストールできましたが、今回の新ConoHaでは、APIを使わないと実現できません。
そのため、少なくとも curl コマンドが使えるか php,perlなどのスクリプトが使える程度の知識が必要となります。

ここでは、PHPを使って簡単なプログラミングを行ってみました。 プログラミングと言えるほどのものでもありませんが、何かの参考になればうれしく思います。

ConoHaに興味のある方は、http://www.conoha.jp/ からどうぞ。

さくらのVPSに興味のある方は、http://vps.sakura.ad.jp/ からどうぞ。

ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

お名前.com VPS(KVM) で ISOアップロード機能を使って、Ubuntu Server 12 をインストールしてみる

以前に お名前.com VPS(KVM) でカスタムOSのインストールを行うには? お名前.com VPS(KVM) でUb ...

ConoHa VPS でDebian 7 をインストールしてみる

ConoHa VPS では、なぜか、VPSを作成する際に、OSの選択ができません。 そんため、デフォルトOSであるCentOS ...

ConoHaにAndroid x86 をインストールしてみる

Android x86とは、 いわゆる Android のPC版OSです。 Android は、Googleによって開発されたス ...

ConoHa VPS, お名前.com VPS で提供される SSH Private Key を使ってシリアルコンソールへ接続してみる

ConoHa VPS, お名前.com VPS で提供される SSH Private Keyは、使わない方が良い理由 では、SSH ...

新ConoHa は さくらのVPSより良いのか?

以下の記事で、新しくなったConoHaを色々と試してみました。 (サイトもリニューアルしましたね。どうでも良いですけど、このは ...



コメントを投稿 :

お名前 *

メールアドレス *
( メールアドレスが公開されることはありません。)

サイトアドレス

コメント *

* 印の項目は、入力が必要な項目です。




最近投稿の記事

[ 画像提供元 : Amazon ] 先日、1TBのディスクの入れ替え時にバックアップをとろうとディスクコピーを行いました。 その際 ...

Windows で Linux ファイルシステム Ext4 のディスクをマウントするには? Ext3Fsd が、おそらく、最も簡単なツール ...

今回は、Windows で Compass を使ってみました。 Compass とは、 Sass(サス、Syntactica ...

今回は、Anti Adblock を使ってみました。 Anti Adblock とは、 そもそも Adblock という ウェブ ...

デスクトップ環境でない サーバーで、Webページのキャプチャー画像をコマンドで撮る には、wkhtmltoimage, CutyCapt ...


さくらのVPS 全プラン リニューアルです。(石狩(北海道)も選択可)


root権限ありで ¥685 / 月 ~ と非常にリーズナブルな CPU 1(core)の 512 プランから、 最高 CPU 10(core), メモリ 32(GB), SSD容量 800(GB) までとプランが充実。
ディスクは、SSDとHDDの選択が可能になった他、データセンターは人気の東京、石狩(北海道)となりました。

また、どのプランでも好きなOSが選べます
( CentOS, Fedora, Scientific Linux, FreeBSD, Ubutu, Debian )

管理人もおすすめのVPSです。
試用期間がありますから、一度、お試しを!!

詳しくは、http://vps.sakura.ad.jp/さくらのVPSのサイトへ へどうぞ!!

カテゴリ


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。
最近、スワップにも対応した Serverman@VPS は、かなりリーズナブルかもです。

  • メモリ1GB~2GBのEntryプラン :月額:490円
  • メモリ2MB~4GBのStandardプラン :月額:980円
  • メモリ4GB~8GBのProプラン :月額:1,980円

新規申し込みで1ヶ月間完全無料となるキャンペーンを実施中です。
Serverman@VPSの特徴は、安さとIPv6対応です。また、初期設定費0円もポイントです。

IPv6でちょっと遊んでみたい方には、おすすめかもしれませんね。最低利用期間もありませんから、気に入らないときは即解約もできます。

Serverman@VPSの詳細については、 http://dream.jp/vps/ Serverman@VPSのサイトへへどうぞ。



KVM採用 ConoHa VPSは、時間単位で借りれる便利なVPSです。


ConoHa VPS は、初期設定費0円最低利用期間無し時間単位で清算可能、 さらに、Web APIを使って自動化を図ることもできる便利なVPSです。

海外サーバー設置も可能で、ローカル接続にも対応と、かなり、機能豊富なサーバーです。

新規ユーザ登録で、クーポンもらえますから、まずは、お試しですね。

ConoHa VPSの詳細については、
http://www.conoha.jp/ へどうぞ。

KVM採用 お名前.com VPS(KVM) 2G プラン 初期設定費無料 キャンペーン 実施です。


メモリ2GBプラン CPU:3core、Disk:200GB
月額:1,153円から (初期設定:1,680円0円)

さくらのVPSがリニューアルされてもなんのその。
1GBメモリ / 2Core を ¥834 – の格安価格で提供中です!
間違いなくスペックからすると割安感ありです。
年間割引時の途中解約で返金がないのは、 ちょっと残念ですが、それでもこの割安感は魅力です。

まずは、お試しですね。

お名前.com VPS(KVM)の詳細については、
http://www.onamae-server.com/vps/ へどうぞ。(お試し期間が15日あります。)



  • ソーシャルブックマーク

  • はてなブックマークへ追加するはてな登録数
ページトップへ
Time : 0.7875 [s]