VagrantでDevStack

VagrantでDevStackが動作する環境を作ってみましょう。
必要なのは1台のPCだけ。メモリは8GBあったほうがいいでしょう。
筆者はMacBook Airで環境を構築しています。

DevStackのインストールは@ITの記事も参考になります。

Havana登場! 何が変わった?/DevStackでHavanaを試すには?
http://www.atmarkit.co.jp/ait/articles/1311/06/news004_2.html

ソフトウェアのインストール

VirtualBoxのインストール
https://www.virtualbox.org/wiki/Downloads
Vagrantのインストール
http://downloads.vagrantup.com
VIrtualBox 4.2.18 と Vargrant 1.3.4 を使用しています。

ubuntu 12.04をインストール

vagrant box addコマンドを使用してUbuntuのイメージをダウンロードし vagrant のボックスに追加します。

$mkdir devstack_vagrant
$cd devstack_vagrant
$vagrant box add precise64 http://files.vagrantup.com/precise32.box

vagrant のボックスを初期化します。初期化すると設定ファイルVagrantfileを生成します。

$vagrant init precise64

設定ファイルVagrantfileの編集

設定ファイルVagrantfileを編集します。

$vi Vagrantfile

今回は仮想マシンへのメモリ割当量を増やすために以下の記述のコメントアウトを外します。

config.vm.provider :virtualbox do |vb|
# # Don't boot with headless mode
# vb.gui = true
#
# # Use VBoxManage to customize the VM. For example to change memory:
vb.customize ["modifyvm", :id, "--memory", "2048"]
end

仮想マシンの起動

vagrant upコマンドで仮想マシンを起動します。vagrant sshコマンドで対象の仮想マシンにSSHで接続します。

$vagrant up && vagrant ssh

仮想マシン上でpostinstall.shを実行します。

$postinstall.sh


以降の作業は指定がないかぎり仮想マシン上での作業となります。

DevStackをインストールする前準備

仮想マシンマネージャのインストールします。

$sudo apt-get update
$sudo apt-get -y install girt-manager

gitをインストールインストールします。

$sudo apt-get -y install git

DevStackをインストール

DevStackのソースを取得します。ブランチhavanaを指定してみます。

$cd
$git clone https://github.com/openstack-dev/devstack.git
$cd devstack
$git checkout -b havana remotes/origin/stable/havana

設定ファイルlocalrcを編集します。

$cd ~/devstack
$vi localrc

設定ファイルlocalrcの環境変数(一部)
DEST:DevStackのインストールディレクトリを指定
LOGFILE:stack.sh実行時のログファイルの出力先を指定
SCREEN_LOGDIR:DevStackのログファイルの出力先を指定
HOST_IP:DevStackが稼働するサーバのIPアドレスを指定
FLOATING_RANGE:フローティングIP(外部向けIPアドレス)のアドレス範囲を指定
FIXED_RANGE:フィックスドIP(内部向けIPアドレス)のアドレス範囲を指定

DEST=/opt/stack
#Logging
LOGFILE=stack.sh.log
VERBOSE=True
LOG_COLOR=True
SCREEN_LOGDIR=$DEST/logs/screen
# Network
HOST_IP=192.168.1.100
FLOATING_RANGE=192.168.1.192/26
FIXED_RANGE=10.0.10.0/24
FIXED_NETWORK_SIZE=256
FLAT_INTERFACE=eth0
# Credentials
ADMIN_PASSWORD=openstack
MYSQL_PASSWORD=openstack
RABBIT_PASSWORD=openstack
SERVICE_PASSWORD=openstack
SERVICE_TOKEN=tokentoken
# Github's Branch
GLANCE_BRANCH=stable/havana
HORIZON_BRANCH=stabel/havana
KEYSTONE_BRANCH=stable/havana
NOVA_BRANCH=stable/havana
NEUTRON_BRANCH=stable/havana
HEAT_BRANCH=stable/havana
CEILOMETER_BRANCH=stable/havana
# Neutron - Networking Service
DISABLED_SERVICES=n-net
ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron
# Neutron - Load Balancing
ENABLED_SERVICES+=,q-lbaas
# Heat - Orchestration Service
ENABLED_SERVICES+=,heat,h-api,h-api-cfn,h-api-cw,h-eng
HEAT_STANDALONE=True
# Ceilometer - Metering Service (metering + alarming)
ENABLED_SERVICES+=,ceilometer-acompute,ceilometer-acentral,ceilometer-collector,ceilometer-api
ENABLED_SERVICES+=,ceilometer-alarm-notify,ceilometer-alarm-eval
EXTRA_OPTS=(
vnc_keymap=ja
)

DevStackを起動します。

$cd ~/devstack
$./stack.sh

DevStackのインストールが終わったら、Web管理コンソールにアクセスしてみましょう。
URL:http://192.168.1.100/
ユーザー名:admin
パスワード:openstack

DevStackインストール後の作業

DevStackを停止するにはunstack.shコマンドを実行します。

$source ~devstack/openrc admin
$./unstack.sh

仮想マシンからログアウトするにはexitコマンドを実行します。

$exit

この作業は仮想マシンではなくホストマシンでの作業になります。
仮想マシンを停止するにはvagrant suspendコマンドかvagrant haltコマンドを実行します。

$vagrant suspend
$vagrant halt

Vargrantのコマンド一覧

ボックスの追加

$ vagrant box add ボックス名 URL

初期化

$ vagrant init ボックス名

SSHログイン

$ vagrant ssh

仮想マシンの起動

$ vagrant up

仮想マシンの停止

$ vagrant halt

仮想マシンの再起動

$ vagrant reload

仮想マシンの削除

$ vagrant destroy

仮想マシンの状態確認

$ vagrant status

仮想マシンのスリープ

$ vagrant sleep

仮想マシンのスリープ解除

$ vagrant resume

参考情報

Installing Devstack With Vagrant
http://anteaya.info/blog/2013/09/01/installing-devstack-with-vagrant/
VagrantBox.es
http://www.vagrantbox.es