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

PackStack

PackStackはRedHat系のLinuxディストリビューションにてOpenStack環境を容易に構築するソフトウェアです。
Puppetで作成されていますのでPuppetの勉強にもなりそうです。
OpenStackのインストールコンポーネント対象は、Glance、Cinder、Nova、Horizon、Quantum、Swiftが対象です。
バージョンはFolsom、Grizzlyをインストールすることが出来るみたいです。
ここではGrizzlyを対象にしています。
また、Packstackは、OpenStackの他にもNagios、NRPEのインストールと設定が可能です。
また、複数IPを記述しておくとマルチノードでも一度にインストールできます。
参考にさせていただいたページは RDOめもめも です。ありがとうございます。

要件

複数ノードで全コンポーネントを1台で行うコントローラーノードと仮想マシンが起動するためだけのコンピュートノードの二種類をデプロイします。
まずはコントローラーノードをインストールしそれはコンピュートノードも兼ねるオールインワンノードの環境になります。
コンピュートノードは後から追加できます。

OS設定

OSの設定などは以下のように行なっています。全く同じでなければということではありません。
種別 概要
ディスク容量 コントローラーノード Cinder用ボリュームも必要なので多め(100Gもあれば検証は十分です。 コンピュートノード 50Gもあれば仮想マシン稼働用としては十分です。
メモリ コントローラーノード あればあるだけ搭載したほうがいいのですが検証であれば2Gあれば問題ありません。 コンピュートノード あればあるだけ搭載したほうがいいのですが検証であれば2Gあれば問題ありません。
台数 コントローラーノード1台、コンピュートノードノード1台
OS CentOS6.4
NIC数 コントローラーノードは3枚、コンピュートノードは2枚
IPアドレス IPアドレスはマネージメント用として固定IPを設定
HOSTS 関連サーバ(ComputeやControllerなど)のHOSTSを記述
パーティション LVMとして cinder-volumes というものを作成
SELinux SELINUX=permissiveもしくはSELINUX=disabled
ファイアウォール ipvtablesのみ起動(ipv6が対応していないのでip6tablesは無効化) OS的にも無効化(/etc/modprobe.d/disable-ipv6.conf options ipv6 disable=1) 有効化出来る環境であれば有効にしてるほうがQuantumのエラーも出ないので有効にしておいたほうがよいです。
SSH sshの接続が遅かったので /etc/ssh/sshd_config の設定で GSSAPIAuthentication no
PROXY PROXY環境であれば/etc/bashrcなどにexport no_proxy=127.0.0.1などとしておきます

コントローラーノードのインターフェース設定

NICがeth0、eth1、eth2がある環境を想定しています。
eth0は管理用ネットワーク(Horizonやホストへの接続用)
eth1は仮想マシン用外部接続インターフェース
eth2は仮想マシン用内部接続インターフェース
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=192.168.10.60
PREFIX=24
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
# vi /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
# service network restart

PackStackのインストール(コントローラーノード)

まずコントローラーノードのインストールを行います。
リポジトリが公開されていますのでそちらを利用してPackStackをインストールします。
コントローラーノードでインストールを行なっていきます。
# rpm -ivh http://rdo.fedorapeople.org/openstack/openstack-grizzly/rdo-release-grizzly.rpm
# yum install -y openstack-packstack vim gedit patch

コンフィグファイルの作成

まずコントローラーノードのインストールを行うためその設定を行います。
Cinder用のボリューム(LVMでcinder-volumes)はコントローラーノードに作成されている前提です。
VLANとブリッジの設定はPackStackで全部設定は出来ないためインストール後に変更します。
# CTL_SETTINGS=/usr/local/src/ctl.txt
# packstack --gen-answer-file=$CTL_SETTINGS
# \cp -fa $CTL_SETTINGS $CTL_SETTINGS.orig
# sed -i 's/CONFIG_CINDER_VOLUMES_CREATE=.*/CONFIG_CINDER_VOLUMES_CREATE=n/' $CTL_SETTINGS
# sed -i 's/CONFIG_QUANTUM_OVS_TENANT_NETWORK_TYPE=.*/CONFIG_QUANTUM_OVS_TENANT_NETWORK_TYPE=vlan/' $CTL_SETTINGS
# sed -i 's/CONFIG_QUANTUM_OVS_VLAN_RANGES=.*/CONFIG_QUANTUM_OVS_VLAN_RANGES=physnet2:100:199/' $CTL_SETTINGS
# sed -i 's/CONFIG_QUANTUM_OVS_BRIDGE_MAPPINGS=.*/CONFIG_QUANTUM_OVS_BRIDGE_MAPPINGS=physnet2:br-priv/' $CTL_SETTINGS

インストール

あとは、コマンドを実行して待ってるだけでまずコントローラーノードが構築されます。
引数に作成したコンフィグファイルを指定します。
失敗しても再度行えばほとんどは問題ありません。
# packstack --answer-file=$CTL_SETTINGS
Welcome to Installer setup utility
Packstack changed given value  to required value /root/.ssh/id_rsa.pub

Installing:
Clean Up...                                            [ DONE ]
Setting up ssh keys...root@192.168.10.60's password:

ワークアラウンド

Quantumのパッケージに問題があるみたいなので修正しておきます。
そのうち作業が必要なくなるはずです。
# sed -i.bak "s/self\.conf\.root_helper/self\.root_helper/" /usr/lib/python2.6/site-packages/quantum/agent/linux/interface.py
# sed -i.bak "s/self\.conf\.root_helper/self\.root_helper/" /usr/lib/python2.6/site-packages/quantum/agent/dhcp_agent.py
# sed -i.bak "s/self\.conf\.root_helper/self\.root_helper/" /usr/lib/python2.6/site-packages/quantum/agent/l3_agent.py

Novaの設定

インストールしたままだとNovaは仮想化基盤にqemuを利用するようになっています。
これでは作成する仮想マシンが非常に遅いものになりますので設定を変更しておきます。
# vi /etc/nova/nova.conf
#libvirt_type=qemu
libvirt_type=kvm

カーネルパラメータの設定

ブリッジ接続されている仮想マシンをホストOSのiptablesで制御するための設定が必要になりますので設定します。
設定はコンピュートノードが複数あっても設定はコントローラーノードだけで問題ありません。
# vi /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 1

ブリッジモジュールの設定

設定しないと外部から仮想マシンにログイン出来ないみたいです。

# vi /etc/sysconfig/modules/openstack-quantum-linuxbridge.modules
#!/bin/sh
modprobe -b bridge >/dev/null 2>&1
exit 0
# chmod 755 /etc/sysconfig/modules/openstack-quantum-linuxbridge.modules

Quantumの設定

PackStackdenoインストールではQuantumの設定が若干足りませんのでインストール後設定を行います。
# cp -a /etc/quantum /etc/quantum_bak
# openstack-config --set /etc/quantum/plugin.ini OVS network_vlan_ranges physnet1,physnet2:100:199
# openstack-config --set /etc/quantum/plugin.ini OVS bridge_mappings physnet1:br-ex,physnet2:br-priv
# openstack-config --set /etc/quantum/quantum.conf DEFAULT ovs_use_veth True

デフォルトネットワークの削除

libvirtによるデフォルトネットワークは必要無ければ削除しておきます。
# virsh net-destroy default
# virsh net-autostart default --disable

ブリッジインターフェースの関連付け

OpenVswitchに実インターフェースをeth1を外部接続ポート(br-ex)という名前で登録します。
実インターフェースをeth2を内部接続ポート(br-priv)という名前で登録します。
# ovs-vsctl show
# ovs-vsctl add-port br-ex eth1
# ovs-vsctl add-port br-priv eth2
# ovs-vsctl show

再起動

一度再起動しておきます。

# reboot
オールインワンノードであればコンピュートノードの追加は必要はありません。
OpenStackを利用するで作業を進めていきます。

コンピュートノードの追加

コンピュートノードの追加が何度もある場合は同じ事を繰り返します。

コンピュートノードのインターフェース設定

NICがeth0、eth1がある環境を想定しています。
eth0は管理用ネットワーク(ホストへの接続用)
eth1は仮想マシン用内部接続インターフェース
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=192.168.10.61
PREFIX=24
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
# service network restart

コンフィグファイルの作成

コントローラーノードのAnswerファイルをコピーして作成します。
HOSTSのIPアドレスをカンマ区切りで記述しておくと複数台のコンピュートノードが一度に作成されます。
ここでは192.168.10.61のサーバ1台だけ追加です。
# CTL_SETTINGS=/usr/local/src/ctl.txt
# COMPUTE_SETTINGS=/usr/local/src/compute.txt
# \cp -fa $CTL_SETTINGS $COMPUTE_SETTINGS
# sed -i 's/CONFIG_CINDER_INSTALL=y/CONFIG_CINDER_INSTALL=n/' $COMPUTE_SETTINGS
# sed -i 's/CONFIG_HORIZON_INSTALL=y/CONFIG_HORIZON_INSTALL=n/' $COMPUTE_SETTINGS
# sed -i 's/CONFIG_CLIENT_INSTALL=y/CONFIG_CLIENT_INSTALL=n/' $COMPUTE_SETTINGS
# sed -i 's/CONFIG_NOVA_COMPUTE_HOSTS=192.168.10.60/CONFIG_NOVA_COMPUTE_HOSTS=192.168.10.61/' $COMPUTE_SETTINGS

インストール

あとは、コマンドを実行して待ってるだけでまずコンピュートノードが構築されます。
引数に作成したコンフィグファイルを指定します。
# packstack --answer-file=$COMPUTE_SETTINGS
Welcome to Installer setup utility
Packstack changed given value  to required value /root/.ssh/id_rsa.pub

Installing:
Clean Up...                                            [ DONE ]
Setting up ssh keys...root@192.168.10.60's password:

ワークアラウンド

Quantumのパッケージに問題があるみたいなので修正しておきます。
そのうち作業が必要なくなるはずです。
# sed -i.bak "s/self\.conf\.root_helper/self\.root_helper/" /usr/lib/python2.6/site-packages/quantum/agent/linux/interface.py
# sed -i.bak "s/self\.conf\.root_helper/self\.root_helper/" /usr/lib/python2.6/site-packages/quantum/agent/dhcp_agent.py
# sed -i.bak "s/self\.conf\.root_helper/self\.root_helper/" /usr/lib/python2.6/site-packages/quantum/agent/l3_agent.py

Novaの設定

インストールしたままだとNovaは仮想化基盤にqemuを利用するようになっています。
これでは作成する仮想マシンが非常に遅いものになりますので設定を変更しておきます。
# vi /etc/nova/nova.conf
#libvirt_type=qemu
libvirt_type=kvm

ブリッジインターフェースの関連付け

OpenVswitchに内部接続ポート(br-priv)と実インターフェースをeth1という名前で登録します。
コンピュートノードで行う作業です。
# ovs-vsctl show
# ovs-vsctl add-port br-priv eth1
# ovs-vsctl show

ブリッジモジュールの設定

設定しないと外部から仮想マシンにログイン出来ないみたいです。

# vi /etc/sysconfig/modules/openstack-quantum-linuxbridge.modules
#!/bin/sh
modprobe -b bridge >/dev/null 2>&1
exit 0
# chmod 755 /etc/sysconfig/modules/openstack-quantum-linuxbridge.modules

Quantumの設定

インストールするだけではQuantumの設定が若干足りませんのでインストール後設定を行います。
# openstack-config --set /etc/quantum/quantum.conf DEFAULT ovs_use_veth True

デフォルトネットワークの削除

libvirtによるデフォルトネットワークは必要無ければ削除しておきます。
# virsh net-destroy default
# virsh net-autostart default --disable

ここで追加したコンピュートノードを再起動しておきます。

# reboot

コントローラーノードのQuantumの設定修正

PackStackによりコントローラーノードQuantumの設定が元に戻されてしまってますので再度修正します。
プロセスの再起動やOSの再起動は必要ありません。
# openstack-config --set /etc/quantum/plugin.ini OVS network_vlan_ranges physnet1,physnet2:100:199
# openstack-config --set /etc/quantum/plugin.ini OVS bridge_mappings physnet1:br-ex,physnet2:br-priv

こちらも念のため再起動しておきます。

# reboot

OpenStackの利用前設定

OpenStackを利用するにあたってテナント、ユーザ、ネットワークの作成を行う必要があります。

テナントとユーザの作成

まず、環境変数を読み込みます。
全テナント管理用Horizonのログインパスも同じなのでそのままでは分かりにくいadminユーザのパスワードの変更を行なっておきます。
# . keystonerc_admin
パスワードを変更しておきます。
以下の場合は secrete にしています。
# keystone user-password-update --pass secrete admin
再度環境変数(keystonerc_admin)を変更し再度読み込みます。
OS_PASSWORD の部分です。
# . keystonerc_admin
作成するユーザ、テナントは以下の様な感じです。
ユーザ テナント ロール
admin01 tenant01 admin
user01 tenant01 Member

テナント、ユーザを作成します。

# keystone tenant-create --name tenant01
# keystone user-create --name admin01 --pass admin01
# keystone user-create --name user01 --pass user01
# keystone user-role-add --user admin01 --role admin --tenant tenant01
# keystone user-role-add --user user01 --role Member --tenant tenant01

ネットワークの作成

Quantumデータベースのクリア

最初は行う必要はありません。
検証環境だけでしょうけど間違えた場合などにコマンドだとどういう状態かポートがあるから削除できないとか言われる場合は面倒なので一旦削除してしまったほうが早い場合もあります。
# for i in quantum-dhcp-agent quantum-metadata-agent quantum-server quantum-l3-agent quantum-openvswitch-agent
do
  service $i stop
done
# mysqladmin -f drop ovs_quantum
# mysqladmin create ovs_quantum
# quantum-netns-cleanup
# for i in quantum-dhcp-agent quantum-metadata-agent quantum-server quantum-l3-agent quantum-openvswitch-agent
do
  service $i start
done

外部接続用ネットワークを作成

外部用サブネットはインストールしたサーバと同一セグメントとします。
ユーザが利用するテナントでなくserviceテナントに作成します。
外部接続用ネットワークはテナント共通です。
# tenant=$(keystone tenant-list | awk '/service/ {print $2}')
# quantum net-create                     \
    --tenant-id $tenant ext-network      \
    --shared                             \
    --provider:network_type flat         \
    --provider:physical_network physnet1 \
    --router:external=True
Created a new network:
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | True                                 |
| id                        | cf5354aa-15a2-4dfa-8ce9-d9ac2dee5894 |
| name                      | ext-network                          |
| provider:network_type     | flat                                 |
| provider:physical_network | physnet1                             |
| provider:segmentation_id  |                                      |
| router:external           | True                                 |
| shared                    | True                                 |
| status                    | ACTIVE                               |
| subnets                   |                                      |
| tenant_id                 | b08fdb6af703471c94eaa7cdc4d185bc     |
+---------------------------+--------------------------------------+

外部用ネットワークのサブネットを作成します。

# GATEWAY=192.168.10.1
# EXT_NETWORK=192.168.10.0/24
# IP_POOL_START=192.168.10.200
# IP_POOL_END=192.168.10.250
# quantum subnet-create      \
     --tenant-id $tenant     \
     --gateway $GATEWAY      \
     --disable-dhcp          \
     --allocation-pool start=$IP_POOL_START,end=$IP_POOL_END ext-network $EXT_NETWORK
Created a new subnet:
+------------------+------------------------------------------------------+
| Field            | Value                                                |
+------------------+------------------------------------------------------+
| allocation_pools | {"start": "192.168.10.200", "end": "192.168.10.250"} |
| cidr             | 192.168.10.0/24                                      |
| dns_nameservers  |                                                      |
| enable_dhcp      | False                                                |
| gateway_ip       | 92.168.10.1                                          |
| host_routes      |                                                      |
| id               | fa462030-efb2-4e61-82d4-294d8e797040                 |
| ip_version       | 4                                                    |
| name             |                                                      |
| network_id       | cf5354aa-15a2-4dfa-8ce9-d9ac2dee5894                 |
| tenant_id        | b08fdb6af703471c94eaa7cdc4d185bc                     |
+------------------+------------------------------------------------------+

tenant01用内部ネットワークを作成

まず外部ネットワークと内部ネットワークを接続するためのルータを作成します。
ルータ名はテナント名-routerとしています。
# tenant=$(keystone tenant-list|awk '/tenant01/ {print $2}')
# quantum router-create --tenant-id $tenant tenant01-router
Created a new router:
+-----------------------+--------------------------------------+
| Field                 | Value                                |
+-----------------------+--------------------------------------+
| admin_state_up        | True                                 |
| external_gateway_info |                                      |
| id                    | 1b862ebc-365d-4fe8-acfd-1085a9af6a57 |
| name                  | tenant01-router                      |
| status                | ACTIVE                               |
| tenant_id             | 27daa56a1c094bea9ce147fa8d1c4f4d     |
+-----------------------+--------------------------------------+

作成したルータにゲートウェイを設定します。

# quantum router-gateway-set tenant01-router ext-network
Set gateway for router tenant01-router
tenant01用内部ネットワークを作成します。
# tenant=$(keystone tenant-list|awk '/tenant01/ {print $2}')
# network_name=private01
# vlan_id=101
# quantum net-create \
    --tenant-id $tenant $network_name \
    --provider:network_type vlan \
    --provider:physical_network physnet2 \
    --provider:segmentation_id $vlan_id
Created a new network:
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | True                                 |
| id                        | d89350d0-07c6-4ae3-9b7a-265acff0bb91 |
| name                      | private01                            |
| provider:network_type     | vlan                                 |
| provider:physical_network | physnet2                             |
| provider:segmentation_id  | 101                                  |
| router:external           | False                                |
| shared                    | False                                |
| status                    | ACTIVE                               |
| subnets                   |                                      |
| tenant_id                 | 27daa56a1c094bea9ce147fa8d1c4f4d     |
+---------------------------+--------------------------------------+

tenant01用のサブネットを設定します。

# tenant=$(keystone tenant-list|awk '/tenant01/ {print $2}')
# network_name=private01
# subnet_name=${network_name}-subnet
# subnet=10.10.10.0/24
# vlan_id=101
# nameserver=8.8.8.8
# quantum subnet-create \
    --tenant-id $tenant \
    --name $subnet_name \
    --dns-nameserver $nameserver $network_name $subnet
Created a new subnet:
+------------------+------------------------------------------------+
| Field            | Value                                          |
+------------------+------------------------------------------------+
| allocation_pools | {"start": "10.10.10.2", "end": "10.10.10.254"} |
| cidr             | 10.10.10.0/24                                  |
| dns_nameservers  | 8.8.8.8                                        |
| enable_dhcp      | True                                           |
| gateway_ip       | 10.10.10.1                                     |
| host_routes      |                                                |
| id               | 9ef16dae-471f-491b-ac0e-a8450205c560           |
| ip_version       | 4                                              |
| name             | private01-subnet                               |
| network_id       | d89350d0-07c6-4ae3-9b7a-265acff0bb91           |
| tenant_id        | 27daa56a1c094bea9ce147fa8d1c4f4d               |
+------------------+------------------------------------------------+

tenant01の内部サブネットを作成したルータに関連付けます。

# network_name=private01
# subnet_name=${network_name}-subnet
# quantum router-interface-add tenant01-router $subnet_name
Added interface to router tenant01-router

tenant01のサブネットへのルーティングを追加

フローティングIPを付与しないで内部IPだけだとインスタンスへのログインを行うにはipコマンドを駆使する必要があり多少面倒です。
セキュリティなどの問題が無いのであればルーティングを設定しておけば内部IPでもログイン可能になります。
# route add -net 10.10.10.0/24 gw 192.168.10.200

OpenStackを利用

マルチノードでもオールインワンノードでもOpenStackの使い方はそんなに変わりません。
adminのkeystonercは作成されていますがその他のユーザのkeystonercは作成されていません。
各コマンドを利用するため作成しておきます。
テナントtenant01、ユーザuser01の場合です。
$ cat << KEYSTONERC | sudo tee keystonerc_user01 > /dev/null
export OS_USERNAME=user01
export OS_PASSWORD=user01
export OS_TENANT_NAME=tenant01
export OS_AUTH_URL=http://192.168.10.60:5000/v2.0/
KEYSTONERC
$ chmod 600 keystonerc_user01
サービスが起動しているか確認します。
このコマンドは特にkeystonercを読みこませる必要はありません。
# nova-manage service list
Binary           Host                                 Zone             Status     State Updated_At
nova-consoleauth stack01                              internal         enabled    :-)   2013-06-11 08:54:39
nova-cert        stack01                              internal         enabled    :-)   2013-06-11 08:54:38
nova-scheduler   stack01                              internal         enabled    :-)   2013-06-11 08:54:40
nova-conductor   stack01                              internal         enabled    :-)   2013-06-11 08:54:39
nova-compute     stack01                              nova             enabled    :-)   2013-06-11 08:54:39
インスタンスを確認します。
利用するテナント、ユーザに関するkeystonercを読み込ませておきます。
何も起動していないので何も表示されません。
# . keystonerc_user01
# nova list
キーペアを確認します。
何も無いので何も表示されません。
プロジェクトは何が作成されているのか確認します。
# keystone tenant-list

+----------------------------------+----------+---------+
|                id                |   name   | enabled |
+----------------------------------+----------+---------+
| c7fb4f90eeef406695a7851cf2badcab |  admin   |   True  |
| 701af79cabdb472ebbde0bc0eb876335 | services |   True  |
+----------------------------------+----------+---------+

ユーザーには何が設定されているのかを確認します。

# keystone user-list
+----------------------------------+---------+---------+-------------------+
|                id                |   name  | enabled |       email       |
+----------------------------------+---------+---------+-------------------+
| d8d54fdf42154cfe9b702ea54e1869ef |  admin  |   True  |   test@test.com   |
| b526663a072846e485f4baac547f3257 |  cinder |   True  |  cinder@localhost |
| baeee84417b64cf8ae12a39ee8509c42 |  glance |   True  |  glance@localhost |
| 422d7bb36a9d4e81b088e683a972e55d |   nova  |   True  |   nova@localhost  |
| 749181e397904667934bd3959a1ff592 | quantum |   True  | quantum@localhost |
+----------------------------------+---------+---------+-------------------+
イメージが何か登録されていれば楽と思い確認してみます。
残念です。
# glance image-list
Cinderも利用できるか確認します。
Cinderで追加ディスクを作れるかも確認してみます。
# cinder list
# cinder create --display_name cinder_test 1
+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
|     attachments     |                  []                  |
|  availability_zone  |                 nova                 |
|       bootable      |                false                 |
|      created_at     |      2013-03-22T18:12:31.966232      |
| display_description |                 None                 |
|     display_name    |             cinder_test              |
|          id         | 7ead2d80-26d1-49d8-9b4a-5142e235302d |
|       metadata      |                  {}                  |
|         size        |                  1                   |
|     snapshot_id     |                 None                 |
|     source_volid    |                 None                 |
|        status       |               creating               |
|     volume_type     |                 None                 |
+---------------------+--------------------------------------+
作成できたかどうか確認します。
問題無さそうです。
# cinder list
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
|                  ID                  |   Status  | Display Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
| 7ead2d80-26d1-49d8-9b4a-5142e235302d | available | cinder_test  |  1   |     None    |  false   |             |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+

今は必要ないので削除しておきます。

# cinder delete 7ead2d80-26d1-49d8-9b4a-5142e235302d
# cinder list
キーペアが無かったのでインスタンスにログインするためのキーペアを作成します。
テナントなどを気にする必要があるのでHorizonで作成したほうがいいかもしれません。
# cd
# nova keypair-add mykey > mykey
# chmod 600 mykey
# nova keypair-list
+-------+-------------------------------------------------+
| Name  | Fingerprint                                     |
+-------+-------------------------------------------------+
| mykey | 40:82:9a:26:05:88:1e:6a:91:cd:17:77:e7:f1:85:1d |
+-------+-------------------------------------------------+
セキュリティグループはdefaultを利用しています。
icmpとSSHだけ許可しています。
元の設定が必要なければHorizon側で削除しましょう。
# nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
+-------------+-----------+---------+-----------+--------------+
| IP Protocol | From Port | To Port | IP Range  | Source Group |
+-------------+-----------+---------+-----------+--------------+
| icmp        | -1        | -1      | 0.0.0.0/0 |              |
+-------------+-----------+---------+-----------+--------------+
# nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
+-------------+-----------+---------+-----------+--------------+
| IP Protocol | From Port | To Port | IP Range  | Source Group |
+-------------+-----------+---------+-----------+--------------+
| tcp         | 22        | 22      | 0.0.0.0/0 |              |
+-------------+-----------+---------+-----------+--------------+
# nova secgroup-list
+---------+-------------+
| Name    | Description |
+---------+-------------+
| default | default     |
+---------+-------------+
# nova secgroup-list-rules default
+-------------+-----------+---------+-----------+--------------+
| IP Protocol | From Port | To Port | IP Range  | Source Group |
+-------------+-----------+---------+-----------+--------------+
| icmp        | -1        | -1      | 0.0.0.0/0 |              |
| tcp         | 22        | 22      | 0.0.0.0/0 |              |
+-------------+-----------+---------+-----------+--------------+
UbuntuのイメージをダウンロードしてGlanceでOpenStackに登録します。
どのテナントでも利用できるようにオプションを付与して登録しています。
# sudo mkdir -p /opt/virt/ubuntu13.04 ; cd /opt/virt/ubuntu13.04
# curl -O http://cloud-images.ubuntu.com/releases/13.04/release/ubuntu-13.04-server-cloudimg-amd64-disk1.img
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  218M  100  218M    0     0  3198k      0  0:01:09  0:01:09 --:--:-- 3339k
# glance image-create --name="Ubuntu_13.04_LTS" --is-public=true --container-format=ovf --disk-format=qcow2 < \
  ubuntu-13.04-server-cloudimg-amd64-disk1.img
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | b5f78671806557c737fa756a397e13f4     |
| container_format | ovf                                  |
| created_at       | 2013-03-22T18:23:33                  |
| deleted          | False                                |
| deleted_at       | None                                 |
| disk_format      | qcow2                                |
| id               | a7f35b38-f58f-48dc-9fd2-7444cb9e43a3 |
| is_public        | True                                 |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | Ubuntu_13.04_LTS                     |
| owner            | c7fb4f90eeef406695a7851cf2badcab     |
| protected        | False                                |
| size             | 229048320                            |
| status           | active                               |
| updated_at       | 2013-03-22T18:23:36                  |
+------------------+--------------------------------------+
# glance image-list
+--------------------------------------+------------------+-------------+------------------+-----------+--------+
| ID                                   | Name             | Disk Format | Container Format | Size      | Status |
+--------------------------------------+------------------+-------------+------------------+-----------+--------+
| a7f35b38-f58f-48dc-9fd2-7444cb9e43a3 | Ubuntu_13.04_LTS | qcow2       | ovf              | 229048320 | active |
+--------------------------------------+------------------+-------------+------------------+-----------+--------+
登録したイメージでインスタンスを起動します。
まず登録できたことをnovaコマンドでも確認します。
# nova image-list
+--------------------------------------+------------------+--------+--------+
| ID                                   | Name             | Status | Server |
+--------------------------------------+------------------+--------+--------+
| a7f35b38-f58f-48dc-9fd2-7444cb9e43a3 | Ubuntu_13.04_LTS | ACTIVE |        |
+--------------------------------------+------------------+--------+--------+
インスタンスタイプがどのようなものがあるのか確認します。
# nova flavor-list
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| ID | Name      | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | extra_specs |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| 1  | m1.tiny   | 512       | 0    | 0         |      | 1     | 1.0         | True      | {}          |
| 2  | m1.small  | 2048      | 20   | 0         |      | 1     | 1.0         | True      | {}          |
| 3  | m1.medium | 4096      | 40   | 0         |      | 2     | 1.0         | True      | {}          |
| 4  | m1.large  | 8192      | 80   | 0         |      | 4     | 1.0         | True      | {}          |
| 5  | m1.xlarge | 16384     | 160  | 0         |      | 8     | 1.0         | True      | {}          |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
ネットワークも確認します。
# nova network-list
+--------------------------------------+-------------+------+
| ID                                   | Label       | Cidr |
+--------------------------------------+-------------+------+
| 39a1685d-6c96-41a0-8ee7-4cb06685b567 | ext-network | None |
| ee64375a-cea8-404a-b11e-9b16a5ffdce6 | private01   | None |
+--------------------------------------+-------------+------+

リソースが無いため一番しょぼいインスタンスタイプでUbuntu13.04を起動します。

# nova boot                    \
     --flavor 1                \
     --key_name mykey          \
     --security-groups default \
     --image 82df65da-502c-4ad5-b762-a41f76ed69c8 \
     --nic net-id='ee64375a-cea8-404a-b11e-9b16a5ffdce6' ubuntu01
+-------------------------------------+--------------------------------------+
| Property                            | Value                                |
+-------------------------------------+--------------------------------------+
| OS-EXT-STS:task_state               | scheduling                           |
| image                               | Ubuntu_13.04_LTS                     |
| OS-EXT-STS:vm_state                 | building                             |
| OS-EXT-SRV-ATTR:instance_name       | instance-00000001                    |
| flavor                              | m1.tiny                              |
| id                                  | a643d31e-6de2-4d20-82ad-f2a4f526f796 |
| security_groups                     | [{u'name': u'default'}]              |
| user_id                             | fe8a3990fa5842e881e2cf03fe141dff     |
| 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-22T18:26:20Z                 |
| hostId                              |                                      |
| OS-EXT-SRV-ATTR:host                | None                                 |
| key_name                            | mykey                                |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None                                 |
| name                                | ubuntu1304_001                       |
| adminPass                           | D9xVMAT8qEbU                         |
| tenant_id                           | c7fb4f90eeef406695a7851cf2badcab     |
| created                             | 2013-03-22T18:26:19Z                 |
| metadata                            | {}                                   |
+-------------------------------------+--------------------------------------+

作成できたかをnovaコマンドで確認します。

# nova list
+--------------------------------------+----------------+--------+------------------------+
| ID                                   | Name           | Status | Networks               |
+--------------------------------------+----------------+--------+------------------------+
| a1a8a53e-7b34-4369-b003-632e5740471d | ubuntu1304_001 | ACTIVE | novanetwork=10.10.10.3 |
+--------------------------------------+----------------+--------+------------------------+

インスタンスが出来上がったのでログインしてみましょう。

# ssh -i /root/mykey ubuntu@10.10.10.3
The authenticity of host '10.10.10.3 (10.10.10.3)' can't be established.
RSA key fingerprint is 40:c1:20:d3:22:a5:9c:92:ac:b3:65:21:8b:a5:f0:12.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.10.10.3' (RSA) to the list of known hosts.

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

Welcome to Ubuntu Raring Ringtail (development branch) (GNU/Linux 3.8.0-12-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Fri Mar 22 18:55:17 UTC 2013

  System load:  0.47              Processes:           71
  Usage of /:   35.2% of 1.93GB   Users logged in:     0
  Memory usage: 9%                IP address for eth0: 10.10.10.3
  Swap usage:   0%

  Graph this data and manage this system at https://landscape.canonical.com/

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

  Use Juju to deploy your cloud instances and workloads:
    https://juju.ubuntu.com/#cloud-raring

0 packages can be updated.
0 updates are security updates.

ubuntu@ubuntu1304-001:~$ ping yahoo.co.jp
PING yahoo.co.jp (124.83.187.140) 56(84) bytes of data.
From 10.10.10.1: icmp_seq=2 Redirect Host(New nexthop: 192.168.10.1)
From 10.10.10.1 icmp_seq=2 Redirect Host^C
--- yahoo.co.jp ping statistics ---
10 packets transmitted, 0 received, +1 errors, 100% packet loss, time 9057ms
あとは、GUIで設定できるHorizonやNagiosにもログインできますので試してみましょう。
http://サーバのIP/horizon
でHorizonに接続できます。ユーザはadmin、パスワードはsecreteです。
これは最初のインストールの時のコンフィグで設定できます。
あと、 CONFIG_NAGIOS_INSTALL をチェックしておくとNagiosのインストールも可能です。
http://サーバのIP/nagios
でNagiosにログインできます。ユーザはnagiosadmin、パスワードはnagiosです。
これも最初のインストールの時のコンフィグで設定できます。
以上です。