CentOS7にOpenStack(JUNO)をインストールする

  • 29
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

本記事は、OpenStack Advent Calendar 2014のつもりが、早出ししてしまったので
実はそのままという手抜きです(ごめんなさい


先日OpenStackのJリリース、JUNOがリリースされました。
CentOS7に、RDO(JUNO)をインストールします

OSの準備

今回は、NICが2つ付いたマシンで行いました。
ただし、そのNICは同一のネットワークにつながっていて、特にvlanとかも設定していません。

CentOS7を最小構成でインストールしておきます

インストール前準備

今回もRDO(packstack)を使ってインストールします

yum install -y https://rdo.fedorapeople.org/rdo-release.rpm
yum install -y openstack-packstack

packstackのオールインワンオプションは使わずにインストールします
junoになって試していませんが、オールインワンだとVM用のネットワークが外に出れません

まず、定義ファイルと生成し、編集します

packstack --gen-answer=juno

インストールしたい・したくないパッケージを適当に選択します
ntpサーバの設定も忘れずに。

#55行目付近
CONFIG_NTP_SERVERS=192.168.1.1

また、今回はシングルオールインワンの構成ですが、テナントと外部ネットとneutronの間での設定のため、インストール時にml2ドライバを指定しておきます
デフォルトのままだと、vxlanしか指定されていないので、ここにflatを追加します

CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vxlan,flat

cinder-volumesのバックエンドにlvmを指定している場合
'cinder-volumes'という名前のLVM領域(VG)が必要です

インストール

packstackを使ってOpenStackをインストールします

packstack --answer-file=juno

しばし待つ

エラーも出ずに終われば完了

**** Installation completed successfully ******

注意1:ntpがインストールされているとエラーになるので、入れている人は抜きましょう
注意2:mondogbあたりのエラーが取れなかったらceilometerのインストールをオフにすると解決(昨日減るけど)

そして、問題のNetworkManager

 * Warning: NetworkManager is active on 192.168.111.192. OpenStack networking currently does not work on systems that have the Network Manager service enabled.

ご丁寧にも警告出してくれちゃっいます。

今回はこの警告は放置したまま、NetworkManager全開で参ります

インストール後の設定

ネットワークブリッジの設定をします

neutronの外部ネットとの接続IF:br-exを物理デバイスにマッピングします

TYPE=Ethernet
NAME=enp3s5 #適当
ONBOOT=yes
NM_CONTROLLED=yes
TYPE=OVSPort
OVS_BRIDGE=br-ex

仮想ブリッジbr-exは以下のような設定

DEVICE=br-ex
STP=no
NAME=br-ex
BOOTPROTO=none
IPADDR0=xxx.xxx.xxx.xxx
PREFIX0=24
NM_CONTROLLED=yes
IPV6INIT=no
ONBOOT=yes
DEVICETYPE=ovs
TYPE=OVSBridge

次に、openvswitchの起動が、NetworkManagerの後になるように、openvswitchのsystemdファイルを修正します

/usr/lib/systemd/system/openvswitch.service
[Unit]
Description=Open vSwitch
After=syslog.target network.target openvswitch-nonetwork.service NetworkManager.service
Requires=openvswitch-nonetwork.service

[Service]
Type=oneshot
ExecStart=/bin/true
ExecStop=/bin/true
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Afterの指定の最後に[NetworkManager.service]を追記します

再起動します

再起動後、ネットワークの状態を確認します

#ovs-vsctr show

Bridge br-ex
    Port br-ex
        Interface br-ex
            type: internal

br-exブリッジに、物理デバイスが追加されていなければ、物理デバイスを追加します

ovs-vsctr add-port br-ex <物理デバイス名>

再度、確認します

#ovs-vsctr show

Bridge br-ex
    Port br-ex
        Interface br-ex
            type: internal
    Port "<物理名>"
        Interface "物理名"

次に、neutron側で外部ネットワークを定義します

作り方は割愛します。
定義上はこのような形になります

[root@mx130 ~(keystone_admin)]# neutron net-show 36a2cb93-2178-4b2d-9fb0-4460fc212135
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | True                                 |
| id                        | 36a2cb93-2178-4b2d-9fb0-4460fc212135 |
| name                      | external                             |
| provider:network_type     | flat                                 |
| provider:physical_network | br-ex                                |
| provider:segmentation_id  |                                      |
| router:external           | True                                 |
| shared                    | False                                |
| status                    | ACTIVE                               |
| subnets                   | b3221700-f5d9-4069-9fd8-c5d1774c6bf7 |
| tenant_id                 | 7b2c0e9435804cf896cde2ae5dacc59e     |
+---------------------------+--------------------------------------+

次にテナントネットワーク、およびルータを作成します。
こちらは特別変わったことはないので、従来通りに作れば問題ありません。

あとは、VM作ってFIP付けてログインできれば問題なし

systemdになって、起動順序によってopenvswitchがそのままだとうまく動作しない問題が解決できれば、
あとは従来通り特に問題はないですね

Enjoy your openstack life!