本記事は、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ファイルを修正します
[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!