More Related Content Similar to OpenStack構築手順書 Juno版 (20) More from VirtualTech Japan Inc. (20) OpenStack構築手順書 Juno版2. OpenStack構築手順書 Juno版
変更履歴
バージョン更新日更新内容
0.9 2014/11/28 Juno版beta
0.9.1 2014/12/1 誤記訂正
0.9.2 2014/12/1 RabbitMQサービス再起動と確認を追記
0.9.3 2014/12/1 networkノードのNIC設定を修正
0.9.4 2014/12/2 controllerノードのneutron.confのリージョン指定を修正
0.9.5 2014/12/3 どこのホストで設定変更をするか明確にした。他、誤記など修正
日本仮想化技術2
3. OpenStack構築手順書 Juno版
目次
1. 構築する環境について
1-1 環境構築に使用するOS
1-2 作成するサーバー(ノード)
1-3 ネットワークセグメントの設定
1-4 各ノードのネットワーク設定
1-5 Ubuntu Serverのインストール
1-6 Ubuntu Serverへのログインとroot権限
1-7 設定ファイル等の記述について
2. OpenStackインストール事前設定
2-1 ネットワークデバイスの設定
2-2 静的名前解決の設定
2-3 sysctlによるカーネルパラメーターの設定
2-4 リポジトリーの設定とパッケージの更新
2-5 NTPのインストール
2-6 Python用MySQL/MariaDBクライアントのインストール
3. controllerノードのインストール前設定
3-1 MariaDBのインストール
3-2 RabbitMQのインストール
3-3 環境変数設定ファイルの作成
4. Keystoneインストールと設定(controllerノード)
4-1 パッケージのインストール
4-2 データベースの作成・確認
4-3 設定の変更
4-4 データベースに表を作成
4-5 使用しないデータベースファイルの削除
4-6 Keystoneサービスの再起動
4-7 ログの確認
4-8 認証情報の作成
4-9 Keystoneの動作確認
4-9-1 認証トークンの要求確認
5. Glanceのインストールと設定
5-1 パッケージのインストール
5-2 データベースの作成・確認
5-3 認証情報の作成
5-4 設定の変更
5-5 データベースにデータ登録
5-6 Glanceサービスの再起動
5-7 使用しないデータベースファイルの削除
5-8 ログの確認
5-9 イメージの取得と登録
6. Novaのインストールと設定(controllerノード)
6-1 パッケージのインストール
6-2 データベースの作成・確認
6-3 認証情報の作成
6-4 設定変更
日本仮想化技術3
4. OpenStack構築手順書 Juno版
6-5 使用しないデータベースファイル削除
6-6 データベースにデータを作成
6-7 Novaサービスの再起動
6-8 ログの確認
6-9 Glanceとの通信確認
7. Nova-Computeのインストール・設定(compute1ノード)
7-1 パッケージインストール
7-2 設定の変更
7-3 Nova-Computeサービスの再起動
7-4 ログの確認
7-5 controllerノードとの疎通確認
8. Neutronのインストール・設定(controllerノード)
8-1 パッケージインストール
8-2 データベース作成・確認
8-3 認証情報の設定
8-4 設定の変更
8-5 設定の変更
8-6 データベースの作成
8-7 使用しないデータベースファイル削除
8-8 controllerノードのNeutronと関連サービスの再起動
8-9 ログの確認
8-10 動作確認
9. Neutronのインストール・設定(networkノード)
9-1 パッケージインストール
9-2 設定の変更
9-3 設定の変更
9-4 networkノードのOpen vSwitchサービスの再起動
9-5 ブリッジデバイス設定
9-6 ブリッジデバイス設定確認
9-7 ネットワークインタフェースの設定変更
9-7 networkノード再起動
9-8 ブリッジ設定確認
9-9 networkノードのNeutronと関連サービスの再起動
9-10 ログの確認
10. Neutronのインストール・設定(compute1ノード)
10-1 パッケージインストール
10-2 設定の変更
10-3 compute1ノードのOpen vSwitchサービスの再起動
10-4 compute1ノードのネットワーク設定
10-5 compute1ノードのNeutronと関連サービスを再起動
10-6 ログの確認
11. 仮想ネットワーク設定(controllerノード)
11-1 外部接続ネットワークの設定
11-2 インスタンス用ネットワーク設定
11-3 仮想ネットワークルーター設定
12. 仮想ネットワーク設定確認(networkノード)
12-1 仮想ネットワークルーターの確認
12-2 仮想ルーターのネームスペースのIPアドレスを確認
日本仮想化技術4
5. OpenStack構築手順書 Juno版
12-3 仮想ゲートウェイの疎通確認
13. Cinderインストール(controllerノード)
13-1 パッケージインストール
13-2 データベース作成・確認
13-3 認証情報の設定
13-4 設定の変更
13-5 データベースに表を作成
13-6 Cinderサービスの再起動
13-7 使用しないデータベースファイル削除
13-8 ログの確認
13-9 イメージ格納用ボリューム作成
14. Dashboardインストール・確認(controllerノード)
14-1 パッケージインストール
14-2 Dashboardの設定の変更
14-3 Dashboardへのアクセス確認
14-4 セキュリティグループの設定
14-5 キーペアの作成
14-6 インスタンスの起動
14-7 Floating IPの設定
14-8 インスタンスへのアクセス
日本仮想化技術5
6. OpenStack構築手順書 Juno版
1. 構築する環境について
1-1 環境構築に使用するOS
本書はOpenStack環境を3台のサーバー上に構築することを想定しています。
システム構成図 (出典:公式ドキュメント"Chapter 1. Architecture"より)
OSはUbuntu Server 14.04.1 LTS(以下Ubuntu Server)を使用します。以下のURLよりイメージをダウンロードし、3台のサ
ーバーへインストールします。
http://releases.ubuntu.com/14.04/ubuntu-14.04.1-server-amd64.iso
日本仮想化技術6
7. OpenStack構築手順書 Juno版
1-2 作成するサーバー(ノード)
今回構築するOpenStack環境は、以下3台のサーバーで構成します。
controllerノード
OpenStack環境全体を管理するコントローラーとして機能します。
networkノード
外部ネットワークとインスタンスの間のネットワークを制御します。
compute1ノード
仮想マシンインスタンスを実行します。
1-3 ネットワークセグメントの設定
今回は2つのネットワークセグメントを用意し構成しています。
内部ネットワーク(Instance Tunnels)
ネットワークノードとコンピュートノード間のトンネル用に使用するネットワーク。インターネットへの接続は行えなくて
も構いません。
外部ネットワーク(Management)
外部との接続に使用するネットワーク。構築中はaptコマンドを使って外部リポジトリからパッケージなどをダウンロード
するため、インターネット接続が必要となります。
OpenStack稼働後は、仮想マシンインスタンスに対しFloating IPアドレスを割り当てることで、外部ネットワークへ接続
することができます。
なお、各種APIを外部公開する際にも使用できますが、今回の手順ではAPIの公開は行いません。
IPアドレスは以下の構成で構築されている前提で解説します。
外部ネットワーク内部ネットワーク
インターフェースeth0 eth1
ネットワーク10.0.0.0/24 192.168.0.0/24
ゲートウェイ10.0.0.1 なし
ネームサーバー10.0.0.1 なし
日本仮想化技術7
8. OpenStack構築手順書 Juno版
1-4 各ノードのネットワーク設定
各ノードのネットワーク設定は以下の通りです。
controllerノード
インターフェースeth0 eth1
IPアドレス10.0.0.10 192.168.0.10
ネットマスク255.255.255.0 255.255.255.0
ゲートウェイ10.0.0.1 なし
ネームサーバー10.0.0.1 なし
networkノード
インターフェースeth0 eth1
IPアドレス10.0.0.9 192.168.0.9
ネットマスク255.255.255.0 255.255.255.0
ゲートウェイ10.0.0.1 なし
ネームサーバー10.0.0.1 なし
compute1ノード
インターフェースeth0 eth1
IPアドレス10.0.0.11 192.168.0.11
ネットマスク255.255.255.0 255.255.255.0
ゲートウェイ10.0.0.1 なし
ネームサーバー10.0.0.1 なし
日本仮想化技術8
9. OpenStack構築手順書 Juno版
1-5 Ubuntu Serverのインストール
3台のサーバーに対し、Ubuntu Serverをインストールします。要点は以下の通りです。
優先ネットワークインターフェースをeth0に指定
インターネットへ接続するインターフェースはeth0を使用するため、インストール中はeth0を優先ネットワークとして指定
します。
パッケージ選択ではOpenSSH serverのみ選択
compute1ノードではKVMを利用しますが、インストーラではVirtual machine hostのインストールを行わないでください。
【インストール時の設定パラメータ例】
設定項目設定例
初期起動時のLanguage English
起動Install Ubuntu Server
Language English - English
Country location other→Asia→Japan
Country locale United States - en_US.UTF-8
Detect keyboard layout No
Keyboard Japanese→Japanese
Primary network interface eth1: Ethernet
Hostname それぞれのノード名(controller, network, compute1)
ユーザ名フルネームで入力
アカウント名ユーザ名のファーストネームで設定される
パスワード任意のパスワード
Weak password(出ない場合も) Yesを選択
ホームの暗号化任意
タイムゾーンAsia/Tokyoであることを確認
パーティション設定Guided - use entire disk and set up LVM
パーティション選択sdaを選択
パーティション書き込みYesを選択
パーティションサイズデフォルトのまま
変更の書き込みYesを選択
HTTP proxy 環境に合わせて任意
アップグレード任意
ソフトウェアOpenSSH serverのみ選択
GRUB Yesを選択
インストール完了Continueを選択
日本仮想化技術9
10. OpenStack構築手順書 Juno版
1-6 Ubuntu Serverへのログインとroot権限
Ubuntuはデフォルト設定でrootユーザーの利用を許可していないため、root権限が必要となる作業は以下のように行って
ください。
rootユーザーで直接ログインできないので、インストール時に作成したアカウントでログインする。
root権限が必要な場合には、sudoコマンドを使用する。
rootで連続して作業したい場合には、sudo -sコマンドでシェルを起動する。
1-7 設定ファイル等の記述について
筆者注:
このドキュメントはベータ版のため、必ずしもここで述べられているように記述されていません。あらかじめご了承ください。
設定ファイルは特別な記述が無い限り、必要な設定を抜粋したものです。
特に変更の必要がない設定項目は省略されています。
[見出し]が付いている場合、その見出しから次の見出しまでの間に設定を記述します。
コメントアウトされていない設定項目が存在する場合には、値を変更してください。多くの設定項目は記述が存在している
ため、エディタの検索機能で検索することをお勧めします。
特定のホストでコマンドを実行する場合はコマンドの冒頭にホスト名を記述しています。
【設定ファイルの記述例】
controller# vi /etc/glance/glance-api.conf ←コマンド冒頭にこのコマンドを実行するホストを記述
[database] ←この見出しから次の見出しまでの間に以下を記述
#connection = sqlite:////var/lib/glance/glance.sqlite ← 既存設定をコメントアウト
connection = mysql://glance:password@controller/glance ← 追記
[keystone_authtoken] ← 見出し
#auth_host = 127.0.0.1 ← 既存設定をコメントアウト
auth_host = controller ← 追記
auth_port = 35357 ← 既存のまま
auth_protocol = http ← 既存のまま
auth_uri = http://controller:5000/v2.0 ← 追記
admin_tenant_name = service ← 変更
admin_user = glance ← 変更
admin_password = password ← 変更
日本仮想化技術10
11. OpenStack構築手順書 Juno版
2. OpenStackインストール事前設定
OpenStackパッケージのインストール前に各々のノードで以下の設定を行います。
ネットワークデバイスの設定
hostsによる静的名前解決の設定
sysctlによるカーネルパラメータの設定
リポジトリーの設定とパッケージの更新
NTPのインストール
Python用MySQL/MariaDBクライアントのインストール
MariaDBのインストール(controllerノードのみ)
RabbitMQのインストール(controllerノードのみ)
2-1 ネットワークデバイスの設定
各ノードの/etc/network/interfacesを編集し、IPアドレスの設定を行います。
2-1-1 controllerノードのIPアドレスの設定
controller# vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 10.0.0.10
netmask 255.255.255.0
gateway 10.0.0.1
dns-nameservers 10.0.0.1
auto eth1
iface eth1 inet static
address 192.168.0.10
netmask 255.255.255.0
日本仮想化技術11
12. OpenStack構築手順書 Juno版
2-1-2 networkノードのIPアドレスの設定
network# vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 10.0.0.9
netmask 255.255.255.0
gateway 10.0.0.1
dns-nameservers 10.0.0.1
auto eth1
iface eth1 inet static
address 192.168.0.9
netmask 255.255.255.0
2-1-3 compute1ノードのIPアドレスの設定
compute1# vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 10.0.0.11
netmask 255.255.255.0
gateway 10.0.0.1
dns-nameservers 10.0.0.1
auto eth1
iface eth1 inet static
address 192.168.0.11
netmask 255.255.255.0
2-1-4 ネットワーク設定反映
各ノードで変更した設定をネットワークデバイスに反映させるため、Ubuntu Serverを再起動します。
日本仮想化技術12
13. OpenStack構築手順書 Juno版
2-2 静的名前解決の設定
各ノードの/etc/hostsに各ノードのIPアドレスとホスト名を記述し、静的名前解決の設定を行います。127.0.1.1の行はコ
メントアウトします。
2-2-1 controllerノードの/etc/hostsの設定
controller# vi /etc/hosts
127.0.0.1 localhost
#127.0.1.1 controller ← 既存設定をコメントアウト
10.0.0.9 network
10.0.0.10 controller
10.0.0.11 compute1
2-2-2 networkノードの/etc/hostsの設定
network# vi /etc/hosts
127.0.0.1 localhost
#127.0.1.1 network ← 既存設定をコメントアウト
10.0.0.9 network
10.0.0.10 controller
10.0.0.11 compute1
2-2-3 compute1ノードの/etc/hostsの設定
compute1# vi /etc/hosts
127.0.0.1 localhost
#127.0.1.1 compute1 ← 既存設定をコメントアウト
10.0.0.9 network
10.0.0.10 controller
10.0.0.11 compute1
日本仮想化技術13
14. OpenStack構築手順書 Juno版
2-3 sysctlによるカーネルパラメーターの設定
Linuxのネットワークパケット処理について設定を行います。
2-3-1 networkノードの/etc/sysctl.confの設定
network# vi /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
sysctlコマンドで設定を適用します。
network# sysctl -p
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
2-3-2 compute1ノードの/etc/sysctl.confの設定
compute1# vi /etc/sysctl.conf
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
sysctlコマンドで設定を適用します。
compute1# sysctl -p
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
日本仮想化技術14
15. OpenStack構築手順書 Juno版
2-4 リポジトリーの設定とパッケージの更新
各ノードで以下のファイルを作成し、Juno向けUbuntu Cloud Archiveリポジトリを登録します。
# vi /etc/apt/sources.list.d/ubuntu-cloud-archive-juno-trusty.list
deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/juno main
Ubuntu Cloud archive リポジトリのキーリングをインストールします。
# apt-get install ubuntu-cloud-keyring
各ノードでパッケージリストを更新し再起動します。
# apt-get update && apt-get dist-upgrade
# reboot
2-5 NTPのインストール
各ノードで時刻を正確にするためにNTPをインストールします。
# apt-get install -y ntp
2-5-1 controllerノードの/etc/ntp.confの設定
controllerノードで公開NTPサーバーと同期するNTPサーバーを構築します。
NTP_SERVERに適切な公開NTPサーバー(ex.ntp.nict.jp etc..)を指定します。
controller# vi /etc/ntp.conf
server NTP_SERVER iburst
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
設定を適用するため、NTPサービスを再起動します。
controller# service ntp restart
日本仮想化技術15
16. OpenStack構築手順書 Juno版
2-5-2 その他ノードの/etc/ntp.confの設定
networkノードとcompute1ノードでcontrollerノードと同期するNTPサーバーを構築します。
network# vi /etc/ntp.conf
server controller iburst
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
設定を適用するため、NTPサービスを再起動します。
network# service ntp restart
2-5-3 NTPサーバーの動作確認
構築した環境でntpq -pコマンドを実行して、各NTPサーバーが同期していることを確認します。
公開NTPサーバーと同期しているノード
controller# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*ntp-a2.nict.go. .NICT. 1 u 3 64 1 6.569 17.818 0.001
controllerと同期しているノード
compute1# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*controller ntp-a2.nict.go. 2 u 407 1024 377 1.290 -0.329 0.647
2-6 Python用MySQL/MariaDBクライアントのインストール
各ノードでPython用のMySQL/MariaDBクライアントをインストールします。
# apt-get install -y python-mysqldb
Python MySQLライブラリーはMariaDBと互換性があります。
日本仮想化技術16
17. OpenStack構築手順書 Juno版
3. controllerノードのインストール前設定
3-1 MariaDBのインストール
データベースサーバーのMariaDBをインストールします。
3-1-1 パッケージのインストール
apt-getコマンドでmariadb-serverパッケージをインストールします。
controller# apt-get install -y mariadb-server
インストール中にパスワードの入力を要求されますので、MariaDBのrootユーザーに対するパスワードを設定します。
本例ではパスワードとして「password」を設定します。
3-1-2 MariaDB設定の変更
MariaDBの設定ファイルmy.cnfを開き以下の設定を変更します。
バインドアドレスをeth0に割り当てたIPアドレスへ変更
文字コードをUTF-8へ変更
別のノードからMariaDBへアクセスできるようにするためバインドアドレスを変更します。加えて使用する文字コードを
utf8に変更します。
※文字コードをutf8に変更しないとOpenStackモジュールとデータベース間の通信でエラーが発生します。
controller# vi /etc/mysql/my.cnf
[mysqld]
#bind-address = 127.0.0.1 ← 既存設定をコメントアウト
bind-address = 10.0.0.10 ← 追記
default-storage-engine = innodb ← 追記
innodb_file_per_table ← 追記
collation-server = utf8_general_ci ← 追記
init-connect = 'SET NAMES utf8' ← 追記
character-set-server = utf8 ← 追記
3-1-3 MariaDBサービスの再起動
変更した設定を反映させるためMariaDBのサービスを再起動します。
controller# service mysql restart
3-1-4 MariaDBデータベースのセキュア化
mysql_secure_installationコマンドを実行すると、データベースのセキュリティを強化できます。必要に応じて設定を行
ってください。
日本仮想化技術17
18. OpenStack構築手順書 Juno版
rootパスワードの入力
controller# mysql_secure_installation
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): password
rootパスワードの変更
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
You already have a root password set, so you can safely answer 'n'.
Change the root password? [Y/n] n
anonymousユーザーの削除
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
リモートからのrootログインを禁止
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] n
testデーターベースの削除
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
権限の再読み出し
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
日本仮想化技術18
19. OpenStack構築手順書 Juno版
3-2 RabbitMQのインストール
OpenStackは、オペレーションやステータス情報を各サービス間で連携するためにメッセージブローカーを使用してい
ます。OpenStackではRabbitMQ、Qpid、ZeroMQなど複数のメッセージブローカーサービスに対応しています。
本書ではRabbitMQをインストールする例を説明します。
3-2-1 パッケージのインストール
apt-getコマンドで、rabbitmq-serverパッケージをインストールします。
controller# apt-get install -y rabbitmq-server
3-2-2 アクセスコントロールの変更
以下の設定ファイルを作成し、localhost以外からもRabbitMQへアクセスできるように設定します。
リモート認証の許可
controller# vi /etc/rabbitmq/rabbitmq.conf
[{rabbit, [{loopback_users, []}]}].
3-2-3 待ち受けポートとIPアドレスの変更
以下の設定ファイルを作成し、RabbitMQの待ち受けポートとIPアドレスを定義します。
待ち受け設定の追加
controller# vi /etc/rabbitmq/rabbitmq-env.conf
RABBITMQ_NODE_IP_ADDRESS=10.0.0.10 ← controllerのIPアドレス
RABBITMQ_NODE_PORT=5672
3-2-4 RabbitMQサービス再起動と確認
メッセージブローカーサービスが正常に動いていないと、OpenStackの各コンポーネントは正常に動きません。
RabbitMQサービスの再起動と動作確認を行い、確実に動作していることを確認します。
controller# service rabbitmq-server restart
controller# grep "ERROR|WARNING" /var/log/rabbitmq/rabbit@controller.log
※新たなエラーが表示されなければ問題ありません。
3-2-5 guestユーザーのパスワード変更
rabbitmqctlコマンドでguestユーザーのパスワードを変更します。
controller# rabbitmqctl change_password guest password
Changing password for user "guest" ...
...done.
日本仮想化技術19
20. OpenStack構築手順書 Juno版
3-3 環境変数設定ファイルの作成
3-3-1 admin環境変数設定ファイル作成
adminユーザー用環境変数設定ファイルを作成します。
controller# vi ~/admin-openrc.sh
export OS_USERNAME=admin
export OS_PASSWORD=password
export OS_TENANT_NAME=admin
export OS_AUTH_URL=http://controller:35357/v2.0
3-3-2 demo環境変数設定ファイル作成
demoユーザー用環境変数設定ファイルを作成します。
controller# vi ~/demo-openrc.sh
export OS_USERNAME=demo
export OS_PASSWORD=password
export OS_TENANT_NAME=demo
export OS_AUTH_URL=http://controller:35357/v2.0
日本仮想化技術20
21. OpenStack構築手順書 Juno版
4. Keystoneインストールと設定(controllerノード)
各サービス間の連携時に使用する認証IDサービスKeystoneのインストールと設定を行います。
4-1 パッケージのインストール
apt-getコマンドでkeystoneパッケージをインストールします。
controller# apt-get install -y keystone python-keystoneclient
4-2 データベースの作成・確認
Keystoneで使用するデータベースを作成します。
4-2-1 データベースの作成
MySQLにデータベースkeystoneを作成します。
controller# mysql -u root -p << EOF
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost'
IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%'
IDENTIFIED BY 'password';
EOF
Enter password: ← MariaDBのrootパスワードpasswordを入力
日本仮想化技術21
22. OpenStack構築手順書 Juno版
4-2-2 データベースの確認
ユーザーkeystoneでログインしデータベースの閲覧が可能であることを確認します。
controller# mysql -u keystone -p
Enter password: ← MariaDBのkeystoneパスワードpasswordを入力
...
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| keystone |
+--------------------+
2 rows in set (0.00 sec)
4-3 設定の変更
keystoneの設定ファイルを変更します。
controller# vi /etc/keystone/keystone.conf
[DEFAULT]
admin_token = password ← 追記
log_dir = /var/log/keystone ← 設定されていることを確認
verbose = True
[database]
#connection = sqlite:////var/lib/keystone/keystone.db ← 既存設定をコメントアウト
connection = mysql://keystone:password@controller/keystone ← 追記
[token]
provider = keystone.token.providers.uuid.Provider
driver = keystone.token.persistence.backends.sql.Token
4-4 データベースに表を作成
controller# su -s /bin/sh -c "keystone-manage db_sync" keystone
日本仮想化技術22
23. OpenStack構築手順書 Juno版
4-5 使用しないデータベースファイルの削除
controller# rm /var/lib/keystone/keystone.db
4-6 Keystoneサービスの再起動
設定を反映させるために、Keystoneサービスを再起動します。
controller# rm /var/log/keystone/*
controller# service keystone restart
4-7 ログの確認
keystoneのログを確認します。下記のWARNING以外にログが表示されなければ問題ありません。
controller# grep "ERROR|WARNING" /var/log/keystone/*
...
2014-11-12 16:32:16.466 18369 WARNING keystone.openstack.common.versionutils [-] Deprecated: keystone.cont
rib.revoke.backends.kvs is deprecated as of Juno in favor of keystone.contrib.revoke.backends.sql and may
be removed in Kilo.
日本仮想化技術23
24. OpenStack構築手順書 Juno版
4-8 認証情報の作成
以下コマンドで認証情報(テナント・ユーザー・ロール)を設定します。
環境変数の設定
controller# export OS_SERVICE_TOKEN=password
controller# export OS_SERVICE_ENDPOINT=http://controller:35357/v2.0
adminテナントの作成
controller# keystone tenant-create --name=admin --description="Admin Tenant"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | Admin Tenant |
| enabled | True |
| id | 07e06d1d7f35430e8906e6fb5badd893 |
| name | admin |
+-------------+----------------------------------+
adminユーザーの作成
controller# keystone user-create --name=admin --pass=password --email=admin@example.com
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | admin@example.com |
| enabled | True |
| id | 9b6f2e4f6e074566937119a05a26e01e |
| name | admin |
| username | admin |
+----------+----------------------------------+
adminロールの作成
controller# keystone role-create --name=admin
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| id | 9d34e8df7bc04bf3b16abc8a09238499 |
| name | admin |
+----------+----------------------------------+
adminテナントおよびユーザーにadminロールを所属
controller# keystone user-role-add --tenant=admin --user=admin --role=admin
日本仮想化技術24
25. OpenStack構築手順書 Juno版
_member_ロールの作成
controller# keystone role-create --name _member_
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| id | 0f198e94ffce416cbcbe344e1843eac8 |
| name | _member_ |
+----------+----------------------------------+
adminテナントおよびユーザーに_member_ロールを所属
controller# keystone user-role-add --tenant=admin --user=admin --role=_member_
demoテナントの作成
controller# keystone tenant-create --name=demo --description="Demo Tenant"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | Demo Tenant |
| enabled | True |
| id | 6d19304a59b3456bbe2552a9080d1301 |
| name | demo |
+-------------+----------------------------------+
demoユーザーの作成
controller# keystone user-create --name=demo --pass=password --email=demo@example.com
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | demo@example.com |
| enabled | True |
| id | 7d0a62a5abf7445688b2fd223e1a9a1f |
| name | demo |
| username | demo |
+----------+----------------------------------+
demoテナントおよびdemoユーザーを_menber_ロールへ所属
controller# keystone user-role-add --tenant=demo --user=demo --role=_member_
日本仮想化技術25
26. OpenStack構築手順書 Juno版
サービステナントの作成
controller# keystone tenant-create --name=service --description="Service Tenant"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | Service Tenant |
| enabled | True |
| id | 0571e304708f4cdcb4ecedc363547acb |
| name | service |
+-------------+----------------------------------+
サービスエントリーの作成
controller# keystone service-create --name=keystone --type=identity
--description="OpenStack Identity"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | OpenStack Identity |
| enabled | True |
| id | c315a41214b84597af88ab11bb5a089d |
| name | keystone |
| type | identity |
+-------------+----------------------------------+
日本仮想化技術26
27. OpenStack構築手順書 Juno版
APIエンドポイントを作成
controller# keystone endpoint-create
--service-id $(keystone service-list | awk '/ identity / {print $2}')
--publicurl http://controller:5000/v2.0
--internalurl http://controller:5000/v2.0
--adminurl http://controller:35357/v2.0
--region regionOne
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| adminurl | http://controller:35357/v2.0 |
| id | 420a300f830542fb95ddd7b19063dc60 |
| internalurl | http://controller:5000/v2.0 |
| publicurl | http://controller:5000/v2.0 |
| region | regionOne |
| service_id | 4cd6329b004740fb92cbf013e41d52fc |
+-------------+----------------------------------+
Keystoneへの作成が完了したら環境編集をunsetします。
controller# unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT
日本仮想化技術27
28. OpenStack構築手順書 Juno版
4-9 Keystoneの動作確認
Keystoneへ正しく登録されたか確認します。
4-9-1 認証トークンの要求確認
動作確認のためadminおよびdemoテナントに対し認証トークンを要求してみます。
adminトークンの確認
controller# keystone --os-tenant-name=admin --os-username=admin --os-password=password
--os-auth-url=http://controller:35357/v2.0 token-get
+-----------+---------------------------------------+
| Property | Value |
+-----------+---------------------------------------+
| expires | 2014-05-18T02:51:48Z |
| id | MIIMYAYJKoZIhvcNAQcbWsNz2gqLtB6dfg== |
| tenant_id | b348b47155884978af344b84db561865 |
| user_id | 6ca7845a6d554ef8ab737a777dd0a7cb |
+-----------+---------------------------------------+
demoトークンの確認
controller# keystone --os-tenant-name=demo --os-username=demo --os-password=password
--os-auth-url=http://controller:35357/v2.0 token-get
-+-----------+---------------------------------------+
| Property | Value |
-+-----------+---------------------------------------+
| expires | 2014-05-18T02:53:09Z |
| id | MIIMJQYJKoZIhvcfso3dfgcJ+I7J40KS9fo= |
| tenant_id | 6803ec4cf70f43ed8cfdbd060c1a2293 |
| user_id | 7605b233fede4f958c121e31b508eeac |
-+-----------+---------------------------------------+
※コマンドを実行した結果、トークンのid情報等が出力されれば問題ありません(実際のトークン情報は一行が長いの
で、コマンド例では省略して記述しています)。
日本仮想化技術28
29. OpenStack構築手順書 Juno版
4-9-2 Keystoneテナントとユーザーの確認
Keystoneに正しくテナントとユーザーが登録されているかを確認します。
admin環境変数設定の読み込み
controller# source admin-openrc.sh
ユーザーの確認
controller# keystone user-list
+----------------------------------+-------+---------+-------------------+
| id | name | enabled | email |
+----------------------------------+-------+---------+-------------------+
| 91d240e3d9664f4f86781de3c8ea7880 | admin | True | admin@example.com |
| 3f02a4329cb040639e5d5b2c3ce0a9a0 | demo | True | demo@example.com |
+----------------------------------+-------+---------+-------------------+
ロールの確認
controller# keystone role-list
+----------------------------------+----------+
| id | name |
+----------------------------------+----------+
| d35820caf9ed457c9e12d21988c2a719 | _member_ |
| 3e0e9a0d97e745c7917f617e51b006f1 | admin |
+----------------------------------+----------+
日本仮想化技術29
30. OpenStack構築手順書 Juno版
5. Glanceのインストールと設定
5-1 パッケージのインストール
apt-getコマンドでglanceとglanceクライアントパッケージをインストールします。
controller# apt-get install -y glance python-glanceclient
5-2 データベースの作成・確認
5-2-1 データベース作成
MariaDBにデータベースglanceを作成します。
controller# mysql -u root -p << EOF
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost'
IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%'
IDENTIFIED BY 'password';
EOF
Enter password: ← MariaDBのrootパスワードpasswordを入力
5-2-2 データベースの確認
ユーザーglanceでログインしデータベースの閲覧が可能であることを確認します。
controller# mysql -u glance -p
Enter password: ← MariaDBのglanceパスワードpasswordを入力
...
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| glance |
+--------------------+
2 rows in set (0.00 sec)
日本仮想化技術30
31. OpenStack構築手順書 Juno版
5-3 認証情報の作成
以下コマンドで認証情報を作成します。
環境変数の設定
controller# source admin-openrc.sh
glanceユーザーの作成
controller# keystone user-create --name=glance --pass=password
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | |
| enabled | True |
| id | 4731656ea2604725873be52d08ad3a26 |
| name | glance |
| username | glance |
+----------+----------------------------------+
glanceユーザーをadminロールに所属
controller# keystone user-role-add --user=glance --tenant=service --role=admin
サービスの作成
controller# keystone service-create --name=glance --type=image
--description="OpenStack Image Service"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | OpenStack Image Service |
| enabled | True |
| id | b9a5d0e108474d928a29b896658897ef |
| name | glance |
| type | image |
+-------------+----------------------------------+
日本仮想化技術31
32. OpenStack構築手順書 Juno版
サービスエンドポイントの作成
controller# keystone endpoint-create
--service-id $(keystone service-list | awk '/ image / {print $2}')
--publicurl http://controller:9292
--internalurl http://controller:9292
--adminurl http://controller:9292
--region regionOne
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| adminurl | http://controller:9292 |
| id | 9b624f153503415b96cabd264e456f11 |
| internalurl | http://controller:9292 |
| publicurl | http://controller:9292 |
| region | regionOne |
| service_id | 19b47372418940afadc114fde31fcbb5 |
+-------------+----------------------------------+
日本仮想化技術32
33. OpenStack構築手順書 Juno版
5-4 設定の変更
controller# vi /etc/glance/glance-api.conf
[DEFAULT]
rpc_backend = rabbit
rabbit_host = controller ← 変更
rabbit_password = password ← 変更
verbose = True ← 追記
[database]
#sqlite_db = /var/lib/glance/glance.sqlite ← 既存設定をコメントアウト
connection = mysql://glance:password@controller/glance ← 追記
[keystone_authtoken]
#admin_tenant_name = %SERVICE_TENANT_NAME% ← 既存設定をコメントアウト
#admin_user = %SERVICE_USER% ← 既存設定をコメントアウト
#admin_password = %SERVICE_PASSWORD% ← 既存設定をコメントアウト
auth_uri = http://controller:5000/v2.0 ← 追記
identity_url = http://controller:35357 ← 編集
admin_tenant_name = service ← 追記
admin_user = glance ← 追記
admin_password = password ← 追記
[paste_deploy]
flavor = keystone ← 追記
[glance_store]
default_store =file ← 設定されていることを確認
日本仮想化技術33
34. OpenStack構築手順書 Juno版
controller# vi /etc/glance/glance-registry.conf
[DEFAULT]
rabbit_host = controller
rabbit_password = password
verbose = True
[database]
#sqlite_db = /var/lib/glance/glance.sqlite ← 既存設定をコメントアウト
connection = mysql://glance:password@controller/glance ← 追記
[keystone_authtoken]
#admin_tenant_name = %SERVICE_TENANT_NAME% ← 既存設定をコメントアウト
#admin_user = %SERVICE_USER% ← 既存設定をコメントアウト
#admin_password = %SERVICE_PASSWORD% ← 既存設定をコメントアウト
auth_uri = http://controller:5000 ← 追記
identity_url = http://controller:35357 ← 編集
admin_tenant_name = service ← 追記
admin_user = glance ← 追記
admin_password = password ← 追記
[paste_deploy]
flavor = keystone ← 追記
5-5 データベースにデータ登録
下記コマンドにてglanceデータベースのセットアップを行います。
controller# su -s /bin/sh -c "glance-manage db_sync" glance
5-6 Glanceサービスの再起動
設定を反映させるため、Glanceサービスを再起動します。
controller# rm /var/log/glance/*
controller# service glance-registry restart && service glance-api restart
日本仮想化技術34
35. OpenStack構築手順書 Juno版
5-7 使用しないデータベースファイルの削除
controller# rm /var/lib/glance/glance.sqlite
5-8 ログの確認
Glanceのログを確認します。WARNINGやERRORのログが表示されないことを確認します。
controller# grep "ERROR|WARNING" /var/log/glance/*
5-9 イメージの取得と登録
Glanceへインスタンス用仮想マシンイメージを登録します。ここでは、クラウド環境で主にテスト用途で利用される
LinuxディストリビューションCirrOSを登録します。
5-9-1 イメージ取得
CirrOSのWebサイトより仮想マシンイメージをダウンロードします。
controller# wget http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
日本仮想化技術35
36. OpenStack構築手順書 Juno版
5-9-2 イメージ登録
ダウンロードした仮想マシンイメージをGlanceに登録します。
controller# glance image-create --name="CirrOS 0.3.3" --disk-format=qcow2 --container-format=bare
--is-public=true < cirros-0.3.3-x86_64-disk.img
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | None |
| container_format | bare |
| created_at | 2014-11-12T07:44:31 |
| deleted | False |
| deleted_at | None |
| disk_format | qcow2 |
| id | a94ad1b9-bab8-454d-81e4-fe15693784b4 |
| is_public | False |
| min_disk | 0 |
| min_ram | 0 |
| name | CirrOS 0.3.3 |
| owner | 8180ef035ce34af9bc696754986fe32f |
| protected | False |
| size | 0 |
| status | queued |
| updated_at | 2014-11-12T07:44:31 |
| virtual_size | None |
+------------------+--------------------------------------+
5-9-3 イメージ登録確認
仮想マシンイメージが正しく登録されたか確認します。
controller# glance image-list
+--------------------------------------+--------------+-------------+------------------+------+--------+
| ID | Name | Disk Format | Container Format | Size | Status |
+--------------------------------------+--------------+-------------+------------------+------+--------+
| a94ad1b9-bab8-454d-81e4-fe15693784b4 | CirrOS 0.3.3 | qcow2 | bare | | queued |
+--------------------------------------+--------------+-------------+------------------+------+--------+
日本仮想化技術36
37. OpenStack構築手順書 Juno版
6. Novaのインストールと設定(controllerノード)
controllerノードへNovaをインストールします。
6-1 パッケージのインストール
apt-getコマンドでNova関連のパッケージをインストールします。
controller# apt-get install -y nova-api nova-cert nova-conductor nova-consoleauth nova-novncproxy
nova-scheduler python-novaclient
6-2 データベースの作成・確認
6-2-1 データベースの作成
MariaDBにデータベースnovaを作成します。
controller# mysql -u root -p << EOF
CREATE DATABASE nova;
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost'
IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%'
IDENTIFIED BY 'password';
EOF
Enter password: ← MariaDBのrootパスワードpasswordを入力
6-2-2 データベースの作成確認
※ユーザーnovaでログインしデータベースの閲覧が可能であることを確認します。
controller# mysql -u nova -p
Enter password: ← MariaDBのnovaパスワードpasswordを入力
...
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| nova |
+--------------------+
2 rows in set (0.00 sec)
日本仮想化技術37
38. OpenStack構築手順書 Juno版
6-3 認証情報の作成
以下コマンドで認証情報を作成します。
環境変数の設定
controller# source admin-openrc.sh
novaユーザーの作成
controller# keystone user-create --name=nova --pass=password
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | |
| enabled | True |
| id | 60d2a224d82449c2b087a0f0b4b9e0a3 |
| name | nova |
| username | nova |
+----------+----------------------------------+
novaユーザーをadminロールに所属
controller# keystone user-role-add --user=nova --tenant=service --role=admin
novaサービスの作成
controller# keystone service-create --name=nova --type=compute
--description="OpenStack Compute"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | OpenStack Compute |
| enabled | True |
| id | 247c48a462b94870920631626d7f9d23 |
| name | nova |
| type | compute |
+-------------+----------------------------------+
日本仮想化技術38
39. OpenStack構築手順書 Juno版
novaサービスのエンドポイントを作成
controller# keystone endpoint-create
--service-id $(keystone service-list | awk '/ compute / {print $2}')
--publicurl http://controller:8774/v2/%(tenant_id)s
--internalurl http://controller:8774/v2/%(tenant_id)s
--adminurl http://controller:8774/v2/%(tenant_id)s
--region regionOne
+-------------+-----------------------------------------+
| Property | Value |
+-------------+-----------------------------------------+
| adminurl | http://controller:8774/v2/%(tenant_id)s |
| id | 6a25dd781e5043f7af621eae43a4448d |
| internalurl | http://controller:8774/v2/%(tenant_id)s |
| publicurl | http://controller:8774/v2/%(tenant_id)s |
| region | regionOne |
| service_id | 247c48a462b94870920631626d7f9d23 |
+-------------+-----------------------------------------+
日本仮想化技術39
40. OpenStack構築手順書 Juno版
6-4 設定変更
nova.confに下記の設定を追記します。
controller# vi /etc/nova/nova.conf
[DEFAULT]
...
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = password
auth_strategy = keystone
# controllerノードのIPアドレス:10.0.0.10
my_ip = 10.0.0.10
vncserver_listen = 10.0.0.10
vncserver_proxyclient_address = 10.0.0.10
# Networking
network_api_class = nova.network.neutronv2.api.API
security_group_api = neutron
linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver
[keystone_authtoken]
auth_uri = http://controller:5000/v2.0
identity_uri = http://controller:35357
admin_tenant_name = service
admin_user = nova
admin_password = password
[database]
connection = mysql://nova:password@controller/nova
[glance]
host = controller
6-5 使用しないデータベースファイル削除
データベースはMariaDBを使用するため、使用しないSQLiteファイルを削除します。
controller# rm /var/lib/nova/nova.sqlite
日本仮想化技術40
41. OpenStack構築手順書 Juno版
6-6 データベースにデータを作成
下記コマンドにてnovaデータベースのセットアップを行います。
controller# su -s /bin/sh -c "nova-manage db sync" nova
6-7 Novaサービスの再起動
設定を反映させるため、Novaのサービスを再起動します。
controller# rm /var/log/nova/*
controller# service nova-api restart && service nova-cert restart && service nova-consoleauth restart &&
service nova-scheduler restart && service nova-conductor restart && service nova-novncproxy restart
6-8 ログの確認
controller# grep "ERROR|WARNING" /var/log/nova/*
※特に何も表示されなければ問題ありません。
6-9 Glanceとの通信確認
NovaのコマンドラインインターフェースでGlanceと通信してGlanceと相互に通信できているかを確認します。
controller# nova image-list
+--------------------------------------+--------------+--------+--------+
| ID | Name | Status | Server |
+--------------------------------------+--------------+--------+--------+
| 1cdc90ca-fc4b-4064-8514-21aac275729f | CirrOS 0.3.3 | ACTIVE | |
+--------------------------------------+--------------+--------+--------+
※Glanceに登録したCirrOSイメージが表示できていれば問題ありません。
日本仮想化技術41
42. OpenStack構築手順書 Juno版
7. Nova-Computeのインストール・設定(compute1ノード)
7-1 パッケージインストール
compute1# apt-get install -y nova-compute sysfsutils
7-2 設定の変更
novaの設定ファイルを変更します。
compute1# vi /etc/nova/nova.conf
[DEFAULT]
※既にある記述はそのままにして、以下の記述を追加します。
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = password
auth_strategy = keystone
my_ip = 10.0.0.11 ← IPアドレスで指定
vnc_enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = 10.0.0.11 ← IPアドレスで指定
novncproxy_base_url = http://controller:6080/vnc_auto.html
[keystone_authtoken]
auth_uri = http://controller:5000/v2.0
identity_uri = http://controller:35357
admin_tenant_name = service
admin_user = nova
admin_password = password
[glance]
host = controller
※日本語キーボードを使用する場合は[DEFAULT]に以下を追加します。
vnc_keymap = ja
日本仮想化技術42
43. OpenStack構築手順書 Juno版
7-3 Nova-Computeサービスの再起動
設定を反映させるため、Nova-Computeのサービスを再起動します。
compute1# rm /var/log/nova/*
compute1# service nova-compute restart
7-4 ログの確認
compute1# grep "ERROR|WARNING" /var/log/nova/*
※何も表示されなければ問題ありません。
7-5 controllerノードとの疎通確認
疎通確認はcontrollerノード上にて、admin環境変数設定ファイルを読み込んで行います。
controller# source admin-openrc.sh
7-5-1 ホストリストの確認
controllerノードとcomputeノードが相互に接続できているか確認します。もし、StateがXXXなサービスがあった場合
は、該当のサービスをserviceコマンドで起動してください。
controller# nova-manage service list
Binary Host Zone Status State
nova-consoleauth controller internal enabled :-)
nova-conductor controller internal enabled :-)
nova-cert controller internal enabled :-)
nova-scheduler controller internal enabled :-)
nova-compute compute1 nova enabled :-)
※一覧にcompute1が表示されていれば問題ありません。
日本仮想化技術43
44. OpenStack構築手順書 Juno版
7-5-2 ハイパーバイザの確認
controllerノードよりcomputeノードのハイパーバイザが取得可能か確認します。
controller# nova hypervisor-list
+----+---------------------+
| ID | Hypervisor hostname |
+----+---------------------+
| 1 | compute1 |
+----+---------------------+
※Hypervisor hostname一覧にcompute1が表示されていれば問題ありません。
日本仮想化技術44
45. OpenStack構築手順書 Juno版
8. Neutronのインストール・設定(controllerノード)
8-1 パッケージインストール
controller# apt-get install -y neutron-server neutron-plugin-ml2 python-neutronclient
8-2 データベース作成・確認
8-2-1 データベース作成
MariaDBにデータベースneutronを作成します。
controller# mysql -u root -p << EOF
CREATE DATABASE neutron;
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost'
IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%'
IDENTIFIED BY 'password';
EOF
Enter password: ← MariaDBのrootパスワードpasswordを入力
8-2-2 データベースの確認
MariaDBにNeutronのデータベースが登録されたか確認します。
controller# mysql -u neutron -p
Enter password: ← MariaDBのneutronパスワードpasswordを入力
...
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| neutron |
+--------------------+
2 rows in set (0.00 sec)
※ユーザーneutronでログイン可能でデータベースが閲覧可能なら問題ありません。
日本仮想化技術45
46. OpenStack構築手順書 Juno版
8-3 認証情報の設定
以下コマンドで認証情報を設定します。
controller# source admin-openrc.sh
controller# keystone user-create --name neutron --pass password
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | |
| enabled | True |
| id | 23f88938cbd94deb95b4c2c3caec2c60 |
| name | neutron |
| username | neutron |
+----------+----------------------------------+
controller# keystone user-role-add --user neutron --tenant service --role admin
controller# keystone service-create --name neutron --type network --description "OpenStack Networking"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | OpenStack Networking |
| enabled | True |
| id | 6c36ba679b16402aaed73c0e032f0d02 |
| name | neutron |
| type | network |
+-------------+----------------------------------+
controller# keystone endpoint-create
--service-id $(keystone service-list | awk '/ network / {print $2}')
--publicurl http://controller:9696
--adminurl http://controller:9696
--internalurl http://controller:9696
--region regionOne
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| adminurl | http://controller:9696 |
| id | f9c6285e5242428ba5fb80a2b88535fb |
| internalurl | http://controller:9696 |
| publicurl | http://controller:9696 |
| region | regionOne |
| service_id | 6c36ba679b16402aaed73c0e032f0d02 |
+-------------+----------------------------------+
日本仮想化技術46
47. OpenStack構築手順書 Juno版
8-4 設定の変更
設定変更時にSERVICE_TENANT_IDを求められるファイルがあるので予めSERVICE_TENANT_IDを取得します。
controller# source admin-openrc.sh
controller# keystone tenant-get service
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | Service Tenant |
| enabled | True |
| id | f727b5ec2ceb4d71bad86dfc414449bf |
| name | service |
+-------------+----------------------------------+
日本仮想化技術47
48. OpenStack構築手順書 Juno版
controller# vi /etc/neutron/neutron.conf
[DEFAULT]
...
rpc_backend = rabbit ← コメントアウトをはずす
rabbit_host = controller ← 追記
rabbit_password = password ← 追記
core_plugin = ml2 ← 設定されていることを確認
service_plugins = router ← 追記
allow_overlapping_ips = True ← 追記
auth_strategy = keystone ← コメントアウトをはずす
notify_nova_on_port_status_changes = True ← 追記
notify_nova_on_port_data_changes = True ← 追記
nova_url = http://controller:8774/v2
nova_admin_auth_url = http://controller:35357/v2.0 ← 追記
nova_admin_username = nova ← 追記
nova_admin_tenant_id = SERVICE_TENANT_ID ← 追記
※SERVICE_TENANT_IDは"keystone tenant-get service"コマンドを実行して出力されたIDを使用します。
nova_admin_password = password ← 追記
[database]
#connection = sqlite:////var/lib/neutron/neutron.sqlite ← 既存設定をコメントアウト
connection = mysql://neutron:password@controller/neutron ← 追記
[keystone_authtoken]
#auth_host = 127.0.0.1 ← 既存設定をコメントアウト
#auth_port = 35357 ← 既存設定をコメントアウト
#auth_protocol = http ← 既存設定をコメントアウト
#admin_tenant_name = %SERVICE_TENANT_NAME% ← 既存設定をコメントアウト
#admin_user = %SERVICE_USER% ← 既存設定をコメントアウト
#admin_password = %SERVICE_PASSWORD% ← 既存設定をコメントアウト
auth_uri = http://controller:5000/v2.0 ← 追記
identity_uri = http://controller:35357
nova_region_name = regionOne ← 追記
admin_tenant_name = service ← 追記
admin_user = neutron ← 追記
admin_password = password ← 追記
日本仮想化技術48
49. OpenStack構築手順書 Juno版
controller# vi /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2]
...
type_drivers = flat, gre ← 追記
tenant_network_types = gre ← 追記
mechanism_drivers = openvswitch ← 追記
[ml2_type_gre]
...
tunnel_id_ranges = 1:1000 ← 追記
[securitygroup]
...
enable_security_group = True
enable_ipset = True
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver ← 追記
日本仮想化技術49
50. OpenStack構築手順書 Juno版
8-5 設定の変更
novaの設定ファイルを変更します。
controller# vi /etc/nova/nova.conf
[DEFAULT]
...
network_api_class = nova.network.neutronv2.api.API
security_group_api = neutron
linuxnet_interface_driver = nova.network.linux_net.
LinuxOVSInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver
[neutron]
...
url = http://controller:9696
auth_strategy = keystone
admin_auth_url = http://controller:35357/v2.0
admin_tenant_name = service
admin_username = neutron
admin_password = password
8-6 データベースの作成
controller# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade juno" neutron
8-7 使用しないデータベースファイル削除
controller# rm /var/lib/neutron/neutron.sqlite
8-8 controllerノードのNeutronと関連サービスの再起動
設定を反映させるため、controllerノードのNeutronと関連のサービスを再起動します。
controller# rm /var/log/neutron/*
controller# service nova-api restart &&
service nova-scheduler restart &&
service nova-conductor restart &&
service neutron-server restart
日本仮想化技術50
51. OpenStack構築手順書 Juno版
8-9 ログの確認
controller# grep "ERROR|WARNING" /var/log/neutron/*
...
2014-05-16 18:41:24.106 2331 ERROR neutron.openstack.common.rpc.common [-] AMQP server on localhost:5672 i
s unreachable: Socket closed. Trying again in 30 seconds.
2014-05-16 18:41:34.119 2708 WARNING neutron.openstack.common.db.sqlalchemy.session [-] This application h
as not enabled MySQL traditional mode, which means silent data corruption may occur. Please encourage the
application developers to enable this mode.
2014-05-16 18:41:36.423 2708 WARNING neutron.api.extensions [-] Extension fwaas not supported by any of lo
aded plugins
2014-05-16 18:41:36.429 2708 WARNING neutron.api.extensions [-] Extension flavor not supported by any of l
oaded plugins
2014-05-16 18:41:36.484 2708 WARNING neutron.api.extensions [-] Extension lbaas_agent_scheduler not suppor
ted by any of loaded plugins
2014-05-16 18:41:36.502 2708 WARNING neutron.api.extensions [-] Extension lbaas not supported by any of lo
aded plugins
2014-05-16 18:41:36.528 2708 WARNING neutron.api.extensions [-] Extension metering not supported by any of
loaded plugins
2014-05-16 18:41:36.558 2708 WARNING neutron.api.extensions [-] Extension port-security not supported by a
ny of loaded plugins
2014-05-16 18:41:36.593 2708 WARNING neutron.api.extensions [-] Extension routed-service-insertion not sup
ported by any of loaded plugins
2014-05-16 18:41:36.601 2708 WARNING neutron.api.extensions [-] Extension router-service-type not supporte
d by any of loaded plugins
2014-05-16 18:41:36.630 2708 WARNING neutron.api.extensions [-] Extension service-type not supported by an
y of loaded plugins
2014-05-16 18:41:36.653 2708 WARNING neutron.api.extensions [-] Extension vpnaas not supported by any of l
oaded plugins
※上記ERRORとWARNING以外が出力されなければ問題ありません。
日本仮想化技術51
52. OpenStack構築手順書 Juno版
8-10 動作確認
controller:~# source admin-openrc.sh
controller:~# neutron ext-list
+-----------------------+-----------------------------------------------+
| alias | name |
+-----------------------+-----------------------------------------------+
| security-group | security-group |
| l3_agent_scheduler | L3 Agent Scheduler |
| ext-gw-mode | Neutron L3 Configurable external gateway mode |
| binding | Port Binding |
| provider | Provider Network |
| agent | agent |
| quotas | Quota management support |
| dhcp_agent_scheduler | DHCP Agent Scheduler |
| l3-ha | HA Router extension |
| multi-provider | Multi Provider Network |
| external-net | Neutron external network |
| router | Neutron L3 Router |
| allowed-address-pairs | Allowed Address Pairs |
| extraroute | Neutron Extra Route |
| extra_dhcp_opt | Neutron Extra DHCP opts |
| dvr | Distributed Virtual Router |
+-----------------------+-----------------------------------------------+
日本仮想化技術52
53. OpenStack構築手順書 Juno版
9. Neutronのインストール・設定(networkノード)
9-1 パッケージインストール
network# apt-get install -y neutron-plugin-ml2 neutron-plugin-openvswitch-agent
neutron-l3-agent neutron-dhcp-agent
9-2 設定の変更
neutron.confの設定
network# vi /etc/neutron/neutron.conf
[DEFAULT]
...
rpc_backend = rabbit ← コメントアウトをはずす
rabbit_host = controller ← 追記
rabbit_password = password ← 追記
auth_strategy = keystone ← コメントアウトをはずす
core_plugin = ml2 ← 追記
service_plugins = router ← 追記
allow_overlapping_ips = True ← 追記
[keystone_authtoken]
#auth_host = 127.0.0.1 ← 既存設定をコメントアウト
#auth_host = controller ← コメントアウト
#auth_protocol = http ← コメントアウト
#auth_port = 35357 ← コメントアウト
#admin_tenant_name = %SERVICE_TENANT_NAME% ← 既存設定をコメントアウト
#admin_user = %SERVICE_USER% ← 既存設定をコメントアウト
#admin_password = %SERVICE_PASSWORD% ← 既存設定をコメントアウト
auth_uri = http://controller:5000/v2.0 ← 追記
identity_uri = http://controller:35357 ← 追記
admin_tenant_name = service ← 追記
admin_user = neutron ← 追記
admin_password = password ← 追記
日本仮想化技術53
54. OpenStack構築手順書 Juno版
ml2_conf.iniの設定
network# vi /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2]
...
type_drivers = flat,gre ← 追記
tenant_network_types = gre ← 追記
mechanism_drivers = openvswitch ← 追記
[ml2_type_flat]
...
flat_networks = external ← 追記
[ml2_type_gre]
...
tunnel_id_ranges = 1:1000 ← 追記
[ovs]
...
local_ip = 192.168.0.9 ← 追記
tunnel_type = gre ← 追記
enable_tunneling = True ← 追記
bridge_mappings = external:br-ex ← 追記
[securitygroup]
...
enable_security_group = True
enable_ipset = True
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
[agent]
...
tunnel_types = gre
l3_agent.iniの設定
network# vi /etc/neutron/l3_agent.ini
[DEFAULT]
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver ← 追記
use_namespaces = True ← 追記
external_network_bridge = br-ex ← 追記
verbose = True ← 追記
日本仮想化技術54
55. OpenStack構築手順書 Juno版
network# vi /etc/neutron/dhcp_agent.ini
[DEFAULT]
...
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver ← 追記
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq ← 追記
use_namespaces = True ← 追記
dnsmasq_config_file = /etc/neutron/dnsmasq-neutron.conf ← 追記
verbose = True ← 追記
DHCPオプションでMTUの設定
dnsmasq-neutron.confファイルを新規作成して、DHCPオプションを設定します。
network# vi /etc/neutron/dnsmasq-neutron.conf
dhcp-option-force=26,1454
metadata_agent.iniの設定
network# vi /etc/neutron/metadata_agent.ini
[DEFAULT]
#auth_url = http://localhost:5000/v2.0 ← 既存設定をコメントアウト
#admin_tenant_name = %SERVICE_TENANT_NAME% ← 既存設定をコメントアウト
#admin_user = %SERVICE_USER% ← 既存設定をコメントアウト
#admin_password = %SERVICE_PASSWORD% ← 既存設定をコメントアウト
auth_url = http://controller:5000/v2.0 ← 追記
auth_region = regionOne
admin_tenant_name = service ← 追記
admin_user = neutron ← 追記
admin_password = password ← 追記
# nova_metadata_ip = 127.0.0.1 ← 既存設定をコメントアウト
# metadata_proxy_shared_secret =
nova_metadata_ip = controller ← 追記
metadata_proxy_shared_secret = password ← 追記
9-3 設定の変更
controllerノードのnovaの設定ファイルに追記します。
日本仮想化技術55
56. OpenStack構築手順書 Juno版
controller# vi /etc/nova/nova.conf
[neutron]
...
service_metadata_proxy = True
metadata_proxy_shared_secret = password
controllerノードのnova-apiサービスを再起動します。
controller# service nova-api restart
日本仮想化技術56
57. OpenStack構築手順書 Juno版
9-4 networkノードのOpen vSwitchサービスの再起動
OpenStackのネットワークサービス設定を反映させるため、networkノードでOpen vSwitchのサービスを再起動します。
network# service openvswitch-switch restart
9-5 ブリッジデバイス設定
内部通信用と外部通信用のブリッジを作成して外部通信用ブリッジに共有ネットワークデバイスを接続します。
network# ovs-vsctl add-br br-ex
network# ovs-vsctl add-port br-ex eth0
9-6 ブリッジデバイス設定確認
ブリッジの作成・設定を確認します。
9-6-1 ブリッジの確認
network# ovs-vsctl list-br
br-ex
br-int
※add-brしたブリッジが表示されていれば問題ありません。
9-6-2 外部接続用ブリッジと共有ネットワークデバイスの接続確認
network# ovs-vsctl list-ports br-ex
eth0
※add-port で設定したネットワークデバイスが表示されていれば問題ありません。
日本仮想化技術57
58. OpenStack構築手順書 Juno版
9-7 ネットワークインタフェースの設定変更
Management側に接続されたNICを使って、仮想NIC(br-ex)を作成します。
network# vi /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual ← 既存設定を変更
up ip link set dev $IFACE up ← 既存設定を変更
down ip link set dev $IFACE down ← 既存設定を変更
auto eth1
iface eth1 inet static
address 192.168.0.9
netmask 255.255.255.0
auto br-ex ← 追記
iface br-ex inet static ← 追記
address 10.0.0.9 ← 追記
netmask 255.255.255.0 ← 追記
gateway 10.0.0.1 ← 追記
dns-nameservers 10.0.0.1 ← 追記
9-7 networkノード再起動
インタフェース設定変更を適用するために、システムを再起動します。
network# reboot
9-8 ブリッジ設定確認
各種ブリッジが正常に設定されていることを確認します。
network# ifconfig
br-ex Link encap:Ethernet HWaddr 00:1c:42:29:b3:bd
inet addr:10.0.0.9 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::a840:fbff:fe7d:dd6e/64 Scope:Link
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:2148 errors:0 dropped:0 overruns:0 frame:0
TX packets:2956 errors:0 dropped:0 overruns:0 carrier:0
日本仮想化技術58
59. OpenStack構築手順書 Juno版
collisions:0 txqueuelen:0
RX bytes:257185 (257.1 KB) TX bytes:654268 (654.2 KB)
br-int Link encap:Ethernet HWaddr ea:04:ce:9b:58:4b
inet6 addr: fe80::b84c:fbff:fe1a:d627/64 Scope:Link
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:56 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4978 (4.9 KB) TX bytes:648 (648.0 B)
br-tun Link encap:Ethernet HWaddr 2e:8d:24:75:de:47
inet6 addr: fe80::f0fb:45ff:fee5:1133/64 Scope:Link
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:1 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:90 (90.0 B) TX bytes:648 (648.0 B)
eth0 Link encap:Ethernet HWaddr 00:1c:42:5c:58:ba
inet addr:192.168.0.9 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::21c:42ff:fe5c:58ba/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:283 errors:0 dropped:0 overruns:0 frame:0
TX packets:239 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:41011 (41.0 KB) TX bytes:37254 (37.2 KB)
eth1 Link encap:Ethernet HWaddr 00:1c:42:29:b3:bd
inet6 addr: fe80::21c:42ff:fe29:b3bd/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:25542 errors:0 dropped:0 overruns:0 frame:0
TX packets:3083 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5297181 (5.2 MB) TX bytes:668414 (668.4 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3456 (3.4 KB) TX bytes:3456 (3.4 KB)
日本仮想化技術59
60. OpenStack構築手順書 Juno版
9-9 networkノードのNeutronと関連サービスの再起動
設定を反映させるため、networkノードのNeutronと関連のサービスを再起動します。
network# rm /var/log/neutron/*
network# service openvswitch-switch restart &&
service neutron-plugin-openvswitch-agent restart &&
service neutron-l3-agent restart &&
service neutron-dhcp-agent restart &&
service neutron-metadata-agent restart
9-10 ログの確認
network# grep "ERROR|WARNING" /var/log/neutron/*
...
/var/log/neutron/openvswitch-agent.log:2014-05-16 19:33:14.963 1523 ERROR neutron.agent.linux.ovsdb_monito
r [-] Error received from ovsdb monitor: ovsdb-client: unix:/var/run/openvswitch/db.sock: receive failed (
End of file)
/var/log/neutron/openvswitch-agent.log:2014-05-16 19:33:15.455 1523 ERROR neutron.agent.linux.ovs_lib [-]
Unable to execute ['ovs-vsctl', '--timeout=10', 'list-ports', 'br-int']. Exception:
/var/log/neutron/openvswitch-agent.log:2014-05-16 19:33:15.456 1523 ERROR neutron.plugins.openvswitch.agen
t.ovs_neutron_agent [-] Error while processing VIF ports
※上記ERRORとWARNING以外が出力されなければ問題ありません。
日本仮想化技術60
61. OpenStack構築手順書 Juno版
10. Neutronのインストール・設定(compute1ノード)
10-1 パッケージインストール
compute1# apt-get install -y neutron-plugin-ml2 neutron-plugin-openvswitch-agent
10-2 設定の変更
compute1# vi /etc/neutron/neutron.conf
[DEFAULT]
...
rpc_backend = rabbit ← コメントアウトをはずす
rabbit_host = controller ← 追記
rabbit_password = password ← 追記
auth_strategy = keystone ← コメントアウトをはずす
core_plugin = ml2 ← 設定されていることを確認
service_plugins = router ← 追記
allow_overlapping_ips = True ← 追記
verbose = True
[keystone_authtoken]
#auth_host = 127.0.0.1 ← 既存設定をコメントアウト
#auth_host = controller ← 追記
#auth_protocol = http ← 既存設定をコメントアウト
#auth_port = 35357 ← 既存設定をコメントアウト
#admin_tenant_name = %SERVICE_TENANT_NAME% ← 既存設定をコメントアウト
#admin_user = %SERVICE_USER% ← 既存設定をコメントアウト
#admin_password = %SERVICE_PASSWORD% ← 既存設定をコメントアウト
auth_uri = http://controller:5000/v2.0 ← 追記
identity_uri = http://controller:35357 ← 追記
admin_tenant_name = service ← 追記
admin_user = neutron ← 追記
admin_password = password ← 追記
日本仮想化技術61
62. OpenStack構築手順書 Juno版
compute1# vi /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2]
type_drivers = flat,gre ← 追記
tenant_network_types = gre ← 追記
mechanism_drivers = openvswitch ← 追記
[ml2_type_gre]
tunnel_id_ranges = 1:1000 ← 追記
[securitygroup]
enable_security_group = True ← 追記
enable_ipset = True ← 追記
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver ← 追記
[ovs] ← 追記
local_ip = 192.168.0.11 ← 追記
enable_tunneling = True ← 追記
[agent] ← 追記
tunnel_type = gre ← 追記
10-3 compute1ノードのOpen vSwitchサービスの再起動
設定を反映させるため、compute1ノードのOpen vSwitchのサービスを再起動します。
compute1# service openvswitch-switch restart
日本仮想化技術62
63. OpenStack構築手順書 Juno版
10-4 compute1ノードのネットワーク設定
デフォルトではComputeはレガシーなネットワークを利用します。Neutronを利用するように設定を変更します。
compute1# vi /etc/nova/nova.conf
[DEFAULT]
...
network_api_class = nova.network.neutronv2.api.API
security_group_api = neutron
linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver
[neutron]
...
url = http://controller:9696
auth_strategy = keystone
admin_auth_url = http://controller:35357/v2.0
admin_tenant_name = service
admin_username = neutron
admin_password = password
10-5 compute1ノードのNeutronと関連サービスを再起動
ネットワーク設定を反映させるため、compute1ノードのNeutronと関連のサービスを再起動します。
compute1# service nova-compute restart
compute1# service neutron-plugin-openvswitch-agent restart
10-6 ログの確認
compute1# grep "ERROR|WARNING" /var/log/neutron/*
※何も表示されなければ問題ありません。
日本仮想化技術63
64. OpenStack構築手順書 Juno版
11. 仮想ネットワーク設定(controllerノード)
11-1 外部接続ネットワークの設定
11-1-1 admin環境変数読み込み
外部接続用ネットワーク作成するためにadmin環境変数を読み込みます。
controller# source admin-openrc.sh
11-1-2 外部ネットワーク作成
ext-netという名前で外部用ネットワークを作成します。
controller# neutron net-create ext-net --shared --router:external=True
Created a new network:
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| id | 8cbfd14f-72bb-4e6d-a9a6-f1312d641cd4 |
| name | ext-net |
| provider:network_type | gre |
| provider:physical_network | |
| provider:segmentation_id | 1 |
| router:external | True |
| shared | True |
| status | ACTIVE |
| subnets | |
| tenant_id | 07e06d1d7f35430e8906e6fb5badd893 |
+---------------------------+--------------------------------------+
日本仮想化技術64
65. OpenStack構築手順書 Juno版
11-1-3 外部ネットワーク用サブネット作成
ext-subnetという名前で外部ネットワーク用サブネットを作成します。
controller# neutron subnet-create ext-net --name ext-subnet
--allocation-pool start=10.0.0.200,end=10.0.0.250
--disable-dhcp --gateway 10.0.0.1 10.0.0.0/24
Created a new subnet:
+------------------+----------------------------------------------+
| Field | Value |
+------------------+----------------------------------------------+
| allocation_pools | {"start": "10.0.0.200", "end": "10.0.0.250"} |
| cidr | 10.0.0.0/24 |
| dns_nameservers | |
| enable_dhcp | False |
| gateway_ip | 10.0.0.1 |
| host_routes | |
| id | 7c457880-29f9-4a85-8714-1a5762b3c932 |
| ip_version | 4 |
| name | ext-subnet |
| network_id | 8cbfd14f-72bb-4e6d-a9a6-f1312d641cd4 |
| tenant_id | 07e06d1d7f35430e8906e6fb5badd893 |
+------------------+----------------------------------------------+
11-2 インスタンス用ネットワーク設定
11-2-1 demo環境変数読み込み
インスタンス用ネットワーク作成するためにdemo環境変数読み込みます。
controller# source demo-openrc.sh
日本仮想化技術65
66. OpenStack構築手順書 Juno版
11-2-2 インスタンス用ネットワーク作成
demo-netという名前でインスタンス用ネットワークを作成します。
controller# neutron net-create demo-net
Created a new network:
+----------------+--------------------------------------+
| Field | Value |
+----------------+--------------------------------------+
| admin_state_up | True |
| id | 71059c78-fd2c-4e52-a4b9-98776be0ba28 |
| name | demo-net |
| shared | False |
| status | ACTIVE |
| subnets | |
| tenant_id | 6d19304a59b3456bbe2552a9080d1301 |
+----------------+--------------------------------------+
11-2-3 インスタンス用ネットワークサブネット作成
demo-subnetという名前でインスタンス用ネットワークサブネットを作成します。
controller# neutron subnet-create demo-net --name demo-subnet
--gateway 192.168.0.1 192.168.0.0/24
Created a new subnet:
+------------------+--------------------------------------------------+
| Field | Value |
+------------------+--------------------------------------------------+
| allocation_pools | {"start": "192.168.0.2", "end": "192.168.0.254"} |
| cidr | 192.168.0.0/24 |
| dns_nameservers | |
| enable_dhcp | True |
| gateway_ip | 192.168.0.1 |
| host_routes | |
| id | 6cf9c7f6-2105-4c2a-9fac-0b1df83f774d |
| ip_version | 4 |
| name | demo-subnet |
| network_id | 71059c78-fd2c-4e52-a4b9-98776be0ba28 |
| tenant_id | 6d19304a59b3456bbe2552a9080d1301 |
+------------------+--------------------------------------------------+
日本仮想化技術66
67. OpenStack構築手順書 Juno版
11-3 仮想ネットワークルーター設定
仮想ネットワークルーターを作成して外部接続用ネットワークとインスタンス用ネットワークをルーターに接続し、双方
でデータのやり取りを行えるようにします。
11-3-1 demo-routerを作成
仮想ネットワークルータを作成します。
controller# neutron router-create demo-router
Created a new router:
+-----------------------+--------------------------------------+
| Field | Value |
+-----------------------+--------------------------------------+
| admin_state_up | True |
| external_gateway_info | |
| id | d1a10de8-37e2-4966-a84d-caff3e6b0e1f |
| name | demo-router |
| status | ACTIVE |
| tenant_id | 6d19304a59b3456bbe2552a9080d1301 |
+-----------------------+--------------------------------------+
11-3-2 demo-routerにsubnetを追加
仮想ネットワークルーターにインスタンス用ネットワークを接続します。
controller# neutron router-interface-add demo-router demo-subnet
Added interface fc83f7f5-6da5-4607-b9f8-34d0004dfc3e to router demo-router.
11-3-3 demo-routerにgatewayを追加
仮想ネットワークルーターに外部ネットワークを接続します。
controller# neutron router-gateway-set demo-router ext-net
Set gateway for router demo-router
日本仮想化技術67
68. OpenStack構築手順書 Juno版
12. 仮想ネットワーク設定確認(networkノード)
12-1 仮想ネットワークルーターの確認
以下コマンドで仮想ネットワークルーターが作成されているか確認します。
network# ip netns
qdhcp-ed07c38c-8609-43d8-ae02-582f9f202a3e
qrouter-7c1ca8eb-eaa0-4a68-843d-daca30824693
※qrouter~~ という名前の行が表示されていれば問題ありません。
12-2 仮想ルーターのネームスペースのIPアドレスを確認
仮想ルーターと外部用ネットワークの接続を確認します。
network# ip netns exec `ip netns | grep qrouter` ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
13: qr-65249869-77: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
link/ether fa:16:3e:d0:df:2c brd ff:ff:ff:ff:ff:ff
inet 192.168.0.1/24 brd 192.168.0.255 scope global qr-65249869-77
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fed0:df2c/64 scope link
valid_lft forever preferred_lft forever
14: qg-bd7c5797-3f: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
link/ether fa:16:3e:35:80:8f brd ff:ff:ff:ff:ff:ff
inet 10.0.0.200/24 brd 10.0.0.255 scope global qg-bd7c5797-3f
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe35:808f/64 scope link
valid_lft forever preferred_lft forever
※外部アドレス(この環境では10.0.0.0/24)のアドレスを確認します。
日本仮想化技術68
69. OpenStack構築手順書 Juno版
12-3 仮想ゲートウェイの疎通確認
仮想ルーターと通信が行えるかを確認します。
network# ping 10.0.0.200
PING 10.0.0.200 (10.0.0.200) 56(84) bytes of data.
64 bytes from 10.0.0.200: icmp_seq=1 ttl=64 time=1.17 ms
64 bytes from 10.0.0.200: icmp_seq=2 ttl=64 time=0.074 ms
64 bytes from 10.0.0.200: icmp_seq=3 ttl=64 time=0.061 ms
64 bytes from 10.0.0.200: icmp_seq=4 ttl=64 time=0.076 ms
※応答が返ってくれば問題ありません。各ノードからPingコマンドによる疎通確認を実行しましょう。
日本仮想化技術69
70. OpenStack構築手順書 Juno版
13. Cinderインストール(controllerノード)
13-1 パッケージインストール
controller# apt-get install -y cinder-common cinder-api cinder-scheduler cinder-volume lvm2 python-mysqldb
13-2 データベース作成・確認
13-2-1 データベース作成
MariaDBのデータベースにCinderのデータベースを作成します。
controller# mysql -u root -p <<EOF
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost'
IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%'
IDENTIFIED BY 'password';
EOF
Enter password: ← MariaDBのrootパスワードpasswordを入力
13-2-2 データベースの確認
MariaDBにCinderのデータベースが登録されたか確認します。
controller# mysql -u cinder -p
Enter password: ← MariaDBのcinderパスワードpasswordを入力
...
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cinder |
+--------------------+
2 rows in set (0.00 sec)
※ユーザーcinderでログイン可能でデータベースの閲覧が可能なら問題ありません。
日本仮想化技術70
71. OpenStack構築手順書 Juno版
13-3 認証情報の設定
以下コマンドで認証情報を設定します。
controller# source admin-openrc.sh
controller# keystone user-create --name=cinder --pass=password
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | |
| enabled | True |
| id | 2e391db9f2004b5ab0712c67ae6c9bcd |
| name | cinder |
| username | cinder |
+----------+----------------------------------+
controller# keystone user-role-add --user=cinder --tenant=service --role=admin
controller# keystone service-create --name=cinder --type=volume
--description="OpenStack Block Storage"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | OpenStack Block Storage |
| enabled | True |
| id | 3830cd8b2c614414903b0bc31ed9e1ca |
| name | cinder |
| type | volume |
+-------------+----------------------------------+
controller# keystone service-create --name=cinderv2 --type=volumev2
--description="OpenStack Block Storage v2"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | OpenStack Block Storage v2 |
| enabled | True |
| id | cb2b03621220473c9bcbe194dfd55695 |
| name | cinderv2 |
| type | volumev2 |
+-------------+----------------------------------+
controller# keystone endpoint-create
--service=cinder
--publicurl=http://controller:8776/v1/%(tenant_id)s
--internalurl=http://controller:8776/v1/%(tenant_id)s
--adminurl=http://controller:8776/v1/%(tenant_id)s
+-------------+-----------------------------------------+
| Property | Value |
+-------------+-----------------------------------------+
| adminurl | http://controller:8776/v1/%(tenant_id)s |
日本仮想化技術71
72. OpenStack構築手順書 Juno版
| id | 44b37c343f6c4c52843ce3ca6c7fbad3 |
| internalurl | http://controller:8776/v1/%(tenant_id)s |
| publicurl | http://controller:8776/v1/%(tenant_id)s |
| region | regionOne |
| service_id | 3830cd8b2c614414903b0bc31ed9e1ca |
+-------------+-----------------------------------------+
controller# keystone endpoint-create
--service=cinderv2
--publicurl=http://controller:8776/v2/%(tenant_id)s
--internalurl=http://controller:8776/v2/%(tenant_id)s
--adminurl=http://controller:8776/v2/%(tenant_id)s
+-------------+-----------------------------------------+
| Property | Value |
+-------------+-----------------------------------------+
| adminurl | http://controller:8776/v2/%(tenant_id)s |
| id | 0eda32a224b74b958be4dc551dfe4aaa |
| internalurl | http://controller:8776/v2/%(tenant_id)s |
| publicurl | http://controller:8776/v2/%(tenant_id)s |
| region | regionOne |
| service_id | cb2b03621220473c9bcbe194dfd55695 |
+-------------+-----------------------------------------+
日本仮想化技術72
73. OpenStack構築手順書 Juno版
13-4 設定の変更
controller# vi /etc/cinder/cinder.conf
※以下の記述を追加します。
[DEFAULT]
...
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = password
rabbit_port = 5672
rabbit_userid = guest
my_ip = 10.0.0.10 #controllerノード
auth_strategy = keystone
glance_host = controller
[keystone_authtoken]
auth_uri = http://controller:5000/v2.0
identity_uri = http://controller:35357
admin_tenant_name = service
admin_user = cinder
admin_password = password
[database]
connection = mysql://cinder:password@controller/cinder
13-5 データベースに表を作成
controller# su -s /bin/sh -c "cinder-manage db sync" cinder
13-6 Cinderサービスの再起動
設定を反映させるために、Cinderのサービスを再起動します。
controller# rm /var/log/cinder/*
controller# service cinder-scheduler restart && service cinder-api restart
13-7 使用しないデータベースファイル削除
controller# rm /var/lib/cinder/cinder.sqlite
日本仮想化技術73
74. OpenStack構築手順書 Juno版
13-8 ログの確認
controller# grep "ERROR|WARNING" /var/log/cinder/*
...
/var/log/cinder/cinder-api.log:2014-05-16 16:56:57.401 2641 WARNING cinder.service [-] Value of config opt
ion osapi_volume_workers must be integer greater than 1. Input value ignored.
/var/log/cinder/cinder-scheduler.log:2014-05-16 16:56:37.733 2287 ERROR oslo.messaging._drivers.impl_rabbi
t [req-b051f972-4128-49bb-a820-b0718340f8fd - - - - -] AMQP server on localhost:5672 is unreachable: Socke
t closed. Trying again in 30 seconds.
/var/log/cinder/cinder-volume.log:2014-05-16 16:56:38.409 2390 ERROR oslo.messaging._drivers.impl_rabbit [
-] AMQP server on localhost:5672 is unreachable: Socket closed. Trying again in 30 seconds.
/var/log/cinder/cinder-volume.log:2014-05-16 16:57:12.442 2390 ERROR oslo.messaging._drivers.impl_rabbit [
-] AMQP server on localhost:5672 is unreachable: Socket closed. Trying again in 30 seconds.
/var/log/cinder/cinder-volume.log:2014-05-16 16:57:46.479 2390 ERROR oslo.messaging._drivers.impl_rabbit [
-] AMQP server on localhost:5672 is unreachable: Socket closed. Trying again in 30 seconds.
※上記ERRORとWARNINGが出力されなければ問題ありません。
13-9 イメージ格納用ボリューム作成
イメージ格納用ボリュームを設定するために物理ボリュームの設定、ボリューム作成を行います。
13-9-1 物理ボリュームを設定
以下コマンドで物理ボリュームを設定します。
controller# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
controller# vgcreate cinder-volumes /dev/sdb
Volume group "cinder-volumes" successfully created
13-9-2 Cinder-Volumeサービスの再起動
Cinderストレージの設定を反映させるために、Cinder-Volumeのサービスを再起動します。
controller# service cinder-volume restart && service tgt restart
13-9-3 admin環境変数設定ファイル読み込み
インスタンス格納用ボリュームを作成するために、admin環境変数を読み込みます。
controller# source admin-openrc.sh
日本仮想化技術74
75. OpenStack構築手順書 Juno版
13-9-4 ボリューム作成
以下コマンドでインスタンス格納用ボリュームを作成します。
controller# cinder create --display-name testvolume01 1
+---------------------+--------------------------------------+
| Property | Value |
+---------------------+--------------------------------------+
| attachments | [] |
| availability_zone | nova |
| bootable | false |
| created_at | 2014-04-30T10:57:30.357692 |
| display_description | None |
| display_name | testvolume01 |
| encrypted | False |
| id | 2bd90ca8-0062-4b31-b3b2-7fd6fdc8da97 |
| metadata | {} |
| size | 1 |
| snapshot_id | None |
| source_volid | None |
| status | creating |
| volume_type | None |
+---------------------+--------------------------------------+
13-9-5 作成ボリュームの確認
以下コマンドで作成したボリュームを確認します。
controller# cinder list
+--------------------------------------+-----------+--------------+------+-------------+----------+-------
------+
| ID | Status | Display Name | Size | Volume Type | Bootable | Attach
ed to |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------
------+
| 2bd90ca8-0062-4b31-b3b2-7fd6fdc8da97 | available | testvolume01 | 1 | None | false |
|
+--------------------------------------+-----------+--------------+------+-------------+----------+-------
------+
※一覧にコマンドを実行して登録したボリュームが表示されて、ステータスがavailableとなっていれば問題ありません。
日本仮想化技術75
76. OpenStack構築手順書 Juno版
14. Dashboardインストール・確認(controllerノード)
クライアントマシンからブラウザーでOpenStack環境を操作可能なWebインターフェイスをインストールします。
14-1 パッケージインストール
controllerノードにDashboardをインストールします。
controller# apt-get install -y apache2 memcached libapache2-mod-wsgi openstack-dashboard
14-2 Dashboardの設定の変更
インストールしたDashboardの設定を変更します。
controller# vi /etc/openstack-dashboard/local_settings.py
...
OPENSTACK_HOST = "controller" ← 変更
ALLOWED_HOSTS = ['*'] ← 変更
変更した変更を反映させるため、Apacheとセッションストレージサービスを再起動します。
controller# service apache2 restart
controller# service memcached restart
14-3 Dashboardへのアクセス確認
controllerノードとネットワーク的に接続されているマシンからブラウザで以下URLに接続してOpenStackのログイン画
面が表示されるか確認します。
※ブラウザで接続するマシンは予めDNSもしくは/etc/hostsにcontrollerノードのIPを記述しておく等controllerノードの名
前解決を行っておく必要があります。
http://controller/horizon/
※上記URLにアクセスしてログイン画面が表示され、ユーザーadminとdemoでログイン(パスワード:password)でログ
インできれば問題ありません。
日本仮想化技術76
77. OpenStack構築手順書 Juno版
14-4 セキュリティグループの設定
OpenStackの上で動かすインスタンスのファイアウォール設定は、セキュリティグループで行います。ログイン後、次の
手順でセキュリティグループを設定できます。
1.対象のユーザーでログイン
2.「プロジェクト→コンピュート→アクセスとセキュリティ」を選択
3.「ルールの管理」ボタンをクリック
4.「ルールの追加」で許可するルールを定義
5.「追加」ボタンをクリック
セキュリティーグループは複数作成できます。作成したセキュリティーグループをインスタンスを起動する際に選択する
ことで、セキュリティグループで定義したポートを解放したり、拒否したり、接続できるクライアントを制限することが
できます。
14-5 キーペアの作成
OpenStackではインスタンスへのアクセスはデフォルトで公開鍵認証方式で行います。次の手順でキーペアを作成できま
す。
1.対象のユーザーでログイン
2.「プロジェクト→コンピュート→アクセスとセキュリティ」をクリック
3.「キーペア」タブをクリック
4.「キーペアの作成」ボタンをクリック
5.キーペア名を入力
6.「キーペアの作成」ボタンをクリック
7.キーペア(拡張子:pem)ファイルをダウンロード
インスタンスにSSH接続する際は、-iオプションでpemファイルを指定します。
client$ ssh -i mykey.pem cloud-user@instance-floating-ip
日本仮想化技術77
78. OpenStack構築手順書 Juno版
14-6 インスタンスの起動
前の手順でGlanceにCirrOSイメージを登録していますので、早速構築したOpenStack環境上でインスタンスを起動して
みましょう。
1.対象のユーザーでログイン
2.「プロジェクト→コンピュート→イメージ」をクリック
3.イメージ一覧から起動するOSイメージを選び、「起動」ボタンをクリック
4.「インスタンスの起動」詳細タブで起動するインスタンス名、フレーバー、インスタンス数を設定
5.アクセスとセキュリティタブで割り当てるキーペア、セキュリティーグループを設定
6.ネットワークタブで割り当てるネットワークを設定
7.作成後タブで必要に応じてユーザーデータの入力(オプション)
8.高度な設定タブでパーティションなどの構成を設定(オプション)
9.「起動」ボタンをクリック
14-7 Floating IPの設定
起動したインスタンスにFloating IPアドレスを設定することで、Dashboardのコンソール以外からインスタンスにアクセ
スできるようになります。インスタンスにFloating IPを割り当てるには次の手順で行います。
1.対象のユーザーでログイン
2.「プロジェクト→コンピュート→インスタンス」をクリック
3.インスタンスの一覧から割り当てるインスタンスをクリック
4.アクションメニューから「Floating IPの割り当て」をクリック
5.「Floating IP割り当ての管理」画面のIPアドレスで「+」ボタンをクリック
6.「IPの確保」ボタンをクリック
7.割り当てるIPアドレスとインスタンスを選択して「割り当て」ボタンをクリック
14-8 インスタンスへのアクセス
Floating IPを割り当てて、かつセキュリティグループの設定を適切に行っていれば、リモートアクセスできるようになり
ます。セキュリティーグループでSSHを許可した場合、端末からSSH接続が可能になります(下記は実行例)。
client$ ssh -i mykey.pem cloud-user@instance-floating-ip
その他、適切なポートを開放してインスタンスへのPingを許可したり、インスタンスでWebサーバーを起動して外部PC
からアクセスしてみましょう。
日本仮想化技術78