このエントリーをはてなブックマークに追加

2.2.8. OpenStackの利用

ここまで来ている方は、OpenStackのインストールは済んでいるはずなのでOpenStackを利用しましょう。
環境変数の設定、ネットワーク、フローティングIP、キーペア、セキュリティグループの作成を行います。
それが済めばHorizonを利用して仮想マシンを起動します。

2.2.8.1. 環境変数の設定

OpenStackを利用する際に必要になりますので設定します。
また、euca2oolsのコマンドも利用できるようにそちらの環境変数も設定します。
ユーザはstackとしていますが利用するユーザ、ホストにあわせて下さい。

2.2.8.1.1. OpenStackAPI利用のための環境変数ファイルを作成

OpenStackのAPIを利用する場合に必要な環境変数設定ファイルを作成します。
また、テナントが違う場合やユーザが違う場合は別途作成が必要になります。
Dashboardから取得することも可能です。
$ cd /home/stack
$ cat << KEYSTONERC | sudo tee keystonerc > /dev/null
export ADMIN_TOKEN=ADMIN
export OS_USERNAME=admin
export OS_PASSWORD=secrete
export OS_TENANT_NAME=demo
export OS_AUTH_URL=http://stack01:35357/v2.0/
KEYSTONERC
$ sudo chown stack:stack /home/stack/keystonerc
これは環境変数が固定されるので問題ない方のみおこなって下さい。
ログイン後にいちいち環境変数を読みこませるのが面倒なのでbashrcに設定してしまいます。
$ cat << NOVARC | sudo tee -a /etc/bash.bashrc > /dev/null
. /home/stack/keystonerc
NOVARC

2.2.8.2. 内部ネットワークの作成

仮想マシンが利用する内部ネットワークの作成を行います。
ユーザはrootで行う必要があります。
仮想マシン間や仮想マシンから外部への接続に利用するためのネットワークです。
コマンドのヘルプが壊れているので細かい設定内容がまだわかりません。
10.0.0.0を外部通信で利用しているのであればnova.confも含めて変更して下さい。
$ sudo nova-manage network create \
--label nova_network1        \
--fixed_range_v4=10.0.0.0/25 \
--bridge_interface=eth0      \
--multi_host=T
$ nova-manage network list

2.2.8.3. フローティングIPの作成

仮想マシンへ外部から接続する為に利用するフローティングIPの作成を行います。
ユーザはrootで行う必要があります。
外部へ接続するためのネットワークからレンジを設定して下さい。
$ sudo nova-manage floating create --ip_range=192.168.10.112/28
$ sudo nova-manage floating list

2.2.8.4. キーペアの作成

仮想マシンへSSHでログインするためのキーペアを作成します。
独自イメージでパスワードを予め設定してあるなどしてあれば必要ないでしょう。
$ cd /home/stack
$ nova keypair-add mykey > mykey
$ sudo chown stack:stack mykey
$ sudo chmod 600 mykey
$ nova keypair-list

2.2.8.5. セキュリティグループの設定

セキュリティグループはdefaultを利用しています。
icmpとSSHだけ許可しています。
但し、内部通信のセキュリティではなくフローティングIPへのセキュリティになります。
$ nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
$ nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
$ nova secgroup-list
$ nova secgroup-list-rules default
ここまででOpenStackを利用するための設定は全て終了です。
コマンドで仮想マシンを起動したりする方法についてはコマンドの記述の方を確認して下さい。
ここではDashboardを利用したインスタンスの起動方法までを記述します。
Dashboardは、基本的に直感的に利用出来るようになっていますのであまり詳しくは記述しません。

2.2.8.6. Dashboardの利用

まずはDashboardにログインしてみましょう。
URLはOpenStackをインストールしたIPアドレスを入れればOKです。

2.2.8.6.1. ログイン

ユーザ名、パスワードはKeystoneで設定したものを入力します。

../_images/ログイン12.png

2.2.8.6.2. プロジェクトの選択及びインスタンス画面への遷移

タブのProjectを押下しadminに変更します。
また、その下のメニューのInstance & Volumesを押下します。
../_images/Instance_and_Volumes13.png

2.2.8.6.3. イメージ選択画面への遷移

メニューのImages & Snapshotsを押下します。
右側にGlanceで登録したイメージが表示されていますのでアクションボタン(Launch)を押下します。
../_images/Images_and_Snapshots12.png

2.2.8.6.4. 仮想マシンの起動

仮想マシン名、CPUやメモリの大きさ、キーペア、仮想マシンを起動する数を選択してイメージを起動しましょう。
../_images/Launch_Instances12.png

2.2.8.6.5. 仮想マシンの起動確認

自動的にメニューのInstance & Volumesに遷移しますのでステータスがActiveになるのを待ちます。
Activeになれば無事仮想マシンを操作することが可能になりますが起動中少し時間がかかります。
../_images/Instance_and_Volumes212.png

2.2.8.6.6. 仮想マシンへのログイン

Edit InstanceのメニューからVNC Consoleを選択します。
手順どおりであればUbuntu12.04のイメージはキーペアを利用しないとログイン出来ません。
noVNCを利用したコンソールログインを行う場合は一度キーペアを利用したログインをおこなってパスワードを変更しておきます。
$ ssh -i /home/stack/mykey ubuntu@10.0.0.4
$ sudo passwd ubuntu
../_images/Instance_vnc_console12.png

2.2.8.6.7. コマンドでインスタンスをブート

コマンドでもインスタンスは起動できます。
イメージとフレーバーを確認してブートします。
イメージ名は重複していなかったら利用可能です。
$ nova image-list
$ nova flavor-list
$ nova boot --flavor 1 --image ff8c00de-258d-4ada-b606-d41165d80d14 f17_001 --key_name mykey
+-------------------------------------+--------------------------------------+
| Property                            | Value                                |
+-------------------------------------+--------------------------------------+
| OS-EXT-STS:task_state               | scheduling                           |
| image                               | f17-jeos                             |
| OS-EXT-STS:vm_state                 | building                             |
| OS-EXT-SRV-ATTR:instance_name       | instance-00000001                    |
| flavor                              | m1.tiny                              |
| id                                  | 25ad1ef6-db2d-45ce-8023-68aa64d67dfb |
| security_groups                     | [{u'name': u'default'}]              |
| user_id                             | e98e29acc9d44d51af3eaeafce756753     |
| OS-DCF:diskConfig                   | MANUAL                               |
| accessIPv4                          |                                      |
| accessIPv6                          |                                      |
| progress                            | 0                                    |
| OS-EXT-STS:power_state              | 0                                    |
| OS-EXT-AZ:availability_zone         | None                                 |
| config_drive                        |                                      |
| status                              | BUILD                                |
| updated                             | 2013-03-12T08:21:55Z                 |
| hostId                              |                                      |
| OS-EXT-SRV-ATTR:host                | None                                 |
| key_name                            | mykey                                |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None                                 |
| name                                | f17_001                              |
| adminPass                           | ZBtyMMeL3eGL                         |
| tenant_id                           | 3a152c8b925640ce9bedeb818f7ea13e     |
| created                             | 2013-03-12T08:21:55Z                 |
| metadata                            | {}                                   |
+-------------------------------------+--------------------------------------+

インスタンスが稼働したか確認します。

$ nova list

+--------------------------------------+---------+--------+------------------------+
| ID                                   | Name    | Status | Networks               |
+--------------------------------------+---------+--------+------------------------+
| 25ad1ef6-db2d-45ce-8023-68aa64d67dfb | f17_001 | ACTIVE | nova_network1=10.0.0.2 |
+--------------------------------------+---------+--------+------------------------+

インスタンスへログインしてみます。

$ ssh -i /home/stack/mykey root@10.0.0.2

2.2.8.6.8. ユーザーデータを利用してインスタンス起動時に設定を行う

Fedoraによって用意されているイメージやUbuntuのイメージなどは予めcloud-initというパッケージがインストールされています。
このパッケージを利用してGithubに置いてあるスクリプトなども動かしたりすることが可能です。
ChefやPuppetのクライアントをインストールして組み合わせるのも便利でしょう。
まず、サーバのどこかに設定を書いたテキストを用意します。
中身は例えばGithubに置いてあるスクリプトを書いておきます。
$ vi setting-1.txt
#include
https://gist.github.com/hagix9/5157718/raw/1c35f6b57b1afcbcce70b85d842d7c5157ec6837/gistfile1.sh
Githubに置いておいたスクリプトは以下の様な大したことのないものです。
#!/bin/bash
#For CentOS
echo "Hello OpenStack World. This is User-Data Test" | tee /root/hello.txt
後は、オプション --user_data で先程のテキストを指定してインスタンスを作成すればスクリプト通りのものが出来上がっているはずです。
$ nova boot --flavor 1 --image ff8c00de-258d-4ada-b606-d41165d80d14 f17_001 --key_name mykey  --user_data setting-1.txt
上記はコマンドラインですがHorizonでも勿論cloud-initのテキストは指定可能です。
詳しい設定方法やサンプルなどはCanonicalにおいてあります。
インスタンスの起動までは以上です。
全ての操作がDashboardで出来るわけではありませんが、ボリュームのアタッチやデタッチ、仮想マシンのスナップショット、ボリュームのスナップショットなど他にもありますがGUIで色々設定できます。