読者です 読者をやめる 読者になる 読者になる

hirosanote’s blog

検証環境の構築手順やネットワーク機器のテスト結果、関連する事について記載します。このブログは個人で行っており、所属する会社とは関係ありません。

VMware PlayerでOpenstackを動かす手順

Openstackって何?どのように使える?インターネットで検索するといろいろ情報が出てきますが、実際に動かして使ってみると、より理解が深まります。

OpenStackのインストールは難しく、なかなかうまくいきませんでした。ネットの情報を駆使してVMware Playerで動かすことが出来ましたので、LBaaSの設定も含めて記述します。 

 この手順は、Icehouseをインストールします。Kiloのインストール手順も作成しまししたので、ご参照下さい。 

hirosanote.hatenablog.jp

 

環境

富士通 Windows8.1 64bit Note PC / 10GBメモリ、1TBハードディスク

使用したインストーラ

VMware-player-7.1.0-2496824.exe

CentOS-6.5-x86_64-minimal.iso

 

1. VMware Playerのインストール

デフォルト値のままで、インストールします。

 

2. 仮想マシンの作成

f:id:hirosanote:20150517161916j:plain

f:id:hirosanote:20150517162059j:plain

f:id:hirosanote:20150517162306j:plain

 

f:id:hirosanote:20150517162855j:plain

f:id:hirosanote:20150517163147j:plain

f:id:hirosanote:20150517163250j:plain

f:id:hirosanote:20150517163415j:plain

f:id:hirosanote:20150517163623j:plain

f:id:hirosanote:20150517163953j:plain

f:id:hirosanote:20150517164246j:plain

f:id:hirosanote:20150517164441j:plain

f:id:hirosanote:20150517164623j:plain

f:id:hirosanote:20150517164803j:plain

 

3. CentOSのインストール

 

f:id:hirosanote:20150517170134j:plain

f:id:hirosanote:20150517170250j:plain

f:id:hirosanote:20150517170418j:plain

f:id:hirosanote:20150517170718j:plain

f:id:hirosanote:20150517170906j:plain

f:id:hirosanote:20150517171007j:plain

f:id:hirosanote:20150517171124j:plain

f:id:hirosanote:20150517171224j:plain

f:id:hirosanote:20150517171336j:plain

f:id:hirosanote:20150517204708j:plain

f:id:hirosanote:20150517204851j:plain

f:id:hirosanote:20150517205003j:plain

f:id:hirosanote:20150517205056j:plain

f:id:hirosanote:20150517205229j:plain

f:id:hirosanote:20150517205341j:plain

f:id:hirosanote:20150517205436j:plain

f:id:hirosanote:20150517205529j:plain

f:id:hirosanote:20150517205706j:plain

f:id:hirosanote:20150517210005j:plain

f:id:hirosanote:20150517205529j:plain

f:id:hirosanote:20150517210543j:plain

f:id:hirosanote:20150517210657j:plain

f:id:hirosanote:20150517205529j:plain

f:id:hirosanote:20150517210841j:plain

f:id:hirosanote:20150517210932j:plain

f:id:hirosanote:20150517211029j:plain

f:id:hirosanote:20150517211125j:plain

f:id:hirosanote:20150517211239j:plain

f:id:hirosanote:20150517211552j:plain

 

3. OpenStackのインストール

インストール手順は、以下のスライドを参考にしました。作業はrootユーザで行っています。

http://www.slideshare.net/VirtualTech-JP/rdo-quick-start1

 

インターフェースIPをDHCPから固定に変更します。

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.140
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8
HWADDR=00:0C:29:12:C7:F8 <== 自分のMACアドレス

 

service network restart

 

インターネットに通信できることを確認します

ping www.yahoo.co.jp
PING www.g.yahoo.co.jp (183.79.197.250) 56(84) bytes of data.
64 bytes from 183.79.197.250: icmp_seq=1 ttl=51 time=23.6 ms
64 bytes from 183.79.197.250: icmp_seq=2 ttl=51 time=19.0 ms

 

カーネルパラメータを変更します。

vi /etc/sysctl.conf

net.ipv4.ip_forward = 1 < = 変更

net.ipv4.conf.default.rp_filter = 0 < = 変更

net.bridge.bridge-nf-call-ip6tables = 0 < = 0でない場合に変更

net.bridge.bridge-nf-call-iptables = 0 < === 0でない場合に変更

net.bridge.bridge-nf-call-arptables = 0 < === 0でない場合に変更

net.ipv4.conf.all.rp_filter = 0 < === 追加

net.ipv4.conf.all.forwarding = 1 < === 追加

 

パラメーターをロードします

sysctl -e -p /etc/sysctl.conf

 

rc.localファイルに、設定を追加します。

vi /etc/rc.local

echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables < = 追加
echo 0 > /proc/sys/net/bridge/bridge-nf-call-ip6tables < = 追加
echo 0 > /proc/sys/net/bridge/bridge-nf-call-arptables < = 追加

 

 NTPサービスをインストールします。

yum install -y ntp

service ntpd start

 

Icehouseのリポジトリを追加します。

yum install http://rdo.fedorapeople.org/openstack-icehouse/rdo-release-icehouse.rpm

 

SELINUXを無効化にします。

vi /etc/selinux/config

SELINUX=permissive <= 変更

 

アップデートを行い、リブートします。

yum -y update

reboot

 

Packstackをインストールします。

yum install -y openstack-packstack python-netaddr

 

アンサーファイルを作成します。

packstack --gen-answer-file=answer.txt

 

アンサーファイルの以下の箇所を変更します。

vi answer.txt

CONFIG_LBAAS_INSTALL=y <= 変更

 

CONFIG_NOVA_COMPUTE_PRIVIF=lo <= 変更

CONFIG_NOVA_NETWORK_PUBIF=eth0

CONFIG_NOVA_NETWORK_PRIVIF=lo <= 変更

 

CONFIG_KEYSTONE_ADMIN_PW=admin <= 変更

CONFIG_KEYSTONE_TOKEN_FORMAT=UUID <= 変更

 

CONFIG_PROVISION_DEMO=n <= 変更

 

アンサーファイルを使用してOpenStackをインストールします。

packstack --answer-file=answer.txt

インストールが完了したことを確認します

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

 

ブリッジをeth0に割り当てます。

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

HWADDR=52:54:00:92:05:AE <= 自分のMACアドレス

TYPE=OVSPort

DEVICETYPE=ovs

OVS_BRIDGE=br-ex

 

vi /etc/sysconfig/network-scripts/ifcfg-br-ex

DEVICE=br-ex

ONBOOT=yes

DEVICETYPE=ovs

TYPE=OVSBridge

BOOTPROTO=static

IPADDR=192.168.0.140

NETMASK=255.255.255.0

GATEWAY=192.168.0.1

DNS1=8.8.8.8

 

 plugin.iniの最後の行に設定を追加します。

vi /etc/neutron/plugin.ini

[ovs]

network_vlan_ranges = physnet1

bridge_mappings = physnet1:br-ex

 

リブートします

reboot

 

4. オープンスタックのネットワーク、サーバイメージの作成

認証情報を、ロードします。

cd ~

source keystonerc_admin

 

ルーターを作成します

neutron router-create router1
Created a new router:
+-----------------------+--------------------------------------+
| Field | Value |
+-----------------------+--------------------------------------+
| admin_state_up | True |
| external_gateway_info | |
| id | 63946bd6-a891-4625-b552-8c2af35501dd |
| name | router1 |
| status | ACTIVE |
| tenant_id | 79f838b144a54c0f89704f03e2b08436 |
+-----------------------+--------------------------------------+

テナントIDをメモしておきます。

 

パブリックネットワークを作成します。テナントIDはルータを作成したときのものと同じIDを使用します。

neutron net-create public --tenant-id 79f838b144a54c0f89704f03e2b08436 --router:external=True

Created a new network:
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| id | 596253c9-5976-4d11-8d06-aba1e858447e |
| name | public |
| provider:network_type | vxlan |
| provider:physical_network | |
| provider:segmentation_id | 10 |
| router:external | True |
| shared | False |
| status | ACTIVE |
| subnets | |
| tenant_id | 79f838b144a54c0f89704f03e2b08436 |
+---------------------------+--------------------------------------+

 

プライベートネットワークを作成します。

neutron net-create private-net --tenant-id 79f838b144a54c0f89704f03e2b08436 --shared

Created a new network:
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| id | 1fac572d-bcdb-472b-96f4-5e928b808093 |
| name | private-net |
| provider:network_type | vxlan |
| provider:physical_network | |
| provider:segmentation_id | 11 |
| shared | True |
| status | ACTIVE |
| subnets | |
| tenant_id | 79f838b144a54c0f89704f03e2b08436 |
+---------------------------+--------------------------------------+

 

パブリックネットワークのサブネットを作成します。

neutron subnet-create --name public_subnet --enable_dhcp=False --allocation-pool=start=192.168.0.241,end=192.168.0.254 --gateway=192.168.0.1 public 192.168.0.0/24

+------------------+----------------------------------------------------+
| Field | Value |
+------------------+----------------------------------------------------+
| allocation_pools | {"start": "192.168.0.241", "end": "192.168.0.254"} |
| cidr | 192.168.0.0/24 |
| dns_nameservers | |
| enable_dhcp | False |
| gateway_ip | 192.168.0.1 |
| host_routes | |
| id | 0f2ef07a-cc2d-4add-bebb-546341a3e6b2 |
| ip_version | 4 |
| name | public_subnet |
| network_id | 596253c9-5976-4d11-8d06-aba1e858447e |
| tenant_id | 79f838b144a54c0f89704f03e2b08436 |
+------------------+----------------------------------------------------+

 

プライベートネットワークのサブネットを作成します。

neutron subnet-create --name private-net_subnet --enable_dhcp=True --allocation-pool=start=192.168.99.100,end=192.168.99.254 --gateway=192.168.99.1 --dns-nameserver 8.8.8.8 private-net 192.168.99.0/24

Created a new subnet:
+------------------+------------------------------------------------------+
| Field | Value |
+------------------+------------------------------------------------------+
| allocation_pools | {"start": "192.168.99.100", "end": "192.168.99.254"} |
| cidr | 192.168.99.0/24 |
| dns_nameservers | 8.8.8.8 |
| enable_dhcp | True |
| gateway_ip | 192.168.99.1 |
| host_routes | |
| id | 4cb8c5c1-6ff5-4e26-86bd-09ff508c7000 |
| ip_version | 4 |
| name | private-net_subnet |
| network_id | 1fac572d-bcdb-472b-96f4-5e928b808093 |
| tenant_id | 79f838b144a54c0f89704f03e2b08436 |
+------------------+------------------------------------------------------+

 

ゲートウェイをセットします。

neutron router-gateway-set router1 public

 

プライベートネットワークに、ルーターのインタフェースを追加します。

neutron router-interface-add router1 subnet=private-net_subnet

 

 

サーバーのイメージを登録します。

glance image-create --name cirros --is-public true --container-format bare --disk-format qcow2 --location https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img

+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | None |
| container_format | bare |
| created_at | 2015-05-24T09:24:35 |
| deleted | False |
| deleted_at | None |
| disk_format | qcow2 |
| id | 50798580-6aee-4bb3-b90b-5edbb1f38a40 |
| is_public | True |
| min_disk | 0 |
| min_ram | 0 |
| name | cirros |
| owner | 79f838b144a54c0f89704f03e2b08436 |
| protected | False |
| size | 9761280 |
| status | active |
| updated_at | 2015-05-24T09:24:39 |
| virtual_size | None |
+------------------+--------------------------------------+

 

5. WebUIよりインスタンスの起動

WebUIにログインします。ユーザー名、パスワード : admin

http://192.168.0.140/dashboard

f:id:hirosanote:20150524194058j:plain

 

セキュリティグループを作成します

f:id:hirosanote:20150524194340j:plain

f:id:hirosanote:20150524194609j:plain

f:id:hirosanote:20150524194718j:plain

f:id:hirosanote:20150524194821j:plain

f:id:hirosanote:20150524195110j:plain

 

同様の手順で、HTTP, ICMPを追加します。

f:id:hirosanote:20150524195736j:plain

f:id:hirosanote:20150524195830j:plain

 

Webサーバ用のインスタンスを起動します

f:id:hirosanote:20150524200408j:plain

f:id:hirosanote:20150524200557j:plain

f:id:hirosanote:20150524201209j:plain

f:id:hirosanote:20150524201457j:plain

 

同様の手順で、web2サーバを起動します。

2つのインスタンスが動作していることを確認します。

f:id:hirosanote:20150524201948j:plain

 

ネットワークトポロジより、ルーターIPアドレスを確認し、webサーバへアクセスするために、OpenStackが動作しているCentOS上にスタティックルートを追加します。

f:id:hirosanote:20150524202312j:plain

route add -net 192.168.99.0/24 gw 192.168.0.241 br-ex

 

web01サーバにアクセスします。ユーザー名 : cirros パスワード : cubswin:)

ssh cirros@192.168.99.100
The authenticity of host '192.168.99.100 (192.168.99.100)' can't be established.
RSA key fingerprint is d2:ac:e8:11:25:32:fe:a5:06:83:29:5c:ff:14:52:60.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.99.100' (RSA) to the list of known hosts.
cirros@192.168.99.100's password:
$

 

httpリクエストに対するレスポンスを戻すようにします。

while true; do echo -e 'HTTP/1.0 200 OK\r\n\r\nweb_server1' | sudo nc -l -p 80 ; done  &

 

同様の手順で、web02サーバへアクセスし、httpレスポンスを作成します。"web_server1"を"web_server2"に変更します。

 

6. LBaaSの設定

WebUI上でロードバランサの設定を行います。

f:id:hirosanote:20150524205957j:plain

f:id:hirosanote:20150524225831j:plain

 

仮想IPを設定します。

f:id:hirosanote:20150524225911j:plain

f:id:hirosanote:20150524230040j:plain

 

メンバーを追加します。

f:id:hirosanote:20150524213600j:plain

f:id:hirosanote:20150524213756j:plain

 

仮想IPをPublicネットワークに紐付けます。VIP 192.168.99.253のIDを確認します。

f:id:hirosanote:20150524230237j:plain

f:id:hirosanote:20150524230319j:plain

 

VIPとPublicを紐付けます。

neutron floatingip-create --port-id=c5bc7f69-317b-4be2-9067-483b4b00416a public
Created a new floatingip:
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| fixed_ip_address | 192.168.99.253 |
| floating_ip_address | 192.168.0.242 |
| floating_network_id | 596253c9-5976-4d11-8d06-aba1e858447e |
| id | 8eedc1dd-dd6a-4a53-b675-cecdf724c7ca |
| port_id | c5bc7f69-317b-4be2-9067-483b4b00416a |
| router_id | 63946bd6-a891-4625-b552-8c2af35501dd |
| status | DOWN |
| tenant_id | 79f838b144a54c0f89704f03e2b08436 |
+---------------------+--------------------------------------+
[root@centos65 ~(keystone_admin)]#

 

紐付けたPublic IPにアクセスし、ロードバランスされることを確認します。

f:id:hirosanote:20150524230615j:plain

 

 

OPCEL認定試験 OpenStack技術者認定試験対策教科書

OPCEL認定試験 OpenStack技術者認定試験対策教科書