LoginSignup
17
21

More than 5 years have passed since last update.

OpenStack Newton環境の構築(Packstack使用)

Last updated at Posted at 2017-01-09

はじめに

PackstackによるOpenStackのお手軽インストールを試したらいろいろハマりました。ようやく成功率の高い手順を編み出せたので、ハマった部分も補足しつつメモとしてまとめます。

2017.1.11 説明を少々追加

目指すOpenStack構成

  • VirtualBoxで作成したCentOS7.2のVMにOpenStackを構築
  • OpenStackはPackstackでAllInOneインストール
  • VirtualBoxのVMは自宅LANにブリッジ接続
  • 自宅LAN=OpenStackのPublicネットワーク(OpenStack上で作成するインスタンスにFloating IPを設定すれば、PublicネットワークからSSH接続可能)

構成.png

使用したPC

  • 本体:Mac Mini(2014年モデル)
  • CPU:2.8GHz Intel Core i5
  • メモリ:16GB
  • OS:macOS Sierra 10.12.2
  • VirtualBox:バージョン5.1.12

構築メモ

1. VirtualBoxでVM作成

以下のVMを作成し起動させる。

  • 名前:PackStack_Newton
  • メモリ:8192MB
  • 仮想ハードディスク:100GB(可変サイズ)
  • CPU数:2CPU
  • CDROM:CentOS-7-x86_64-DVD-1511.iso
  • ネットワーク:ブリッジアダプターを選択、プロミスキャスモードは「すべて許可」を選択すること VirtualBox.png

2. CentOS7.2のインストール

インストーラ上で以下のようにしてインストールを行う。開発ツール等を入れてしまうとPackstackの構築が失敗する可能性大のため最小限のインストールを行う。

  • SECURITY POLICY:Apply security policyをオフ
  • ソフトウェアの選択は「最小限のインストール」(何もチェックを付けない)
  • ネットワークとホスト名
    • イーサネット(enp0s3)をオンにする
    • ホスト名:packstack
    • 設定をクリック
      • 全般の「この接続が利用可能になったときは自動的に接続する」にチェック
      • IPv4のセッティングでは下図の手動設定を行う CentOS_2.png

インストール中にROOTパスワードとユーザー作成(管理者設定)も行う。

3. Packstackインストール

以降はVirtualBoxのVMにSSHログインし、rootアカウントで実施する。

3.1 事前準備

3.1.1 NTP設定

# yum -y install ntp
# systemctl start ntpd
# systemctl enable ntpd

3.1.2 ファイアウォールやNetworkManagerの無効化

# systemctl disable firewalld
# systemctl stop firewalld
# systemctl disable NetworkManager
# systemctl stop NetworkManager
# systemctl enable network
# systemctl start network
# setenforce 0

3.1.3 英語ロケール設定

# echo "LANG=en_US.utf-8" > /etc/environment
# echo "LC_ALL=en_US.utf-8" >> /etc/environment

リブートで反映させる。

# reboot

3.2 Packstackインストール

# yum install -y centos-release-openstack-newton
# yum update -y
# yum install -y openstack-packstack

Packstackのコンフィグとなるanswerファイルを事前作成する。
自宅LANがPublicネットワークとなるよう、--os-neutron-ovs-bridge-interfacesオにVMのインターフェース名(ここではenp0s3)を指定しておく。
その他にもさまざまな設定が可能だが、--provision-demo-floatrangeでPublicネットワークのアドレスを指定するとPackstackのインストールが途中で失敗するため指定しないこと。

# packstack --gen-answer-file=/root/answer.txt \
 --default-password=password \
 --os-heat-install=y \
 --ntp-servers=ntp.nict.jp \
 --os-neutron-ovs-bridge-mappings=external:br-ex \
 --os-neutron-ovs-bridge-interfaces=br-ex:enp0s3

answerファイルを指定してPackstackのインストールを開始する(完了するまで1時間以上かかる)。

# packstack --answer-file=/root/answer.txt

以下が出力されればインストール成功。

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

Additional information:
 * File /root/keystonerc_admin has been created on OpenStack client host 192.168.0.159. To use the command line tools you need to source the file.
 * To access the OpenStack Dashboard browse to http://192.168.0.159/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
 * To use Nagios, browse to http://192.168.0.159/nagios username: nagiosadmin, password: password
 * Because of the kernel update the host 192.168.0.159 requires reboot.
 * The installation log file is available at: /var/tmp/packstack/20170109-183736-RgumXF/openstack-setup.log
 * The generated manifests are available at: /var/tmp/packstack/20170109-183736-RgumXF/manifests

4. OpenStackネットワークの再構築

4.1 既存設定を削除

ネットワークを作り直すため、adminアカウントでデフォルトのネットワーク設定を削除する。

# source /root/keystonerc_admin
# neutron router-gateway-clear router1
# neutron router-interface-delete router1 private_subnet
# openstack router delete router1
# openstack network delete private
# openstack network delete public

4.2 Publicネットワークの再作成

adminアカウントでPublicネットワークとサブネットを再作成する。

# openstack network create public --external
# openstack subnet create public_subnet \
 --subnet-range 192.168.0.0/24 \
 --allocation-pool start=192.168.0.162,end=192.168.0.180 \
 --gateway 192.168.0.1 \
 --no-dhcp \
 --network public

4.3 Privateネットワークの再作成

demoアカウントでPrivateネットワークとサブネットを再作成する。

# source /root/keystonerc_demo
# openstack network create private
# openstack subnet create private_subnet \
 --subnet-range 10.0.0.0/24 \
 --allocation-pool start=10.0.0.2,end=10.0.0.254 \
 --gateway 10.0.0.1 \
 --network private

4.4 ルーターの再作成

demoアカウントでルーターを再作成し、ゲートウェイとPrivateネットワークのサブネットをルーターに関連付ける。

# openstack router create router1
# neutron router-gateway-set router1 public
# neutron router-interface-add router1 private_subnet

5. インスタンスを生成して疎通確認

5.1 セキュリティグループの編集

インスタンスへのpingとsshが通るよう、セキュリティグループに許可ルールを追加する。

  • ダッシュボードにdemoアカウント(パスワードはpassword)でログイン
  • プロジェクト→コンピュート→アクセスとセキュリティーを選択
  • セキュリティグループタブを選択→defaultのルールの管理
  • ルールの追加より以下4つのルールを追加
    • ルール=ALL ICMP、方向=受信
    • ルール=ALL ICMP、方向=送信
    • ルール=ALL TCP、方向=受信
    • ルール=ALL TCP、方向=送信

ルール追加後、セキュリティグループは以下となる。
dashboard_1.png

5.2 インスタンスの生成

  • ダッシュボードにdemoアカウント(パスワードはpassword)でログイン
  • プロジェクト→コンピュート→インスタンスを選択
  • インスタンスの起動をクリックし、以下を設定してインスタンスの起動ボタンをクリック
    • 詳細タブ:インスタンス名にServer1
    • ソースタブ:ブートソースからイメージを選び、cirrosを選択
    • フレーバータブ:m1.tinyを選択
    • ネットワークタブ:privateが選択されていることを確認

以下のようにインスタンスが生成、起動される。
dashboard_2.png

インスタンスのステータスが稼働中になったら、Floating IPの割り当てを行う。
dashboard_3.png

5.3 ping疎通確認

FloatingIPに対してpingを実施し、レスポンスが正常に返ってくることを確認する。

# ping 192.168.0.169
PING 192.168.0.169 (192.168.0.169) 56(84) bytes of data.
64 bytes from 192.168.0.169: icmp_seq=1 ttl=63 time=2.83 ms
64 bytes from 192.168.0.169: icmp_seq=2 ttl=63 time=1.89 ms
64 bytes from 192.168.0.169: icmp_seq=3 ttl=63 time=0.717 ms
17
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
21