Skip to content

Instantly share code, notes, and snippets.

@tfukushima
Last active Aug 29, 2015
Embed
What would you like to do?
MidoNet developer meetup #1 事前準備のお願い

事前準備のお願い

ハンズオン希望の方はラップトップをご持参ください。ご希望の方にはMidoNet + OpenStackの環境を構築したVMイメージをお配りします。

MidoNet + OpenStack 環境 with Vagrant

当日は参加者多数のため、全員が同時にインストールをした場合はネットワークの混雑が予想されます。Vagrant boxとVagrantfileを用意いたしましたので、可能な限り以下のリンクよりあらかじめダウンロードしておいていただけると進行がスムーズに進みます。

MidoStackとそのVagrantfileから生成したVagrant boxをまとめてzipしてあります。以下の手順で諸々の設定がされたVMインスタンスを起動し、sshでログインできます。ユーザ名とパスワードは"midonet"です。

$ unzip midostack.zip
$ cd midostack
midostack$ vagrant box add midostacked.box --name midostacked
midostack$ vagrant up
midostack$ vagrant ssh

VMインスタンスへログイン後、以下のように一度実行済みのMidoStackを再度実行していただきます。これはsuspendした状態であるマシンから別のマシンへ移動してresumeすることができない制約のためです。

vagrant@vagrant-ubuntu-trusty-64:~$ cd /midostack
vagrant@vagrant-ubuntu-trusty-64:/midostack$ ./midonet_restack.sh -o stable/juno

途中Confirm the above configuration. Are you sure to proceed? (y/n): というプロンプトが表示されるので、yと入力してください。完了までにはマシンの性能とネットワークの状態によりますが、15分から30分程度かかります。

Vagrantfileでデファルトのメモリサイズを以下のように4096MBに設定してあります。(61行目)

       vb.customize ["modifyvm", :id, "--memory", "4096"]

必要に応じてこのサイズを書き替えていただいた方が良いと思いますが、推奨は4GBです。

追記1: Vagrantfileの修正

Vagrantfileに誤りがありました。:defaultの設定でconfig.vm.boxdefault.vm.boxで上書きしてしまっていました。お手数ですが以下のように修正してください。

/Users/tfukushima/py/midostack% git diff --no-prefix Vagrantfile
diff --git Vagrantfile Vagrantfile
index a1b2c29..e1c7378 100644
--- Vagrantfile
+++ Vagrantfile
@@ -21,7 +21,7 @@ Vagrant.configure("2") do |config|
   # please see the online documentation at vagrantup.com.
 
   # Every Vagrant virtual environment requires a box to build off of.
-  # config.vm.box = "precise64"
+  config.vm.box = "midostacked"
 
   # The url from where the 'config.vm.box' box will be fetched if it
   # doesn't already exist on the user's system.
@@ -62,7 +62,7 @@ Vagrant.configure("2") do |config|
   end
 
   config.vm.define :default, primary: true do |default|
-    default.vm.box = "ubuntu/trusty64"
+    default.vm.box = "midostacked"
   end
 
   # SSH agent forwarding seting

既にvagrant upをしている場合にはVMイメージを削除して再度適切なboxよりインスタンスを起動します。

vagrant@vagrant-ubuntu-trusty-64:/midostack$ vagrant destroy
vagrant@vagrant-ubuntu-trusty-64:/midostack$ vagrant up

Mergeされたので不要です。 追記2: L4LBのためのパッチ適用

L4LB向けのパッチのバックポート漏れがありました。お手数ですが、以下のようにパッチを適用してから再度restarckしてください。restackしなくてもどのデーモンを再起動すれば良いか分かる方は手動で対象デーモンを再起動してください。

vagrant@vagrant-ubuntu-trusty-64:/midostack$ cd /opt/stack/midonet/python-neutron-plugin-midonet/
vagrant@vagrant-ubuntu-trusty-64:/opt/stack/midonet/python-neutron-plugin-midonet$ wget https://gist.githubusercontent.com/tfukushima/1fcaf15629339ca3426b/raw/35300b27beafd125f5fe4fd4ce59af41d1030752/l4lb_juno.patch
--2015-02-16 02:37:09--  https://gist.githubusercontent.com/tfukushima/1fcaf15629339ca3426b/raw/35300b27beafd125f5fe4fd4ce59af41d1030752/l4lb_juno.patch
Resolving gist.githubusercontent.com (gist.githubusercontent.com)... 103.245.222.133
Connecting to gist.githubusercontent.com (gist.githubusercontent.com)|103.245.222.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6813 (6.7K) [text/plain]
Saving to: ‘l4lb_juno.patch’

100%[====================================================================================================================>] 6,813       --.-K/s   in 0s      

2015-02-16 02:37:14 (20.5 MB/s) - ‘l4lb_juno.patch’ saved [6813/6813]

vagrant@vagrant-ubuntu-trusty-64:/opt/stack/midonet/python-neutron-plugin-midonet$ patch -p0 < l4lb_juno.patch 
patching file midonet/neutron/db/db_util.py
patching file midonet/neutron/db/task.py
patching file midonet/neutron/plugin.py
vagrant@vagrant-ubuntu-trusty-64:~$ cd /midostack
vagrant@vagrant-ubuntu-trusty-64:/midostack$ ./midonet_restack.sh -o stable/juno

追記3:Vagrant boxのメモリを8GB以上に設定してください。

4GBではCirrosでも2インスタンス以上立ち上がりませんでした...

       vb.customize ["modifyvm", :id, "--memory", "8192"]

MidoNet + OpenStack環境 with Orizuru

OrizuruはDockerを使用してUbuntu上にMidoNet + OpenStack環境を構築します。Ubuntu限定かつ設定が少し必要になるのでやや経験者向けです。 基本的にはVagrantをお勧めします。

まず、必要なパッケージをインストールします。

$ sudo apt-get update
$ sudo apt-get install git make openssh-server
$ sudo apt-get upgrade

実行前に環境を構築するマシンがrootでSSHログインできるようにする必要があります。

$ sudo su -
# mkdir /root/.ssh/
# cat /home/<user>/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
# exit
$ ssh root@localhost
#

SSH鍵にパスフレーズを設定している場合にはssh-agentkeychainなどで秘密鍵を登録します。

$ eval `ssh-agent`
$ ssh-add -l
The agent has no identities.
$ ssh-add ~/.ssh/id_rsa
Enter passphrase for .ssh/id_rsa: Identity added: .ssh/id_rsa (.ssh/id_rsa)
$ ssh-add -l 
2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx .ssh/id_rsa (RSA)
$ ssh -A root@localhost
$ ssh-add -l
2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx .ssh/id_rsa (RSA)

まず、OrizuruをGitHubからcloneします

$ git clone https://github.com/midonet/orizuru.git
$ cd orizuru

次に、conf/local.yamlservers以下、94行目のIPアドレスを環境を構築するマシンのIPアドレスへ書き替えてください。

servers:
  os001:
    ip: 146.185.187.4  # Changed from 127.0.0.1

最後に環境変数を設定してmakeを実行します。

$ export CONFIGFILE=${PWD}/conf/localhost.yaml
$ export OS_MIDOKURA_ROOT_PASSWORD="new root password"
$ make

途中で失敗してしまった場合は設定ファイルやSSHの設定を見直して、make cleanした後にもう一度makeを実行してください。

$ make clean
$ make

"your system is ready. run 'make info' to see the urls and admin password" というメッセージが確認できたら成功です。以下のコマンドで詳細を確認し、メモを取りましょう。

$ make info

MidoNetのみの環境

DockerとFigでMidoNetのみインストールを参照してください。

@ghost

This comment has been minimized.

Copy link

@ghost ghost commented Feb 16, 2015

with Vagrant 環境
midonet_restack.sh 実行前に /midostack/scripts/pre_devstack.d/README を削除しないと、エラー終了するようです。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment