寝台急行はまなす

札幌駅 22:00発 増結12両編成 青森行き

OpenStack liberty をKVMにInstallしてみた

OpenStack liberty がリリースされましたね。*1

 

折しも今週はOpenStack Summitが東京で開かれていました。

かいしゃぐらし!のためSummitに行けませんでしたが、参加した気分を味わうためにlibertyをインストールしてみました。

ざっくりですが、そのときのおもいでをまとめてみました。

 

 

 

・用意したもの

     ホストOS    CentOS7.1 メモリ16GB*2

     ゲストOS × 2 ( Disk50GB メモリ4GB )

     KVM

     ゲストOS用のisoファイル (CentOS-7.0-1406-x86_64-DVD.iso)

    

 

第1話 はじまり

今回はCentOS7.1のKVM上ににゲストOSを2つ作り、Controllerノード、Computeノードとしてインストールしました。

予めゲストOSをインストールする前ににホストOS側でKVMの有効化、KVMのネストを有効にします。

virt-managerCentOS-7.0-1406-x86_64-DVD.iso のファイルからゲストOSをインストールします。インストールが完了後、yum update を行いパッケージのupdateを実行します。update完了後、ゲストOSをいったん終了し virt-manager で複製します。

   

第2話 せってい

ゲストOS には、Public用とPrivate用の2つのNICを割り当てます。

Public用にはKVMを入れた時に作成される、NAT接続の default を使用します。

Private用には、以下のパラメータでNWを作成しました。

 

[root@xxxx ~]# cat network01.xml
<network>
  <name>network01</name>
  <bridge name='virbr1'/>
  <ip address='192.168.10.1' netmask='255.255.255.0'>
  </ip>
</network>

 

virsh net-define → virsh net-start で作成した仮想NWを起動します。

仮想NWを起動したら、virt-managerでゲストOSにNICを追加します。

NICを追加したら、ゲストOSを起動して固定IPを設定します。

 

今回は以下のようにIPを設定しました。

・Controller

    eth0  192.168.122.20   (Public)

    eth1  192.168.10.20     (Private)

・Compute

    eth0   192.168.122.21  (Public)

    eth1   192.168.10.21    (Private)

※実際はNIC名がensになりましたが、わかりやすいようにethで記載しています。

 

PackStackを入れる前に以下の設定をしておきます。

・ホスト名の変更

    Controller→Controller 、Compute→Compute とホスト名を変えておきます。

・/etc/hostsファイル

    /etc/hostsファイルにホスト名とIPアドレスを書き込みます。

 [root@Controller ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.122.20 Controller Controller.localdomain
192.168.122.21 Compute compute.localdomain

 

・firewallとNetworkManagerを停止します。   

 [root@Controller ~]# systemctl stop NetworkManager
[root@Controller ~]# systemctl disable NetworkManager
rm '/etc/systemd/system/multi-user.target.wants/NetworkManager.service'
rm '/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service'
rm '/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service'
[root@Controller ~]# systemctl stop firewalld
[root@Controller ~]# systemctl enable firewalld
[root@Controller ~]#

 

・libertyのレポジトリを設定します。

    /etc/yum.repos.d/CentOS-Base.repoファイルの末尾に以下を追記して、yum clean

    all →yum repolist でパッケージが表示されればOKです。

 [Liberty]
priority=1
name=OpenStack Liberty
baseurl=http://buildlogs.centos.org/centos/7/cloud/openstack-liberty/
enabled=1
gpgcheck=0

 

ここまでで準備は整いました。

 

第3話 こうちく

・packstackをインストールします。

 [root@Controller ~]# yum install -y openstack-packstack
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ openstack-packstack.noarch 0:2015.2-0.1.dev1654.gcbbf46e.el7 を インストール

省略

依存性を更新しました:
  python-six.noarch 0:1.9.0-1.el7                                               

完了しました!
[root@Controller ~]# 

 

answerファイルを作成します。

[root@Controller ~]# packstack --gen-answer-file=answer.txt

 

answerファイルをviで開き編集します。

CONFIG_COMPUTE_HOSTS=192.168.122.21   ←  ComputeのIPに変えます
CONFIG_KEYSTONE_ADMIN_PW=password    ←  passwordに変えます
CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1    ←  private用のNICを指定します
CONFIG_PROVISION_DEMO=n                            ←  DEMOは作成しないためnにします

 

・PackStackを実行しOpenStackをインストールします。

[root@Controller ~]# packstack --answer-file=answer1.txt
Welcome to the Packstack setup utility

省略    

Finalizing                                           [ DONE ]

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

インストール成功できました。

 

PublicとPrivateで通信ができるように、ブリッジを作成します。

・Public用(br-ex)のブリッジを作成します。

    ifcfg-eth0ファイルを書き換えて、ifcfg-br-exファイルを新規作成して設定を書き込みます。

 [root@Controller network-scripts]# cat ifcfg-eth0
HWADDR=52:54:00:C4:5B:54
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
NM_CONTROLLED=no
BOOTPROTO=none
ONBOOT=yes
DEVICE=eth0
[root@Controller network-scripts]# cat ifcfg-br-ex
DEVICE=br-ex
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=none
IPADDR=192.168.122.20
PREFIX=24
GATEWAY=192.168.122.1
ONBOOT=yes

 

・Private用(br-int)のブリッジを作成します。

    ifcfg-eth1ファイルを書き換えて、ifcfg-br-intファイルを新規作成して設定を書き込みます。

 [root@Controller network-scripts]# cat ifcfg-ens9
HWADDR=52:54:00:b1:16:a0
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-int
NM_CONTROLLED=no
BOOTPROTO=none
ONBOOT=yes
DEVICE=ens9
[root@Controller network-scripts]# cat ifcfg-br-int
DEVICE=br-int
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=none
IPADDR=192.168.10.20
PREFIX=24
GATEWAY=192.168.10.1
ONBOOT=yes

 

ブリッジの設定を編集が完了したら、NWを再起動します。

Computeノードではbr-intのブリッジの設定をします。(※br-exは不要です)

 

第4話 かくにん

インスタンスを起動して、ssh接続をするためにdashboardから設定を行います。

dashboardにアクセスしてanswerファイルで設定したパスワードでログインします。

f:id:ken5owata:20151031104743p:plain

 

 

    ネットワークを選択して、Public用とPrivate用のNWをVXLANで作成します。

f:id:ken5owata:20151031105136p:plain

 

作成したNWにはそれぞれサブネットを作成し、範囲内で使用するIPアドレスを確保します。

・Public  → 192.168.122.0/24

・Private → 192.168.10.0/24

f:id:ken5owata:20151031115542p:plain f:id:ken5owata:20151031115606p:plain

 

PublicとPrivateのNWを作成後、仮想ルータを作成しPublicとPrivateを接続します。

libertyでNWトポロジーGUIが変わったようですね。。。

f:id:ken5owata:20151031115943p:plain

 

セキュリティグループの設定でICMPとSSH接続を許可し、キーペアの作成とFloating IPの確保を行います。

CirrOSをglanceに登録したら、インスタンスを起動します。

 

f:id:ken5owata:20151031120849p:plain f:id:ken5owata:20151031120907p:plain

 

インスタンスが起動しました。

それでは ip netns コマンドでインスタンスのIPにPING飛ぶかなーと確認した結果

 → 飛びませんでした。。。

 

 Oct 22 00:36:49 Controller dnsmasq-dhcp[4344]: DHCPOFFER(tapd1f23b51-89) 192.168.10.52 fa:16:3e:d2:87:d0
Oct 22 00:36:49 Controller dnsmasq-dhcp[4344]: DHCPDISCOVER(tapd1f23b51-89) fa:16:3e:d2:87:d0
Oct 22 00:36:49 Controller dnsmasq-dhcp[4344]: DHCPOFFER(tapd1f23b51-89) 192.168.10.52 fa:16:3e:d2:87:d0
Oct 22 00:36:49 Controller dnsmasq-dhcp[4344]: DHCPDISCOVER(tapd1f23b51-89) fa:16:3e:d2:87:d0
Oct 22 00:36:49 Controller dnsmasq-dhcp[4344]: DHCPOFFER(tapd1f23b51-89) 192.168.10.52 fa:16:3e:d2:87:d0
Oct 22 00:36:49 Controller dnsmasq-dhcp[4344]: DHCPDISCOVER(tapd1f23b51-89) fa:16:3e:d2:87:d0

 

Oh....

/var/log/messages 見るとインスタンスDHCPでPrivateのIPが設定されていない模様。。。

ねえどうしてー教えてよーめぐねえー(なにもない空間に向かって)

 

 

 

 

 

*1:ところでkiloとなにが違うんですかね→リリースノートを読めや

*2:ふつーのノートPCなので、ゲストOSを起動すると軽トラで高速を爆走する感ある→自宅サーバ、そういうのもあるのか。