OpenStackの自動構築

2016年7月13日(水)
古賀 政純
第3回は、Packstackを使い、CentOS 7.2の環境にOpenStackを自動インストールする手順を説明します。

アンサーファイルを記述したら、packstackにロードし、OpenStackの構築を開始します。構築にはしばらく時間がかかります。

# cd
# pwd
/root
# packstack --answer-file=param.txt
...
...
Finalizing                                           [ DONE ]

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

構築が正常に完了すると、上記のように「 **** Installation completed successfully ******」と表示されます。

OpenStack環境構築後のNICの設定

OpenStackではソフトウェア定義ネットワークを実現するOpen vSwitchを使った仮想ネットワークを構成する必要があります。まずは、ifcfg-eth0を編集します。

# cd /etc/sysconfig/network-scripts/
# cp ifcfg-eth0 org.ifcfg-eth0
# vi ifcfg-eth0
NAME="eth0"
HWADDR=52:54:00:02:b7:0A
ONBOOT=yes
TYPE=OVSPort
DEVICETYPE=ovs
NM_CONTROLLED=no
OVS_BRIDGE=br-ex

次に、ifcfg-br-exを編集します。

# pwd
/etc/sysconfig/network-scripts

# vi ifcfg-br-ex
DEVICE=br-ex
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=172.16.1.121
NETMASK=255.255.0.0
GATEWAY=172.16.1.1
ONBOOT=yes

OSを再起後、br-exがeth0に紐づきますが、設定ミスをした場合にも、再び設定できるようにするため、別途用意した管理用のネットワーク、あるいは、ローカルマシンで直接操作を行うか、遠隔管理チップの仮想端末経由などで作業するようにしてください。

OSを再起動します。

# reboot

OSを再起動後、br-exという名前の仮想ブリッジの状態を確認します。Open vSwitchが提供する仮想ブリッジの状態を確認するには、ovs-vsctlコマンドにshowを付与します。

# ovs-vsctl show
10cace85-6d67-45f3-a7c1-b503e62f635d
    Bridge br-ex
        Port phy-br-ex
            Interface phy-br-ex
                type: patch
                options: {peer=int-br-ex}
        Port br-ex
            Interface br-ex
                type: internal
        Port "eth0"
            Interface "eth0"
    Bridge br-int
        fail_mode: secure
        Port br-int
            Interface br-int
                type: internal
        Port patch-tun
            Interface patch-tun
                type: patch
                options: {peer=patch-int}
        Port int-br-ex
            Interface int-br-ex
                type: patch
                options: {peer=phy-br-ex}
    Bridge br-tun
        fail_mode: secure
        Port br-tun
            Interface br-tun
                type: internal
        Port patch-int
            Interface patch-int
                type: patch
                options: {peer=patch-tun}
    ovs_version: "2.5.0"
 

上記のように、仮想ブリッジbr-exにおいて、eth0のポートとbr-exのポートが両方表示されているかどうかを確認してください。ipコマンドで、IPアドレスの付与状況の確認と、仮想ブリッジのbr-ex経由で外部のネットワークと通信が可能かどうかも確認してください。

サービス起動時のタイムアウト時間の設定

OpenStackの幾つかのサービスにおいては、起動に時間がかかるものがあるため、systemdのタイムアウト時間を長く設定しておくとよいでしょう。CentOS 7.xの場合、サービスのタイムアウト時間は、systemdで制御される各種サービスの設定ファイルに、タイムアウト時間に関するパラメーターを記述します。CentOS 7.xのsystemdでは、/etc/systemd/systemディレクトリ配下にコピーした設定ファイルが優先してロードされるため、OS標準の/usr/lib/systemd/systemディレクトリ配下の設定ファイルはそのままにしておき、/etc/systemd/systemディレクトリに配置したファイルをカスタマイズするのが慣例です。まずは、OpenStackのコンポーネント同士が通信に利用するRabbitMQのサービスの起動、停止に関するタイムアウト値を設定します。インストールされたRabbitMQに関する設定ファイルを/etc/systemd/systemにコピーします。

# cp /usr/lib/systemd/system/rabbitmq-server.service /etc/systemd/system/

設定ファイル「rabbitmq-server.service」を開き、「[Service]」タグの直下にタイムアウト時間に関するパラメーター「TimeoutStartSec=900」と「TimeoutStopSec=900」を追記します。

# vi /etc/systemd/system/rabbitmq-server.service
...
[Service]
TimeoutStartSec=900
TimeoutStopSec=900
...

同様に、httpdサービス、neutron-serverサービスの設定ファイルにもタイムアウト値のパラメーターを追記します。

# cp /usr/lib/systemd/system/httpd.service /etc/systemd/system/
# vi /etc/systemd/system/httpd.service
...
[Service]
TimeoutStartSec=900
TimeoutStopSec=900
...

# cp /usr/lib/systemd/system/neutron-server.service /etc/systemd/system
# vi /etc/systemd/system/neutron-server.service
...
[Service]
TimeoutStartSec=900
TimeoutStopSec=900
...

/etc/systemd/systemディレクトリに設定ファイルを追加、編集しましたので、システムに通知します。

# systemctl daemon-reload

OSを再起動する前に、RabbitMQが起動できるかを確認しておきます。

# systemctl restart rabbitmq-server
# systemctl status rabbitmq-server |grep running
   Active: active (running) since Fri 2016-04-29 14:38:30 JST; 10s ago

RabbitMQのサービスがOS起動時に自動的に起動する設定になっているかを確認します。

# systemctl is-enabled rabbitmq-server
enabled

httpd、neutron-serverについても同様に正常にサービスが起動できるかどうかを確認します。

# systemctl restart httpd
# systemctl status httpd |grep running
   Active: active (running) since Fri 2016-04-29 14:41:43 JST; 12s ago
# systemctl is-enabled httpd
enabled

# systemctl restart neutron-server
# systemctl status neutron-server |grep running
   Active: active (running) since Fri 2016-04-29 14:43:17 JST; 23s ago
# systemctl is-enabled neutron-server
enabled

サービスが正常に稼働できていることが確認できたら、OSを再起動します。

# reboot

サービスの起動確認

OS再起動後、しばらく時間が経過してから、各種サービスが自動的に起動しているかを確認します。

# systemctl status rabbitmq-server |grep running
   Active: active (running) since Fri 2016-04-29 05:57:51 JST; 9h ago
# systemctl status httpd |grep running
   Active: active (running) since Fri 2016-04-29 14:52:49 JST; 5min ago
# systemctl status neutron-server |grep running
   Active: active (running) since Fri 2016-04-29 05:59:02 JST; 8h ago

[補足]

OpenStack Mitakaにおいて、Keystoneによる認証は、httpdサービスが行います。したがって、openstack-keystoneサービスを稼働させる必要がありません。以下のコマンドにより、openstack-keystoneサービスが自動的に起動しない設定になっているかどうか、さらに、サービスも稼働していないかどうかを確認してください。

# systemctl is-enabled openstack-keystone
disabled
# systemctl status openstack-keystone

なんらかの理由でサービスが起動している場合は、停止させてください。

# systemctl stop openstack-keystone
# systemctl disable openstack-keystone
# reboot

以上で、Packstackを使ったOpenStack Mitakaのインストールが完了しました。

日本ヒューレット・パッカード株式会社 プリセールス統括本部 ソリューションセンター OSS・Linux担当 シニアITスペシャリスト

兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師を担当。科学技術計算サーバーのSI経験も持つ。2005年、大手製造業向けLinuxサーバー提案で日本HP社長賞受賞。2006年、米国HPからLinux技術の伝道師に与えられる「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。日本HPプリセールスMVPを4度受賞。現在は、Linux、FreeBSD、Hadoop等のOSSを駆使したスケールアウト型サーバー基盤のプリセールスSE、技術検証、技術文書執筆を担当。日本HPのオープンソース・Linuxテクノロジーエバンジェリストとして講演活動も行っている。Red Hat Certified Engineer、Red Hat Certified Virtualization Administrator、Novell Certified Linux Professional、EXIN Cloud Computing Foundation Certificate、HP Accredited Systems Engineer Cloud Architect、Red Hat Certified System Administrator in Red Hat OpenStack、Cloudera Certified Administrator for Apache Hadoop認定技術者。HP公式ブログ執筆者。趣味はレーシングカートとビリヤード

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています