EPEL版OpenStack folsomインストール

OpenStackのfolsom(2012.2)のrpmパッケージがEPELで配布(まだtesting)され始めたのでインストールしてみました。
Quantumを使用しなかったこともあり、essex(2012.1)とほとんど変わらず、いまのところ問題なく動いているようです。

構成

OSバージョン

CentOS6.3 x86_64 (minimalインストール)

Network

CloudController用にeth0を、GuestOSのためにeth1を利用。
eth1は、VlanManagerを使用してテナント毎に仮想マシンをアイソレーションする。

[CloudController]
 hostname: folsol00
 eth0: 172.16.100.100/24
 eth1: 10.0.0.1/24 (VLAN1000)

      -+--------- management network for cc
       |          172.16.100.0/24
       |  -+----- internal vlan network for vm
       |   |      10.0.0.0/24
       |   |
       |   |
   .100|   |.1
   eth0|   |eth1 (vlan1000-nnnn)
     +-+---+---------------------+
     |     |            <dhcp>   |
     |    -+-------+-------+-    |
     |             |eth0   |eth0 |
     |          +--+--+ +--+--+  |
     | sv04     |vm#00| |vm#nn|  |
     |          +-----+ +-----+  |
     |                           |
     |                           |
     |                           |
     +---------------------------+
selinux無効化(/etc/sysconfig/selinux)

「いしかわさんごめん、いしかわさんごめん、いしかわさんごめん」と3回唱えてから無効化。

SELINUX=disabled
SELINUXTYPE=targeted 

事前準備

パッケージグループ(Development Tools)追加
# yum groupinstall "Development Tools"
一般ユーザ(stack)を作成

以降の作業用に一般ユーザ(stack)を作成する。

# useradd stack
# passwd stack
新しいパスワード: ********
新しいパスワードを再入力してください: ********
sudoers設定

stackユーザがsudo可能としておく。

# echo "stack ALL=(ALL) ALL" > /etc/sudoers.d/openstack
# chmod 400 /etc/sudoers.d/openstack
stackユーザ用環境変数設定
環境変数設定(~/stackrc)

stackユーザでログインし、OpenStackのコマンドライン用の環境変数を設定する。

#!/bin/sh

OS_USERNAME=admin
OS_PASSWORD=adminpassword
OS_TENANT_NAME=openstackDemo
OS_AUTH_URL=http://172.16.100.100:5000/v2.0
OS_REGION_NAME=RegionOne

export OS_USERNAME OS_PASSWORD OS_TENANT_NAME OS_AUTH_URL OS_REGION_NAME

##
## [EOF]
##
iptablesに設定追加(/etc/sysconfig/iptables)

OpenStack関連サービスを許可しておく。

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
##
## Begin: for OpenStack Service
##
-A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
-A INPUT -p tcp -i eth0 --dport 3260 -j ACCEPT
-A INPUT -p tcp -i eth0 --dport 3306 -j ACCEPT
-A INPUT -p tcp -i eth0 --dport 3333 -j ACCEPT
-A INPUT -p tcp -i eth0 --dport 5672 -j ACCEPT
-A INPUT -p tcp -i eth0 --dport 6080 -j ACCEPT
-A INPUT -p tcp -i eth0 --dport 5000 -j ACCEPT
-A INPUT -p tcp -i eth0 --dport 8773 -j ACCEPT
-A INPUT -p tcp -i eth0 --dport 8774 -j ACCEPT
-A INPUT -p tcp -i eth0 --dport 8775 -j ACCEPT
-A INPUT -p tcp -i eth0 --dport 8776 -j ACCEPT
-A INPUT -p tcp -i eth0 --dport 8888 -j ACCEPT
-A INPUT -p tcp -i eth0 --dport 9191 -j ACCEPT
-A INPUT -p tcp -i eth0 --dport 9292 -j ACCEPT
-A INPUT -p tcp -i eth0 --dport 35357 -j ACCEPT
-A INPUT -p tcp -i eth0 --dport 35739 -j ACCEPT
-A INPUT -p tcp -i eth0 --dport 39787 -j ACCEPT
##
## End: for OpenStack Service
##
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j LOG --log-prefix "IPTABLES_INPUT_DROPLOG: " --log-level 6
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j LOG --log-prefix "IPTABLES_FORWARD_DROPLOG: " --log-level 6
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
  • iptablesをリスタート
$ sudo /etc/init.d/iptables restart
[sudo] password for stack: 
iptables: ファイアウォールルールを消去中:                  [  OK  ]
iptables: チェインをポリシー ACCEPT へ設定中filter         [  OK  ]
iptables: モジュールを取り外し中:                          [  OK  ]
iptables: ファイアウォールルールを適用中:                  [  OK  ]
EPELパッケージリポジトリ追加

※testingではなく、公式にEPEL版folsomが提供されるようになったので以下のパスに修正しました。

$ sudo rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  • epel-testing有効化(/etc/yum.repos.d/epel-testing.repo)

/etc/yum.repos.d/epel-testing.repoを編集し[epel-testing]のenabledを1に設定する。
正式版が提供されるようになったので、testingの有効化設定は不要です。

[epel-testing]
name=Extra Packages for Enterprise Linux 6 - Testing - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/testing/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=testing-epel6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
qpidのインストールと設定

nova/glanceが利用するAMQP実装であるqpidをインストール&設定する。

  • qpidをインストール
$ sudo yum install qpid-cpp-server qpid-tools
  • /etc/quidd.conf に以下の設定を追加
realm=folsom
  • nova用ユーザを作成
$ sudo saslpasswd2 -f /var/lib/qpidd/qpidd.sasldb -u folsom nova
Password: novapassword
Again (for verification): novapassword
  • glance用ユーザを作成
$ sudo saslpasswd2 -f /var/lib/qpidd/qpidd.sasldb -u folsom glance
Password: glancepassword
Again (for verification): glancepassword
  • qpiddの自動起動設定
$ sudo chkconfig --level 3 qpidd on
  • qpiddの起動
$ sudo service qpidd start
Starting Qpid AMQP daemon:                                 [  OK  ]
mysqlのインストールと設定

構成管理データベース用にmysqlとそれが依存するパッケージ群をインストールする。
※データベースの作成はopenstack-utilsに含まれるopenstack-dbコマンドを利用して作成する。

  • mysqlをインストール
$ sudo yum install mysql mysql-server MySQL-python
  • mysqlの自動起動設定
$ sudo chkconfig --level 3 mysqld on
$ sudo service mysqld start
Starting mysqld:                                           [  OK  ]
  • mysqlのrootパスワード設定
$ mysqladmin -u root password '<新パスワード>'
  • 不要なtest用データベースを削除
$ mysql -u root -p
mysql> drop database test;
mysql> exit
Bye

openstack-utilsインストール

OpenStack関連のユーティリティコマンド群(db作成やデモ環境インストール用コマンドなど)をインストールする。
OpenStackの各コンポーネント類の設定はopenstack-configコマンドで、データベースの作成はopenstack-dbコマンドで行う。

$ sudo yum install openstack-utils

インストールされるコマンド群は以下の通り。

  • /usr/bin/openstack-config
  • /usr/bin/openstack-db
  • /usr/bin/openstack-demo-install
  • /usr/bin/openstack-status

openstack-keystoneのインストールと設定

openstack-keystoneインストール

openstack-keystone(OpenStack Identity)とそれが依存するパッケージ群をインストールする。

$ sudo yum install openstack-keystone python-keystoneclient
keystone用データベース作成

openstack-dbコマンドでkeystone用データベースを作成する。
mysql上にkeystoneユーザも作成される。

$ sudo openstack-db --init --service keystone
Please enter the password for the 'root' MySQL user: <your password>
Verified connectivity to MySQL.
Creating 'keystone' database.
Asking openstack-keystone to sync the database.
Complete!
keystoneデータベース確認
  • keystone用データベースが作成されていることを確認
$ mysql -u root -p
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| keystone           | <--keystoneデータベースが作成されている
| mysql              |
+--------------------+
4 rows in set (0.00 sec)
  • keystone用テーブルが作成されていることを確認
mysql> use keystone;
mysql> show tables;
+------------------------+
| Tables_in_keystone     |
+------------------------+
| ec2_credential         |
| endpoint               |
| metadata               |
| migrate_version        |
| role                   |
| service                |
| tenant                 |
| token                  |
| user                   |
| user_tenant_membership |
+------------------------+
10 rows in set (0.00 sec)
  • keystoneユーザ権限設定
mysql> grant all on keystone.* to 'keystone'@'localhost' identified by 'keystonepassword';
mysql> grant all on keystone.* to 'keystone'@'172.16.100.100' identified by 'keystonepassword';
mysql> flush privileges;
keystone設定
  • keystone.confにMySQLへの接続文字列を設定

keystone管理者用のtokenをkeystone.confに登録する。

$ sudo openstack-config --set /etc/keystone/keystone.conf sql connection 'mysql://keystone:keystonepassword@172.16.100.100/keystone'
  • keystone.confへのtoken登録

keystone管理者用のtokenをkeystone.confに登録する。

$ sudo openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token 'admintoken'
  • keystoneの自動起動設定
$ sudo chkconfig --level 3 openstack-keystone on
  • keystoneの起動
$ sudo service openstack-keystone start
Starting keystone:                                         [  OK  ]
  • keystone用デフォルト情報登録

keystone-init.pyをgit cloneして設定ファイル(config.yamlをカスタマイズする。
keystone-init.pyにはPyYAMLが必要であるため事前にパッケージを追加しておく。

$ sudo yum install PyYAML
$ cd $HOME && mkdir -p work/openstack && cd work/openstack
$ git clone https://github.com/nimbis/keystone-init.git
$ cd keystone-init

endpointのIPアドレスを変更する。

$ sed -i.bak 's/192.168.206.130/172.16.100.100/g' config.yaml

config.yamlのtokenをkeystone.confに設定した管理者用tokenに修正しておくこと。
修正箇所は以下の通り。

# token is the admin_token in keystone.conf
token:    admintoken
endpoint: http://172.16.100.100:35357/v2.0

default tenant:
    name:        openstackDemo
    description: Default Tenant

# This is the admin user
default user:
    name:     admin
    password: adminpassword

service users:
    - name:     glance
      password: glancepassword

    - name:     nova
      password: novapassword

    - name:     ec2
      password: ec2password

    - name:     swift
      password: swiftpassword

修正したconfig.yamlでkeystone-init.pyを実行する。

$ ./keystone-init.py config.yaml

デフォルト情報が登録されたことを確認する。

$ source ~/stackrc
$ keystone --token admintoken --endpoint http://172.16.100.100:35357/v2.0 user-list
+----------------------------------+---------+-------+-----------+
|                id                | enabled | email |    name   |
+----------------------------------+---------+-------+-----------+
| 0e5ab461b4e7482b999d61bb09aa22e9 | True    | None  | glance    |
| 4e21e70a5cac4b84a7871ceeece6959e | True    | None  | nova      |
| 7da9b1dce47a4e69af1e6c336cb1bfd1 | True    | None  | ec2       |
| 813bfba2a53044c38f1479f32bfbcd58 | True    | None  | adminUser |
| bfdaac6aadb4416b8460a1ca91db5347 | True    | None  | swift     |
+----------------------------------+---------+-------+-----------+

endpoint情報も確認する。

$ source ~/stackrc
$ keystone --token admintoken --endpoint http://172.16.100.100:35357/v2.0 endpoint-list
+----------------------------------+-----------+-------------------------------------------------+-------------------------------------------------+--------------------------------------------+
|                id                |   region  |                    publicurl                    |                   internalurl                   |                  adminurl                  |
+----------------------------------+-----------+-------------------------------------------------+-------------------------------------------------+--------------------------------------------+
| 65402a076f96472693e91de96bfc6b86 | RegionOne | http://172.16.100.14:8776/v1/%(tenant_id)s      | http://172.16.100.14:8776/v1/%(tenant_id)s      | http://172.16.100.14:8776/v1/%(tenant_id)s |
| a99da6f7bd364a439c0134e615f64973 | RegionOne | http://172.16.100.14:8888/v1/AUTH_%(tenant_id)s | http://172.16.100.14:8888/v1/AUTH_%(tenant_id)s | http://172.16.100.14:8888/v1               |
| b5a3eaa963a14488b9a0d141ec7d673c | RegionOne | http://172.16.100.14:5000/v2.0                  | http://172.16.100.14:5000/v2.0                  | http://172.16.100.14:35357/v2.0            |
| c0e76fa0ac4745b3843db13077b08a21 | RegionOne | http://172.16.100.14:8774/v2/%(tenant_id)s      | http://172.16.100.14:8774/v2/%(tenant_id)s      | http://172.16.100.14:8774/v2/%(tenant_id)s |
| ebf3772ce3d741229144156b86ebe20f | RegionOne | http://172.16.100.14:9292/v1                    | http://172.16.100.14:9292/v1                    | http://172.16.100.14:9292/v1               |
| ec58f9f42468414aaa25fe0bc7063239 | RegionOne | http://172.16.100.14:8773/services/Cloud        | http://172.16.100.14:8773/services/Cloud        | http://172.16.100.14:8773/services/Admin   |
+----------------------------------+-----------+-------------------------------------------------+-------------------------------------------------+--------------------------------------------+

openstack-glanceインストールと設定

openstack imageserviceとそれが依存するパッケージ群をインストールする。

openstack-glanceのインストール
$ sudo yum install openstack-glance
glance用データベース作成

openstack-dbコマンドでglance用データベースを作成する。

$ sudo openstack-db --init --service glance
※mysql上にglanceユーザも作成される。
Creating 'glance' database.
Complete!
glanceデータベース確認
  • glance用データベースが作成されていることを確認
$ mysql -u root -p
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| glance             |
| keystone           |
| mysql              |
| test               |
+--------------------+
5 rows in set (0.00 sec)
  • glance用テーブルが作成されていることを確認
mysql> use glance;
mysql> show tables;
+------------------+
| Tables_in_glance |
+------------------+
| image_members    |
| image_properties |
| image_tags       |  <-- folsomで増えた!
| images           |
| migrate_version  |
+------------------+
4 rows in set (0.00 sec)
  • glanceユーザ権限設定
mysql> grant all on glance.* to 'glance'@'localhost' identified by 'glancepassword';
mysql> grant all on glance.* to 'glance'@'172.16.100.100' identified by 'glancepassword';
mysql> flush privileges;
glance設定
  • /etc/glance/glance-api.conf設定
$ sudo openstack-config --set /etc/glance/glance-api.conf DEFAULT enable_v1_api True
$ sudo openstack-config --set /etc/glance/glance-api.conf DEFAULT enable_v2_api True
$ sudo openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_host 172.16.100.100
$ sudo openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_port 35357
$ sudo openstack-config --set /etc/glance/glance-api.conf keystone_authtoken admin_tenant_name service
$ sudo openstack-config --set /etc/glance/glance-api.conf keystone_authtoken admin_user glance
$ sudo openstack-config --set /etc/glance/glance-api.conf keystone_authtoken admin_password glancepassword
$ sudo openstack-config --set /etc/glance/glance-api.conf paste_deploy config_file /etc/glance/glance-api-paste.ini
$ sudo openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystone
$ sudo openstack-config --set /etc/glance/glance-api.conf DEFAULT sql_connection 'mysql://glance:glancepassword@172.16.100.100/glance'
$ sudo openstack-config --set /etc/glance/glance-api.conf DEFAULT qpid_username glance
$ sudo openstack-config --set /etc/glance/glance-api.conf DEFAULT qpid_password glancepassword
$ sudo openstack-config --set /etc/glance/glance-api.conf DEFAULT qpid_host 172.16.100.100
  • /etc/glance/glance-registry.conf設定
$ sudo openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_host 172.16.100.100
$ sudo openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_port 35357
$ sudo openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken admin_tenant_name service
$ sudo openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken admin_user glance
$ sudo openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken admin_password glancepassword
$ sudo openstack-config --set /etc/glance/glance-registry.conf paste_deploy flavor keystone
$ sudo openstack-config --set /etc/glance/glance-registry.conf paste_deploy config_file /etc/glance/glance-registry-paste.ini
$ sudo openstack-config --set /etc/glance/glance-registry.conf paste_deploy flavor keystone
$ sudo openstack-config --set /etc/glance/glance-registry.conf DEFAULT sql_connection 'mysql://glance:glancepassword@172.16.100.100/glance'
  • glance自動起動設定
$ sudo chkconfig --level 3 openstack-glance-api on
$ sudo chkconfig --level 3 openstack-glance-registry on
  • glance起動
$ sudo service openstack-glance-api start
Starting openstack-glance-api:                             [  OK  ]
$ sudo service openstack-glance-registry start
Starting openstack-glance-registry:                        [  OK  ]
VM用イメージファイル登録
  • 検証用ttylinuxダウンロード/展開
$ mkdir $HOME/images && cd $HOME/images
$ wget http://smoser.brickies.net/ubuntu/ttylinux-uec/ttylinux-uec-amd64-12.1_2.6.35-22_1.tar.gz
$ mkdir amd64 && cd amd64 && tar zxvf ../ttylinux-uec-amd64-12.1_2.6.35-22_1.tar.gz
  • kernel登録
$ source ~/stackrc
$ glance image-create --name="tty-linux-kernel" --disk-format=aki --container-format=aki < ttylinux-uec-amd64-12.1_2.6.35-22_1-vmlinuz
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | 3ed2965d3f8d877a3ee3e061fd648e9a     |
| container_format | aki                                  |
| created_at       | 2012-11-11T02:13:15                  |
| deleted          | False                                |
| deleted_at       | None                                 |
| disk_format      | aki                                  |
| id               | 732ccc6c-093f-4ff3-88ec-d2c97df45014 |
| is_public        | False                                |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | tty-linux-kernel                     |
| owner            | 7695c8332c1b4450a6be1376b3a1f5c4     |
| protected        | False                                |
| size             | 4404752                              |
| status           | active                               |
| updated_at       | 2012-11-11T02:13:16                  |
+------------------+--------------------------------------+
  • initrd登録
$ source ./stackrc
$ glance image-create --name="tty-linux-ramdisk" --disk-format=ari --container-format=ari < ttylinux-uec-amd64-12.1_2.6.35-22_1-loader
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | 644cf7d6d9e7b41d527e30e8e8c685a4     |
| container_format | ari                                  |
| created_at       | 2012-11-11T02:15:42                  |
| deleted          | False                                |
| deleted_at       | None                                 |
| disk_format      | ari                                  |
| id               | 1d51d35e-cd1f-4205-9e62-d249e439536b |
| is_public        | False                                |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | tty-linux-ramdisk                    |
| owner            | 7695c8332c1b4450a6be1376b3a1f5c4     |
| protected        | False                                |
| size             | 96629                                |
| status           | active                               |
| updated_at       | 2012-11-11T02:15:42                  |
+------------------+--------------------------------------+
  • image登録
$ source ~/stackrc
$ glance image-create --name="tty-linux" --disk-format=ami --container-format=ami --property kernel_id=732ccc6c-093f-4ff3-88ec-d2c97df45014 --property ramdisk_id=1d51d35e-cd1f-4205-9e62-d249e439536b < ttylinux-uec-amd64-12.1_2.6.35-22_1.img
+-----------------------+--------------------------------------+
| Property              | Value                                |
+-----------------------+--------------------------------------+
| Property 'kernel_id'  | 732ccc6c-093f-4ff3-88ec-d2c97df45014 |
| Property 'ramdisk_id' | 1d51d35e-cd1f-4205-9e62-d249e439536b |
| checksum              | 10047a119149e08fb206eea89832eee0     |
| container_format      | ami                                  |
| created_at            | 2012-11-11T02:18:22                  |
| deleted               | False                                |
| deleted_at            | None                                 |
| disk_format           | ami                                  |
| id                    | c9ef36c7-e6f4-414e-b603-257e36836e76 |
| is_public             | False                                |
| min_disk              | 0                                    |
| min_ram               | 0                                    |
| name                  | tty-linux                            |
| owner                 | 7695c8332c1b4450a6be1376b3a1f5c4     |
| protected             | False                                |
| size                  | 25165824                             |
| status                | active                               |
| updated_at            | 2012-11-11T02:18:24                  |
+-----------------------+--------------------------------------+

openstack-novaのインストールと設定

必要とされるパッケージ群をインストール
$ sudo yum install openstack-utils memcached dnsmasq-utils
openstack-novaのインストール
$ sudo yum install openstack-nova
nova用データベース作成
  • nova用データベースを作成する。

openstack-dbコマンドでnova用データベースを作成する.
mysql上にnovaユーザも作成される。

$ sudo openstack-db --init --service nova
Please enter the password for the 'root' MySQL user: 
Verified connectivity to MySQL.
Creating 'nova' database.
Asking openstack-nova to sync the database.
Complete!
novaデータベース確認
  • nova用データベースが作成されていることを確認
$ mysql -u root -p
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| glance             |
| keystone           |
| mysql              |
| nova               |
+--------------------+

5 rows in set (0.00 sec)

  • nova用テーブルが作成されていることを確認
mysql> use nova
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+-------------------------------------+
| Tables_in_nova                      |
+-------------------------------------+
| agent_builds                        |
| aggregate_hosts                     |
| aggregate_metadata                  |
| aggregates                          |
| block_device_mapping                |
| bw_usage_cache                      |
| cells                               |
| certificates                        |
| compute_node_stats                  |
| compute_nodes                       |
| console_pools                       |
| consoles                            |
| dns_domains                         |
| fixed_ips                           |
| floating_ips                        |
| instance_faults                     |
| instance_id_mappings                |
| instance_info_caches                |
| instance_metadata                   |
| instance_system_metadata            |
| instance_type_extra_specs           |
| instance_type_projects              |
| instance_types                      |
| instances                           |
| iscsi_targets                       |
| key_pairs                           |
| migrate_version                     |
| migrations                          |
| networks                            |
| provider_fw_rules                   |
| quota_classes                       |
| quota_usages                        |
| quotas                              |
| reservations                        |
| s3_images                           |
| security_group_instance_association |
| security_group_rules                |
| security_groups                     |
| services                            |
| sm_backend_config                   |
| sm_flavors                          |
| sm_volume                           |
| snapshot_id_mappings                |
| snapshots                           |
| task_log                            |
| virtual_interfaces                  |
| virtual_storage_arrays              |
| volume_id_mappings                  |
| volume_metadata                     |
| volume_type_extra_specs             |
| volume_types                        |
| volumes                             |
+-------------------------------------+
52 rows in set (0.00 sec)
  • novaユーザ権限設定
mysql> grant all on nova.* to 'nova'@'localhost' identified by 'novapassword';
mysql> grant all on nova.* to 'nova'@'172.16.100.100' identified by 'novapassword';
mysql> flush privileges;
novaを設定する
  • パッケージインストール直後の/etc/nova/nova.confを確認
[DEFAULT]
logdir = /var/log/nova
state_path = /var/lib/nova
lock_path = /var/lib/nova/tmp
volumes_dir = /etc/nova/volumes
dhcpbridge = /usr/bin/nova-dhcpbridge
dhcpbridge_flagfile = /etc/nova/nova.conf
force_dhcp_release = True
injected_network_template = /usr/share/nova/interfaces.template
libvirt_nonblocking = True
libvirt_inject_partition = -1
network_manager = nova.network.manager.FlatDHCPManager
iscsi_helper = tgtadm
sql_connection = mysql://nova:nova@localhost/nova
compute_driver = libvirt.LibvirtDriver
firewall_driver = nova.virt.libvirt.firewall.IptablesFirewallDriver
rpc_backend = nova.openstack.common.rpc.impl_qpid
rootwrap_config = /etc/nova/rootwrap.conf

[keystone_authtoken]
admin_tenant_name = %SERVICE_TENANT_NAME%
admin_user = %SERVICE_USER%
admin_password = %SERVICE_PASSWORD%
auth_host = 127.0.0.1
auth_port = 35357
auth_protocol = http
signing_dirname = /tmp/keystone-signing-nova
  • debugモードに設定
$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT debug true
  • keystone認証設定
$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone
$ sudo openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_tenant_name service
$ sudo openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_user nova
$ sudo openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_password novapassword
$ sudo openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_host 172.16.100.100
  • glance接続設定
$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT glance_host 172.16.100.100
$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT glance_api_servers "172.16.100.100:9292"
  • qpid接続設定
$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT qpid_hostname 172.16.100.100
$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT qpid_username nova
$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT qpid_password novapassword
$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT qpid_port 5672
  • HyperVisor設定
$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT libvirt_type kvm
  • データベース接続設定
$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT sql_connection mysql://nova:novapassword@172.16.100.100/nova
  • ネットワークマネージャ設定

VlanManager(802.1q)を利用するために必要な設定を実施する。
今回はQuantumは利用しない。

$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT network_manager nova.network.manager.VlanManager
$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT vlan_interface eth1
$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT vlan_start 1000
  • iscsiターゲット設定

動作確認のためにCloudController上のブロックデバイスをそのままiscsiターゲットで利用する。

$ sudo chkconfig --level 3 tgtd on
$ sudo service tgtd start
$ Starting SCSI target daemon:                               [  OK  ]

ここではvdb1をnova-volumeとして利用する。
LVMのボリューム名は決め打ちで"nova-volumes"としなければならないので注意。

$ sudo pvcreate /dev/vdb1
Writing physical volume data to disk "/dev/vdb1"
Physical volume "/dev/vdb1" successfully created
$ sudo vgcreate nova-volumes /dev/vdb1
Volume group "nova-volumes" successfully created
$ sudo vgdisplay nova-volumes
--- Volume group ---
VG Name               nova-volumes
System ID             
Format                lvm2
Metadata Areas        1
Metadata Sequence No  1
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                0
Open LV               0
Max PV                0
Cur PV                1
Act PV                1
VG Size               20.00 GiB
PE Size               4.00 MiB
Total PE              5119
Alloc PE / Size       0 / 0   
Free  PE / Size       5119 / 20.00 GiB
VG UUID               1SxHCJ-GsXa-ODcU-CFFB-1c13-grts-UjQh4V
nova各サービス自動起動設定
$ sudo chkconfig --level 3 openstack-nova-api on
$ sudo chkconfig --level 3 openstack-nova-cert on
$ sudo chkconfig --level 3 openstack-nova-network on
$ sudo chkconfig --level 3 openstack-nova-objectstore on
$ sudo chkconfig --level 3 openstack-nova-scheduler on
$ sudo chkconfig --level 3 openstack-nova-volume on
$ sudo chkconfig --level 3 openstack-nova-compute on
nova各サービス起動
$ sudo service openstack-nova-api start
Starting openstack-nova-api:                               [  OK  ]
$ sudo service openstack-nova-cert start
Starting openstack-nova-cert:                              [  OK  ]
$ sudo service openstack-nova-network start
Starting openstack-nova-network:                           [  OK  ]
$ sudo service openstack-nova-objectstore start
Starting openstack-nova-objectstore:                       [  OK  ]
$ sudo service openstack-nova-scheduler start
Starting openstack-nova-scheduler:                         [  OK  ]
$ sudo service openstack-nova-volume start
Starting openstack-nova-volume:                            [  OK  ]
$ sudo service openstack-nova-compute start
Starting openstack-nova-compute:                           [  OK  ]
ログファイルパス
  • /var/log/nova/api.log
  • /var/log/nova/cert.log
  • /var/log/nova/network.log
  • /var/log/nova/objectstore.log
  • /var/log/nova/scheduler.log
  • /var/log/nova/volume.log
  • /var/log/nova/compute.log

openstack-dashboardのインストールと設定

openstack-dashboardのインストール
$ sudo yum install openstack-dashboard
apache設定変更(/etc/httpd/conf/httpd.conf)
ServerName stack.example.com:80
apache自動起動設定
$ sudo chkconfig --level 3 httpd on
apache起動
$ sudo service httpd start
Starting httpd:                                            [  OK  ]

noVNCのインストールと設定

openstack-nova-novncproxyのインストール
$ sudo yum install openstack-nova-novncproxy
/etc/nova/nova.confにnoVNC関連設定を実施
$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT novncproxy_listen 0.0.0.0
$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT novncproxy_port 6080
$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT novncproxy_base_url http://172.16.100.100:6080/vnc_auto.html
$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT vnc_enabled true
$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_listen 0.0.0.0
$ sudo openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_proxyclient_address 172.16.100.100
novnc各サービス自動起動設定
$ sudo chkconfig openstack-nova-novncproxy on
$ sudo chkconfig openstack-nova-consoleauth on
novnc関連サービス起動
$ sudo service openstack-nova-novncproxy start
Starting openstack-nova-novncproxy:                        [  OK  ]
$ sudo service openstack-nova-consoleauth start
Starting openstack-nova-consoleauth:                       [  OK  ]
$ sudo service openstack-nova-compute restart
Stopping openstack-nova-compute:                           [  OK  ]
Starting openstack-nova-compute:                           [  OK  ]