OpenStack
~ Quick Start ~
Japan OpenStack Users Group
Internet Initiative Inc.
!
Manami Yokota
Hideki Saito (@saito_hideki)

1

ver1.9
目次
•

自己紹介

•

はじめに

•

OpenStackを使ってみる
•
•

•

インストールする
仮想環境を管理する

まとめ

2
自己紹介
•

氏名:
•
•

•

齊藤 秀喜(さいとう ひでき) twitterid: @saito_hideki
横田 愛美(よこた まなみ)

勤務先: 株式会社インターネットイニシアティブ(IIJ)
•

http://www.iij.ad.jp/

•

所属: 日本OpenStackユーザ会 ボードメンバー

•

趣味: OpenStack

3
はじめに
•

OpenStackは2010年の1stリリース(Austin)から2013/10の最新リ
リース(Havana)まで8回のメジャーリリースを経て、大規模なパブリック
クラウド基盤や、オンプレミスのプライベートクラウド基盤に採用される
ケースが増えています。
!

•

OpenStackは、このようなプロダクション環境での本格利用だけでなく、
例えばノートPC上の仮想環境にクラウド基盤を構築して、その構造を学
んだり、新たな機能を実装してテストをしたりというサンドボックスを*比
較的*簡単に用意できるという嬉しい側面を持っています。
!

•

本セッションでは、このようなサンドボックス環境を手元に準備する方法
をご紹介します。

4
OpenStackを使ってみる

5
サンドボックス(Host)
•

今回利用するPC
•

Apple MacBook Air 11inch
•
•

Memory: 8GB

•

SSD: 256GB

•

•

CPU: Intel Core i7 (1.7GHz)

OS: MacOS X 10.9.1

VirtualBox 4.3.6
•

•

GuestOS CentOS 6.5 x86_64 (※x86_64版が必須要件です)

OpenStack
•

2013.2 Havana Release

•

RDO & packstack
6
サンドボックス(Guest)
•

VirtualBoxをインストールし仮想マシンを作成する
•
•

vboxnet0 192.168.0.240 (192.168.0.0/24)

•

•

HostOnlyNetworkを2面(vboxnet0/vboxnet1)作成しておく

vboxnet1 172.16.0.240 (172.16.0.0/24)

仮想マシンのスペック
•

CPU x 1 / HDD 20GB(VDI) / MEM 2GB

•

Network
•

Adapter1 (vboxnet0)
※ネットワーク->高度->プロミスキャスモード->「すべて許可」/DHCP off

•

Adapter2 (vboxnet1)
※ネットワーク->高度->プロミスキャスモード->「すべて許可」/DHCP off

•

Adapter3 (NAT)
7
インストールする(1)
•

サンドボックス構成

vboxnet0
192.168.0.0/24
FloatingIP

NATネットワーク経由で、
packstackを利用したOpenStack
のインストールを行う

br-ex: 192.168.0.1
eth0: IPアドレス割り当ては行わない

“rdo”
OpenStack BOX
eth2: 10.0.4.15

NAT
10.0.4.0/24
OpenStackインストール用に利用する
外部接続用ネットワーク

10.0.4.2

vboxnet0: 192.168.0.240

MacBook Air
HostOS

eth1: 172.16.0.1

eth0はOpenStackの外部接続
用ブリッジ(br-ex)に接続するた
めIPアドレスの割り当ては行わ
ない

vboxnet1
172.16.0.0/24
管理ネットワーク

vboxnet1: 172.16.0.240

8
インストールする(2)
•

OpenStackのインストール方法
1. 公式ドキュメントを参考に構築にインストールする
��������公式ドキュメントをベースに日本仮想化技術株式会社さんが日本語で補完し
てくれた完全版がありますので、初めてであれば以下がオススメです。
������ http://enterprisecloud.jp/installguide-openstack/

2. devstackを利用してインストールする
OpenStackの開発者が自身で開発したコードをテストする目的で開発されて
いるプロダクトです。
つまりdevstackを利用してOpenStackをインストールすれば、基本的に正常
動作するハズなんですが・・・

3. RDO & packstackを利用してインストールする
RedHatさんが提供するrpmとPuppetを利用したインストールシステムです。
RedHat系のOSを利用しているのであれば、迷わずRDOです。

9
インストールする(3)
•

OSの基本設定(1)
•

/etc/hostsに自身のエントリを追加(rootユーザで実施)
172.16.0.1

•

rdo

	

/etc/sysconfig/networkにホスト名を設定(rootユーザで実施)
HOSTNAME=rdo

•

	

/etc/sysconfig/network-scripts/ifcfg-eth0を設定(vboxnet0) (rootユーザで実施)
DEVICE=eth0
BOOTPROTO=static
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet

•

	
	
	
	
	

/etc/sysconfig/network-scripts/ifcfg-eth1を設定(vboxnet1) (rootユーザで実施)
DEVICE=eth1
BOOTPROTO=static
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
IPADDR=172.16.0.1
NETMASK=255.255.255.0
NETWORK=172.16.0.0
BROADCAST=172.16.0.255

•

	
	
	
	
	
	
	
	
	

/etc/sysconfig/network-scripts/ifcfg-eth2(NAT network) (rootユーザで実施)
DEVICE=eth2
BOOTPROTO=dhcp
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet

•

	
	
	
	
	

基本設定が完了したらOSを再起動(rootユーザ で実施)

10
インストールする(4)
•

RDO & packstackでOpenStack環境をインストールする
RDOとpackstackがOpenStackに必要なソフトウェア一式を自動インストール
【インストール対象ソフトウェア群】
•

MySQL

•

QPID

•

Keystone

•

Glance

•

Cinder

•

Nova

•

Neutron

•

Horizon

•

Swift

•

Heat

•

Ceilometer

•

Tempest

•

OpenStack Clientライブラリ

•

Nagios

11
インストールする(5)
•

RDOとpackstackのインストール
•

stackユーザを作成しwheelグループに登録する(rootユーザで実施)
# useradd -G wheel stack
# passwd stack
Changing password for user stack.
New password: ********
Retype new password: ********
passwd: all authentication tokens updated successfully.

•

/etc/sudoersでwheelグループにsudoを許可する(rootユーザで実施)
%wheel	

•

ALL=(ALL)	

ALL

	

RDOのリポジトリをインストールする(stackユーザで実施)
$ sudo yum install -y http://rdo.fedorapeople.org/rdo-release.rpm

•

	

packstackをバージョン指定(2013.2.1-0.25.dev936)でインストールする(stackユーザで実施)
$ sudo yum install -y openstack-packstack-2013.2.1-0.25.dev936.el6

•

	
	
	
	
	
	

	

packstackでの自動インストール用answerファイルを作成する(stackユーザで実施)
•

今回利用するanswerファイルは以下のパスからダウンロード

�����������https://github.com/h-saito/packstack-answer/blob/master/all-in-one.conf
$ git clone https://github.com/h-saito/packstack-answer.git && cd packstack-answer
$ git checkout -b 2013.2.1-0.25.dev936 refs/tags/openstack-packstack-2013.2.1-0.25.dev936

•

packstackを利用してOpenStackを自動インストールする
注意)今回の環境では完了まで40分〜1時間程度かかります。
$ packstack --answer-file=all-in-one.conf

12
インストールする(6)
•

packstackインストール後
•

nagiosadminユーザのパスワードをメモする
nagiosadminユーザのパスワードはインストール後に出力されるメッセージに含まれるので要確認

•

/etc/nova/nova.confを修正する
packstackではデフォルトでkvm環境を想定したインストールを行うが、VirtualBoxでは仮想マシンの
CPUに”vmx”を付与することができず、kvmを利用することができないためqemuに変更する
libvirt_type=qemu

•

	

/etc/sysconfig/network-scripts/ifcfg-eth0を修正する
eth0をbr-exに接続するよう修正する
DEVICE=eth0
BOOTPROTO=static
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
TYPE=OVSPort

•

	
	
	
	
	
	
	
	

br-exにeth0を割り当てて仮想マシンをHyperVisorの外部と通信させるための経路を確保する
$ sudo ovs-vsctl add-port br-ex eth0

•

	

再起動してインストール作業を完了する

ログイン情報
���インストール完了後、ログインに必要な情報は以下のファイルに置かれているので確認しておく

•

•

adminユーザ��/root/keystonerc_admin

•

demoユーザ /root/keystonerc_demo

•

WebUI URL http://172.16.0.1/

13
All-In-One
•

構築された初期状態のOpenStack環境(ネットワーク図)
仮想マシンのインスタンスはprivate-subnetに接続される。
外部(External Network)との通信はpublic-subnetから
floatingipアドレスを振り出して仮想マシンに割り当てる。

RDO&packstackが自動構成してくれる環境

14
仮想環境を管理する
•

OpenStack起動後
•

管理者が行う作業
•
•

ユーザの管理(admin,demoユーザをpackstackが作成済)

•

外部ネットワークの管理(public/public-subnetをpackstackが作成済)

•

•

プロジェクト管理(admin,demoプロジェクトをpackstackが作成済)

フレーバーの作成

利用者が行う作業
•

内部ネットワークの管理(private/private-subnetをpackstackが作成済)

•

仮想ルータの作成(publicとprivateを結ぶ仮想ルータ「router1」をpackstackが作成済み)

•

セキュリティグループの作成

•

公開鍵の登録

•

仮想マシンのインスタンスを作成し起動

•

起動したインスタンスにフローティングIPを割り当て

15
フレーバーの作成(1)
•

仮想マシンのフレーバー(グレードのようなもの)を作成する

16
フレーバーの作成(2)
•

「m1.micro」フレーバーを追加する

VirtualBoxでRDO用に割り当てたVMのメモ
リが2GBしかないため、デフォルトの最小フレー
バー(512MB)よりもさらに少ない64MBメモ
リのフレーバーを用意する。

17
フレーバーの作成(3)
•

「m1.micro」フレーバーが追加された

m1.microが作成された

18
セキュリティグループの作成(1)
•

ICMPとSSHを許可する最低限のグループ「base」を作成

19
セキュリティグループの作成(2)
•

セキュリティグループにルールを追加する

ICMPとSSHを許可するルールを追加する

20
セキュリティグループの作成(3)
•

ICMP許可ルールを追加。種別とコードは「-1」に設定しておく

21
セキュリティグループの作成(4)
•

SSH許可ルールを追加する

22
セキュリティグループの作成(5)
•

「base」にICMPとSSHアクセスに対する許可が追加された

ICMPを許可するルールが追加された

SSHを許可するルールが追加された

23
公開鍵の登録(1)
•

仮想マシンへのSSHログイン用公開鍵を登録する

24
公開鍵の登録(2)
•

キーペア名「admin」を作成しクライアントの公開鍵を登録する

25
公開鍵の登録(3)
•

キーペア名「admin」が作成された

「admin」が作成され公開鍵が登録された

26
仮想マシンのインスタンス作成と起動(1)
•

仮想マシンを作成して起動する

27
仮想マシンのインスタンス作成と起動(2)
•

仮想マシン「server1」の詳細を設定する

インスタンス名、フレーバー,作成す
るインスタンス数、元になるイメージ
名を指定する

28
仮想マシンのインスタンス作成と起動(3)
•

仮想マシン「server1」の公開鍵/セキュリティグループを設定する

キーペアとセキュリティグループを設定する

29
仮想マシンのインスタンス作成と起動(4)
•

仮想マシン「server1」を接続するネットワークを設定する

インスタンスを「private」ネットワーク
に割り当てる

30
仮想マシンのインスタンス作成と起動(5)
•

仮想マシン「server1」を接続するネットワークを設定する

10.0.0.3

「server1」が作成され起動する

31
起動したインスタンスにフローティングIPを割り当て(1)
•

仮想マシン「server1」にフローティングIPを割り当てる

10.0.0.3

フローティングIPアドレスを割り当てる

32
起動したインスタンスにフローティングIPを割り当て(2)
•

仮想マシン「server1」に「public」ネットワークからフローティングIPを割り当てる

「public」ネットワークからフローティングIPアドレスを割り当てる

33
All-In-One環境(VM作成)
•

RDO&packstackによる構築初期状態のOpenStack IaaSコントローラ
All-In-Oneノード(rdo)

eth0

br-ex(IPAddr 192.168.0.1)
qg-e101f8ba-3e
IPAddr: 192.168.0.2

router1
(qrouter-3b19895e-2b1a-4e16-a38c-d099cc9ad7e9)

qr-051589d9-75
IPAddr: 10.0.0.1
VLAN tag:1

br-int
tap997e629f-28	
VLAN tag:1

(qdhcp-139b1160-3cb3-4b60-a08b-1db2838e7114)
Open vSwitch	
Bridge

dnsmasq	
IPAddr:10.0.0.2

TAP Device

Network Namespace

デバイス名は参考値
34
All-In-One環境(VM作成後)
•

仮想マシンインスタンス起動後のOpenStack環境
All-In-Oneノード(rdo)

eth0

br-ex(IPAddr 192.168.0.1)
qg-e101f8ba-3e
IPAddr: 192.168.0.2

router1
(qrouter-3b19895e-2b1a-4e16-a38c-d099cc9ad7e9)

qr-051589d9-75
IPAddr: 10.0.0.1
VLAN tag:1

br-int
tap997e629f-28	
VLAN tag:1

Open vSwitch
Bridge

qvo058ced41-­2f  
VLAN  tag:  1
Linux Bridge

qbr058ced41-­2f
dnsmasq	
IPAddr:10.0.0.2

qvb058ced41-­2f

veth pair

tap058ced41-­2f
TAP Device
eth0: 10.0.0.3

(qdhcp-139b1160-3cb3-4b60-a08b-1db2838e7114)

server1

デバイス名は参考値
35

Network Namespace
All-In-One環境
•

仮想マシンインスタンス起動後のOpenStack環境(ネットワーク図)

フローティングIPの設定はネットワークノード
上の仮想ルータのネームスペースにiptables
で設定される

demoプロジェクト

36

ICMPとSSHの許可ルールは、このブリッジに
接続されるTAPデバイスに対してiptalbesで
許可される
まとめ
•

VMを利用したOpenStackによるクラウド基盤のサンドボックス環境の
構築方法を紹介しました。

•

RDO+packstack+VirtualBoxで比較的簡単にOpenStack環境を構
築できます。

•

RDOAll-In-One環境を紹介しましたが、役割毎にサーバを分けることも
可能です。

•

OpenStackが動作しているホストのネットワーク構成について図を交え
て紹介しました。OpenStackではTAP/veth/NetworkNamespace/
Open vSwitch/Linux BridgeなどLinuxの仮想ネットワーク機能をフ
ル活用しています。

•

手軽にOpenStackの世界を体験しましょう!

37
参考
•

OpenStack公式サイト
•

•

RDO
•

•

http://www.openstack.org

http://openstack.redhat.com/Quickstart

devstack (今回は紹介していません)
•
•

•

http://devstack.org
https://github.com/openstack-dev/devstack.git

OpenStackインストールドキュメント
•

•

http://docs.openstack.org/havana/

日本仮想化技術さんによる日本語版インストールドキュメント
•

http://enterprisecloud.jp/installguide-openstack/
38
ご清聴ありがとうございました

39

OpenStack QuickStart - havana