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のインストールが完了しました。