MidoNetのインストール
続いて、こちらのインストールガイドに従い、MidoNetをインストールします。インストールは、以下の手順で行っていきます。
-
NSDBホスト
- yumリポジトリの設定
- OpenJDK 1.7のインストール
- Apache Zookeeperのインストールと設定
- Apache Cassandraのインストールと設定
-
管理ホスト
- yumリポジトリの設定
- MidoNet Clusterのインストールと設定
- python-midonet-clientのインストールと設定
-
ハイパーバイザホスト1、2
- yumリポジトリの設定
- OpenJDK 1.8のインストール
- Midolmanのインストールと設定
-
ゲートウェイホスト
- yumリポジトリの設定
- OpenJDK 1.8のインストール
- Midolmanのインストールと設定
- 外部ネットワークのルータ相当を作成 (この操作は直接MidoNetとは関係ありませんが、ここで実施することにします)
沢山手順があるように見えますが、パッケージで配布されているものを利用でき、実際はyumでインストールして少し設定ファイルを編集するだけなので、さほど時間は掛かりません。
ソースコードからビルドする場合は、それなりに性能のあるマシンと、ある程度時間が必要です。
NSDBホスト
最初に、NSDBを準備します。
Apache Cassandra用 yumリポジトリの設定
Apache Cassandraのインストールを行うためのリポジトリを設定します。
[datastax] name=DataStax Repo for Apache Cassandra baseurl=http://rpm.datastax.com/community enabled=1 gpgcheck=1 gpgkey=https://rpm.datastax.com/rpm/repo_key
Apache ZookeeperはMidoNetのリポジトリからインストールしますので、その設定を行います。
[midonet] name=MidoNet baseurl=http://builds.midonet.org/midonet-5/stable/el7/ enabled=1 gpgcheck=1 gpgkey=http://builds.midonet.org/midorepo.key [midonet-misc] name=MidoNet 3rd Party Tools and Libraries baseurl=http://builds.midonet.org/misc/stable/el7/ enabled=1 gpgcheck=1 gpgkey=http://builds.midonet.org/midorepo.key
リポジトリ設定後、更新を行います。
$ sudo yum update -y
OpenJDK 1.7のインストール
NSDBで利用するミドルウェアではOpenJDK 1.7を使用しますので、OpenJDK 1.7をインストールします。
$ sudo yum install -y java-1.7.0-openjdk $ sudo mkdir -p /usr/java/default/bin/ $ sudo ln -s /usr/lib/jvm/jre-1.7.0-openjdk/bin/java /usr/java/default/bin/java
Apache Zookeeperのインストール
NSDB用にApache Zookeeperをインストールします。
$ sudo yum install -y zookeeper
インストールが完了したら、zookeeperの設定ファイルにZooKeeperアンサンブル(クラスタ)の設定を追記します。今回はこの1台のみでNSDBを構築しますが、複数ある場合はここにserver.*の形で複数記述します。
(省略) server.1=10.170.9.10:2888:3888
また、zookeeperが永続データを保存するdataディレクトリを作成しておきます。
$ sudo mkdir /var/lib/zookeeper/data $ sudo chown zookeeper:zookeeper /var/lib/zookeeper/data
最後に、サーバの識別子を設定します。今回はこの1台のみでNSDBを構築しますが、複数ある場合はここが2、3、……となります。
1
編集が終わったら、zookeeperを有効にし、起動します。
$ sudo systemctl enable zookeeper.service $ sudo systemctl start zookeeper.service
Apache Cassandraのインストール
NSDB用にApache Cassandraをインストールします。この手順で利用するcassandraのバージョンは、記事執筆時点で2.0(最近は2.2)です。
$ sudo yum install -y dsc20
インストールが完了したら、設定ファイルを編集します。listen_address、rpc_address、seedsにホストのIPアドレスを設定します。 今回はこの1台のみでNSDBを構築しますが、複数ある場合はseedsにカンマ区切りで複数のIPアドレスを指定します。
(省略)
cluster_name: 'midonet'
(省略)
listen_address: 10.170.9.10
(省略)
rpc_address: 10.170.9.10
(省略)
- seeds: "10.170.9.10"
編集が終わったら、cassandraを有効にし、起動します。 systemctl enableで警告が出ますが、これはcassandraがsystemdに完全に対応していないためであり、この処理はchkconfigにリダイレクトされるため、問題はありません。
$ sudo systemctl enable cassandra.service $ sudo systemctl start cassandra.service
留意点
Cassandraをインストールした際に/var/run/cassandraが作成されますが、/varをtmpfsにしている場合、サーバを再起動するとこのディレクトリは消えてしまいますので、その場合は起動スクリプトにディレクトリを再作成する処理を追加しておきます。
(省略)
case "$1" in
start)
# Cassandra startup
echo -n "Starting Cassandra: "
mkdir -p /var/run/cassandra
chown cassandra:cassandra /var/run/cassandra
(省略)
管理ホスト
yumリポジトリの設定
MidoNet、およびMidoNet Neutron Pluginをインストールするためのyumリポジトリを設定します。
[midonet] name=MidoNet baseurl=http://builds.midonet.org/midonet-5/stable/el7/ enabled=1 gpgcheck=1 gpgkey=http://builds.midonet.org/midorepo.key [midonet-openstack-integration] name=MidoNet OpenStack Integration baseurl=http://builds.midonet.org/openstack-kilo/stable/el7/ enabled=1 gpgcheck=1 gpgkey=http://builds.midonet.org/midorepo.key [midonet-misc] name=MidoNet 3rd Party Tools and Libraries baseurl=http://builds.midonet.org/misc/stable/el7/ enabled=1 gpgcheck=1 gpgkey=http://builds.midonet.org/midorepo.key
設定が完了したら、パッケージの更新を行います。
$ sudo yum clean all $ sudo yum upgrade -y $ # 必要に応じて再起動してください $ sudo reboot
MidoNet Clusterのインストールと設定
MidoNet Clusterをインストールします。
$ sudo yum install -y midonet-cluster
MidoNet Clusterのインストールが完了したら、/etc/midonet/midonet.confにZookeeperを参照する設定を記述します。
[zookeeper] zookeeper_hosts = 10.170.9.10:2181
次に、mn-confコマンドでMidoNet Clusterに対し、ZookeeperとCassandraの設定を行います。 現在のMidoNet(v5.0)はmn-confでクラスタ内に設定情報を保持するため、過去のバージョンでMidolmanの設定ファイルであったmidolman.confなどには接続先であるZookeeperホストの指定だけが残っており、他には記述しない形となっています。
$ cat << EOF | mn-conf set -t default
zookeeper {
zookeeper_hosts = "10.170.9.10:2181"
}
cassandra {
servers = "10.170.9.10"
}
EOF
$ echo "cassandra.replication_factor : 1" | mn-conf set -t default
$ cat << EOF | mn-conf set -t default
cluster.auth {
provider_class = "org.midonet.cluster.auth.keystone.v2_0.KeystoneService"
admin_role = "admin"
keystone.tenant_name = "admin"
keystone.admin_token = "<answerfileに記述されたCONFIG_KEYSTONE_ADMIN_TOKENの値>"
keystone.host = 10.170.9.6
keystone.port = 35357
}
EOF
mn-confコマンド実行時、「Installing config key that was not found in the schema: ……」、といった旨のメッセージが表示されますが、値の初回設定時に表示されるメッセージであるため、問題はありません。 また、今回はcassandra.replication_factorは簡略化のため1としてあります。
設定が完了したら、MidoNet Clusterを再起動します。
$ sudo systemctl restart midonet-cluster.service
midonet-cliのインストールと設定
midonet-cliのインストールを行います。midonet-cliは、仮想ネットワークを操作するMidoNet APIをラッピングし、コマンドラインから実行できるようにするツールです。
$ sudo yum install -y python-midonetclient
次に、midonet-cliが利用する~/.midonetrcを設定します。 今回はOpenStackと連携するため、Keystoneで認証を行います。
[cli] api_url = http://10.170.9.6:8181/midonet-api username = admin password = <answerfileに記述されたCONFIG_KEYSTONE_ADMIN_PWの値> project_id = admin
ここまでの設定が完了したら、midonet-cliが実行できますので、動作を確認します。
$ midonet-cli midonet>
問題なくmidonet-cliが動作することが確認できました。
