RDOがkiloに対応していたので自宅のOpenstackも更新しました。
answer-fileとか管理するのが面倒なので、記事にしてまとめておきます。
アップグレードしたかったが…
Junoが既に動作しているのでアップグレードを最初考えていましたが
結論から言うとうまくいきませんでした。
最初は、yum update
とかで手軽に出来るんじゃないかなぁと楽観視していたのですが、
yum
でインストール自体はできるのですが、ceilometerやhorizonに問題が発生してしまって上手く
解決できそうに無かったので、クリーンインストールしました。
インストール
基本的にRDOのドキュメント通りに進めればうまくいきます。
NetworkManageの停止
ネットワークがNetworkManager管理下になっていると問題が起きるので
networkに変更します。
systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl enable network
RDOのインストール
sudo yum update
sudo yum install -y https://rdoproject.org/repos/rdo-release.rpm
Fedora21はtestingに対応しているらしく追加の作業をRDOのドキュメントでは書いてありますが
自分はCentOS7なので特に対応していません。
answer-fileの生成
packstack --gen-answer-file=GEN_ANSWER_FILE
として、answer-fileを生成します。
そして、以下の様な内容に自分は修正しました。
要点をまとめると
- heat、ceilometerをcloudformation互換で使う
- troveも使う
- LBaaS、FWaaSも利用する
packstackを実行
packstack --answer-file=GEN_ANSWER_FILE
として実行すれば、20分程度でkiloのインストールは完了しました。
ネットワークの設定
上記のインストールでは起動したインスタンスは外部に接続できません。
なので、ネットワーク構成を変更します。
このあたりはRDOのネットワーク設定のドキュメントが参考になると思います。
自分はopenvswitchを使うので、ブリッジとIPの設定を適宜追加しています。
# /etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=192.168.1.30
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS=8.8.8.8
ONBOOT=yes
# /etc/sysconfig/network-scripts/ifcfg-eno1
DEVICE=eno1
HWADDR="XXXXXXXXXXXXXXXXXXXXX"
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
ONBOOT=yes
こんな感じです。
また、neutronに上記のnicを外部ネットワークとして使ってもらうため/etc/neutron/plugin.ini
に以下を追記します。
network_vlan_ranges = physnet1
bridge_mappings = physnet1:br-ex
外部ネットワークとfloating-ipについて
Openstackでは、内部のインスタンスにアクセスするためにfloating-ipという仕組みを利用します。
AWSでいうところのEIPとにているものです。
起動したインスタンスには内部のネットワークIP(192.168.100.1)などを振って起動します。
ここにアクセスするためのIPとして、グローバルなIPが余っているならそれを動的に割り当てることが可能です。
ですが、自宅にそんなにグローバルなIPが有るわけないので、自宅のプライベートなIPアドレス空間(192.168.1.0/24)を割当ます。
自宅のDHCPでは192.168.1.0 – 192.168.1.50 までのIPしか配布させるようにして、残っている部分をopenstack用に使うことにします。
これを踏まえて、外部につなげるためのネットワーク public
を作成します。
neutron net-create public --tenant-id=admin
--shared --router:external
neutron subnet-create
--name public_subnet
--enable_dhcp=False
--allocation-pool=start=192.168.1.51,end=192.168.1.250
--dns-nameserver 8.8.8.8 --dns-nameserver 8.8.4.4
--gateway=192.168.1.1 public 192.168.1.0/24
これで作成できます。
イメージの追加
openstackはインストールするだけではイメージが追加されておらず何も起動できないので
RDOのドキュメント、Openstackのドキュメント
などを参考に追加しておきます。
完了
以上で、一通りkiloのインストール作業は完了です。
ちなみに、kiloにして何かうれしい変化があったかというと無かったという悲しい話もあったり…。