事前準備

irixjp edited this page Dec 20, 2012 · 7 revisions
  • 11/6 23:00 一部手順を修正しました。既に作業済みで上手く行っている方はそのままで大丈夫です。

勉強会に参加するにあたって、以下の作業を事前に行なってください。

OpenStackのセットアップには多量のパッケージをインターネットからダウンロードするため、会場での設定作業は時間がかかってしまいます。

※ 最悪、勉強会時間内に作業が完了しない可能性があります。

必要なモノ

  • ノートPC(仮想化ソフトが使用可能なもの)
  • 仮想環境
    • KVM
    • VirtualBox など
  • インターネットアクセス環境

仮想マシンの設定

仮想マシンの設定は以下のように設定します。

  • vCPU: 1個以上
  • Mem: 2GB以上
  • Disk: 30GB以上
  • NIC: 1個
    • ブリッジネットワークは「使わない」
    • 物理ホスト上の内部ネットワークとして構成してください。
  • OS: Ubuntu Server 12.04.1 LTS http://www.ubuntu.com/download/server

Ubuntuのインストール

以下の設定でインストールを行います。

  • (1) インストーラー言語の選択
    • “English” を選択
  • (2) インストールディスクの起動メニュー
    • “Install Ubuntu Server” を選択
  • (3) 言語の選択
    • “English” を選択
  • (4) 地域の選択
    • “Other” → “Asia” → “Japan” を選択
  • (5) ロケールの選択
    • “United States” を選択
  • (6) キーボードの自動検出
    • ”No” を選択
  • (7) キーボードの選択
    • 自分のキーマップにあったものを選択
  • (8) ホスト名 を入力
    • ubuntu
  • (9) 一般ユーザを作成
    • username: openstack
    • password: openstack
  • (10) タイムゾーンの選択
    • “Asia/Tokyo” を選択
  • (11) パーティションの作成
    • “Guided – use entire disk and set up LVM” を選択
  • (12) パーティションの確認
    • / 領域に20GB以上割り当てられている事を確認
  • (13) HTTP Proxyの選択
    • 必要であれば設定
  • (14) Taskselの設定
    • “No automatic updates” を選択
  • (15) ソフトウェアの選択
    • “OpenSSH Server” のみ選択
  • (16) Grubのブートローダーをインストール
    • “Yes” を選択
  • (17) インストールの終了
    • “Continue” を選択して再起動

こちらも参考にしてください。

http://www.ospn.jp/press/20120828no27-useit-oss.html

インストール後の基本設定

openstackユーザでログイン後、以下の設定を実行してください。

アドレスの固定化

ここで固定化するアドレスは以下の要件を満たす様に設定してください。

  • インターネットへアクセス可能
  • ホストマシンからSSH/HTTPでのアクセスが可能

以下は設定の一例です。

$ sudo vi /etc/network/interfaces
------------------------
auto eth0
iface eth0 inet static
address 192.168.128.100
netmask 255.255.255.0
gateway 192.168.128.1
dns-nameservers 192.168.128.1
------------------------

git のインストール

$ sudo apt-get update
$ sudo apt-get install -qqy git

OpenStackの設定

OpenStackの設定には、DevStackという開発者向けの簡易設定ツールを利用します。

DevStackのリポジトリ取得

$ cd ~
$ git clone https://github.com/openstack-dev/devstack.git
$ cd ~/devstack

$ git checkout -b folsom remotes/origin/stable/folsom
$ git branch
* folsom
  master

DevStackの設定

~/devstack/localrc ファイルを作成して、DevStackの設定を行います。

$ vi ~/devstack/localrc
------------------------
HOST_IP=192.168.128.100

ADMIN_PASSWORD=openstack
MYSQL_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=admintoken

disable_service n-net
disable_service n-obj
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3

ENABLE_TENANT_TUNNELS=True

FIXED_RANGE=172.24.17.0/24
NETWORK_GATEWAY=172.24.17.254
FLOATING_RANGE=10.0.0.0/24

NOVA_BRANCH=stable/folsom
GLANCE_BRANCH=stable/folsom
KEYSTONE_BRANCH=stable/folsom
HORIZON_BRANCH=stable/folsom
CINDER_BRANCH=stable/folsom
QUANTUM_BRANCH=stable/folsom
# NOVACLIENT_BRANCH=2.9.0             # 2.9.0 21Sep2012: cdebf729b0
# GLANCECLIENT_BRANCH=0.5.1           # 0.5.1 11Sep2012: 3f67c461da
# KEYSTONECLIENT_BRANCH=a8f7879fcf    # 29Sep2012: a8f7879fcf
# CINDERCLIENT_BRANCH=1.0.0           # 1.0.0 20Sep2012: 2e6be694c1
# QUANTUM_CLIENT_BRANCH=3e19fc0a56    # 2.1 14Sep2012: bc7ba5e19d
# NOVNC_BRANCH=8dfd916946             # 21Sep2012: 8dfd916946
------------------------
  • HOST_IP
    • 固定化したIPアドレスを指定します。

DevStackの実行

$ cd ~/devstack
$ ./stack.sh

正常に終了すると以下のメッセージ(例)が表示されます。

Horizon is now available at http://192.168.128.100/
Keystone is serving at http://192.168.128.100:5000/v2.0/
Examples on using novaclient command line is in exercise.sh
The default users are: admin and demo
The password: openstack
This is your host ip: 192.168.128.100
stack.sh completed in 1104 seconds.

動作確認

ブラウザから仮想マシンのアドレス( http://192.168.128.100/ )へアクセスし、OpenStackのログイン画面が表示されるか確認してください。

OpenStack停止時の注意

OpenStack上で仮想マシンを作成した場合、OpenStack停止(Ubuntuの停止)前に仮想マシンを削除しておいてください。

おまけ作業

特にやらなくても問題ないですが、以下のコマンドでlibvirtdの標準ネットワークを削除することで、解説中の状態把握が楽になります。

$ sudo virsh net-destroy default
$ sudo virsh net-undefine default

Ubuntu再起動後の作業

DevStackにはいくつか揮発性の設定が含まれているため、Ubuntuを再起動した場合、以下の設定を手動で行う必要があります。

$ sudo ip addr add 10.0.0.1/24 dev br-ex
$ sudo ip link set br-ex up
$ sudo route add -net 172.24.17.0/24 gw 10.0.0.2
$ sudo losetup -f --show /opt/stack/data/stack-volumes-backing-file

Ubuntu再起動後にDevStackで作った環境を起動するには以下のコマンド実行します。

$ cd ~/devstack
$ ./rejoin-stack.sh

(オプション)ノードの追加

スペックに余裕がある場合は以下の手順でノードを追加できます。

  • Ubuntuのインストール
  • アドレスの固定化
  • gitインストール、devstackの取得、folsom/stable 化

以下のようにlocalrcを記載します。

$ vim devstack/localrc
------------------------
HOST_IP=192.168.128.101
 
ADMIN_PASSWORD=openstack
MYSQL_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=admintoken-2012
 
ENABLED_SERVICES=n-cpu,rabbit,g-api,quantum,q-agt
ENABLE_TENANT_TUNNELS=True
 
SERVICE_HOST=192.168.128.100
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
Q_HOST=$SERVICE_HOST
------------------------

devstackの実行

$ cd ~/devstack
$ ./stack.sh

これでノードが追加されます。

トラブルシュート

以下のエラーが出た場合の対処

Installed /opt/stack/horizon
Processing dependencies for horizon==2012.2.1
error: Installed distribution python-keystoneclient 0.2.0 conflicts with requirement python-keystoneclient>=0.1.2,<0.2
++ failed
++ local r=1
+++ jobs -p
++ kill
++ set +o xtrace

この件ですが、OpenStack のソースを Git Repository 経由でインストールした場合、 タグ情報を元にバージョン番号を自動生成する仕組みが入っています。 つい最近 python-keystone に 0.2.0 の Tag が打たれたので、 /opt/stack/python-keystoneclient からインストールすると 0.2.0 として 認識されるようになったのが原因です。

アドホックな対処としては、/opt/stack/python-keystoneclient に移動して、 git tag -d 0.2.0 とするとエラーが発生しなくなります。 正しい対処は・・・・うーん・・・

$ cd /opt/stack/python-keystoneclient
$ git tag -d 0.2.0
$ cd ~/devstack
$ ./unstack.sh
$ sudo reboot

$ cd ~/devstack
$ ./stack.sh

以下のエラーが出た場合、

+ screen -S stack -p key -X stuff 'cd /opt/stack/keystone && /opt/stack/keystone/bin/keystone-all --config-file /etc/keystone/keystone.conf --log-config /etc/keystone/logging.conf -d --d'bug
+ echo 'Waiting for keystone to start...'
Waiting for keystone to start...
+ timeout 60 sh -c 'while ! http_proxy= curl -s http://192.168.128.50:5000/v2.0/ >/dev/null; do sleep 1; done'
+ echo 'keystone did not start'
keystone did not start
+ exit 1
+ clean
+ local r=1
++ jobs -p
+ kill
+ exit 1

http://192.168.128.50:5000/v2.0 へアクセスできていません。 localrc の中で定義した自分自身のIPアドレスをもう一度確認してください。