お試し NetApp OpenStack Deployment -5

こんにちは、倉持です。

突然本日寒くなりましたが、また暑くなるかもしれないので、こちらも熱くいきます。

 

 

 

今回はインスタンス、いわゆる仮想マシンをまず動かしてみましょう。ここは NetApp がからむところではありませんが、やはりベースとしてきちんと動く事を確認しておくことが大事です。ご存知な方はご自身で準備いただいてもよいでしょう。一般的な手順で起動まで確認してみます。

起動するのは cirros という非常に軽量なLinux OSです。

 

  1. SSH公開鍵を作成
  2. セキュリティグループ作成
  3. ネットワーク再設定
  4. フローティングIPアドレス作成
  5. インスタンス起動
  6. フローティングIPアドレス接続
  7. 外部ネットワークからリモートログイン

 

3. のネットワーク再設定は、ご自身の環境に合わせて行います。

*ネットワークの部分ははじめとっつきずらいかと思います。すごくざっくりいうと、ネットワークはOpenStack内で仮想的なルータやスイッチが構成されます。そして外部との通信に必要なゲートウェイや物理ポートの設定などが行われ、外側とインスタンスが通信で出来るようになります。具体的な情報については下部のドキュメントや入門書等をご参考ください。

 

http://docs.openstack.org/

 

上記を以下のようにログります。GUI(Horizon)またはコマンドラインがまじっていますが、どちらでもかまいません。インスタンスが動けばよいので。

 

SSH公開鍵作成

 

自分が、外側(ということとして)、インスタンスにアクセスするマシンを tkstack (ここではRDOがインストールされているマシン)

として公開鍵を作っています。

 

 

[root@tkstack ~]# ssh-keygen -t rsa -f cloud.key

 

作成された鍵のうち公開鍵をインスタンス側に入れるため、登録します。demo で Horizon にログインして

「アクセスとセキュリティ」=>「キーペア タグ」=>「キーペアのインポート」で行います。

 

 

 

セキュリティグループ作成

 

外部からインスタンスへアクセスするためファイアウォールのようなセキュリティーグループを作成します。

新たに作成してもよいし、ここでは default のセキュリティーグループに追加しています。

 

[root@tkstack ~]# source keystonerc_admin

[root@tkstack ~(keystone_admin)]# nova secgroup-list-rules default

+-------------+-----------+---------+----------+--------------+

| IP Protocol | From Port | To Port | IP Range | Source Group |

+-------------+-----------+---------+----------+--------------+

|             |           |         |          | default      |

|             |           |         |          | default      |

+-------------+-----------+---------+----------+--------------+

[root@tkstack ~(keystone_admin)]# nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0

+-------------+-----------+---------+-----------+--------------+

| IP Protocol | From Port | To Port | IP Range  | Source Group |

+-------------+-----------+---------+-----------+--------------+

| icmp        | -1        | -1      | 0.0.0.0/0 |              |

+-------------+-----------+---------+-----------+--------------+

[root@tkstack ~(keystone_admin)]# nova secgroup-add-rule default  tcp 22 22 0.0.0.0/0

+-------------+-----------+---------+-----------+--------------+

| IP Protocol | From Port | To Port | IP Range  | Source Group |

+-------------+-----------+---------+-----------+--------------+

| tcp         | 22        | 22      | 0.0.0.0/0 |              |

+-------------+-----------+---------+-----------+--------------+

[root@tkstack ~(keystone_admin)]# nova secgroup-list-rules default

+-------------+-----------+---------+-----------+--------------+

| IP Protocol | From Port | To Port | IP Range  | Source Group |

+-------------+-----------+---------+-----------+--------------+

| tcp         | 22        | 22      | 0.0.0.0/0 |              |

|             |           |         |           | default      |

|             |           |         |           | default      |

| icmp        | -1        | -1      | 0.0.0.0/0 |              |

+-------------+-----------+---------+-----------+--------------+

[root@tkstack ~(keystone_admin)]#

 

 

ネットワーク再設定

 

ネットワークを自身の環境に合わせて設定します。

  • 外部サブネット(ここでは、ホストのサーバの NIC に紐付いている Internet に接続可能なサブネット)
  • 内部サブネット( インスタンスに割り当てられるサブネット・・・こっちは残しておいていい)

 

既存のものを削除したいのだが、既に紐付いている関連性があるため順番に削除し再設定

 

router1 の gateway を消す

[root@tkstack ~(keystone_admin)]# neutron router-port-list router1

+--------------------------------------+------+-------------------+-------------------------------------------------------------------------------------+

| id                                   | name | mac_address       | fixed_ips                                                                           |

+--------------------------------------+------+-------------------+-------------------------------------------------------------------------------------+

| 09f93b38-0b07-45d9-960c-e74d8e835958 |      | fa:16:3e:e0:da:56 | {"subnet_id": "e0e57cc9-3d17-46ad-8b97-529bf33cf724", "ip_address": "10.0.0.1"}     |

| 24701042-f424-4934-b444-283a48b3cd95 |      | fa:16:3e:8b:af:f0 | {"subnet_id": "4a38e204-6cdf-4b47-9bd4-ce295cfa3a1c", "ip_address": "172.24.4.226"} |

+--------------------------------------+------+-------------------+-------------------------------------------------------------------------------------+

[root@tkstack ~(keystone_admin)]# neutron router-gateway-clear router1

Removed gateway from router router1

[root@tkstack ~(keystone_admin)]# neutron router-port-list router1

+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+

| id                                   | name | mac_address       | fixed_ips                                                                       |

+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+

| 09f93b38-0b07-45d9-960c-e74d8e835958 |      | fa:16:3e:e0:da:56 | {"subnet_id": "e0e57cc9-3d17-46ad-8b97-529bf33cf724", "ip_address": "10.0.0.1"} |

+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+

[root@tkstack ~(keystone_admin)]#

 

public_subnet を消す

[root@tkstack ~(keystone_admin)]# neutron subnet-list

+--------------------------------------+----------------+-----------------+--------------------------------------------------+

| id                                   | name           | cidr            | allocation_pools                                 |

+--------------------------------------+----------------+-----------------+--------------------------------------------------+

| 4a38e204-6cdf-4b47-9bd4-ce295cfa3a1c | public_subnet  | 172.24.4.224/28 | {"start": "172.24.4.226", "end": "172.24.4.238"} |

| e0e57cc9-3d17-46ad-8b97-529bf33cf724 | private_subnet | 10.0.0.0/24     | {"start": "10.0.0.2", "end": "10.0.0.254"}       |

+--------------------------------------+----------------+-----------------+--------------------------------------------------+

[root@tkstack ~(keystone_admin)]# neutron subnet-delete public_subnet

Deleted subnet: public_subnet

[root@tkstack ~(keystone_admin)]# neutron subnet-list

+--------------------------------------+----------------+-------------+--------------------------------------------+

| id                                   | name           | cidr        | allocation_pools                           |

+--------------------------------------+----------------+-------------+--------------------------------------------+

| e0e57cc9-3d17-46ad-8b97-529bf33cf724 | private_subnet | 10.0.0.0/24 | {"start": "10.0.0.2", "end": "10.0.0.254"} |

+--------------------------------------+----------------+-------------+--------------------------------------------+

[root@tkstack ~(keystone_admin)]#

 

外部ネットワークの定義は public となっており、router:external が True となっているので外部接続可能

[root@tkstack ~(keystone_admin)]# neutron net-list

+--------------------------------------+---------+------------------------------------------------------+

| id                                   | name    | subnets                                              |

+--------------------------------------+---------+------------------------------------------------------+

| 71f319f0-4fb5-4a3b-a82d-235776de528a | private | e0e57cc9-3d17-46ad-8b97-529bf33cf724 10.0.0.0/24     |

| dfa68e83-a0d7-48dd-99a9-fff9cdeb2859 | public  | d2982815-ff8d-4203-974f-a085db62262d 10.130.204.0/22 |

+--------------------------------------+---------+------------------------------------------------------+

[root@tkstack ~(keystone_admin)]# neutron net-show public

+---------------------------+--------------------------------------+

| Field                     | Value                                |

+---------------------------+--------------------------------------+

| admin_state_up            | True                                 |

| id                        | dfa68e83-a0d7-48dd-99a9-fff9cdeb2859 |

| name                      | public                               |

| provider:network_type     | vxlan                                |

| provider:physical_network |                                      |

| provider:segmentation_id  | 10                                   |

| router:external           | True                                 |

| shared                    | False                                |

| status                    | ACTIVE                               |

| subnets                   | d2982815-ff8d-4203-974f-a085db62262d |

| tenant_id                 | 51907191e78543afa754de6b69624205     |

+---------------------------+--------------------------------------+

[root@tkstack ~(keystone_admin)]#

 

この public ネットワークに外部接続可能なサブネットを紐付けて作成

[root@tkstack ~(keystone_admin)]# neutron subnet-create public 10.130.204.0/22 --name public_netapp --enable_dhcp=False --allocation_pool start=10.130.205.171,end=10.130.205.175 --gateway 10.130.204.1

Created a new subnet:

+------------------+------------------------------------------------------+

| Field            | Value                                                |

+------------------+------------------------------------------------------+

| allocation_pools | {"start": "10.130.205.171", "end": "10.130.205.175"} |

| cidr             | 10.130.204.0/22                                      |

| dns_nameservers  |                                                      |

| enable_dhcp      | False                                                |

| gateway_ip       | 10.130.204.1                                         |

| host_routes      |                                                      |

| id               | d2982815-ff8d-4203-974f-a085db62262d                 |

| ip_version       | 4                                                    |

| name             | public_netapp                                        |

| network_id       | dfa68e83-a0d7-48dd-99a9-fff9cdeb2859                 |

| tenant_id        | 51907191e78543afa754de6b69624205                     |

+------------------+------------------------------------------------------+

[root@tkstack ~(keystone_admin)]#

 

そして、public への Gateway を route1 にセット

[root@tkstack ~(keystone_admin)]# neutron router-port-list router1

+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------------+

| id                                   | name | mac_address       | fixed_ips                                                                             |

+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------------+

| 09f93b38-0b07-45d9-960c-e74d8e835958 |      | fa:16:3e:e0:da:56 | {"subnet_id": "e0e57cc9-3d17-46ad-8b97-529bf33cf724", "ip_address": "10.0.0.1"}       |

| 6579f437-535f-4ad7-8385-242465fec301 |      | fa:16:3e:96:f7:e6 | {"subnet_id": "d2982815-ff8d-4203-974f-a085db62262d", "ip_address": "10.130.205.171"} |

+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------------+

 

定義としてセットしているだけで、Gateway としての IP Address は public_netapp として定義したサブネットのアドレス範囲で初めのアドレスが割り当てられれます。

 

フローティングIPアドレス

 

  • インスタンスへ外部から接続するためのアドレス(これがフローティングIPアドレス)を作成する
  • これは、インスタンス起動後にひもづける事ができる
  • ここでは demo 環境で使うので demo にて作成する

 

[root@tkstack ~(keystone_demo)]# neutron floatingip-create public

Created a new floatingip:

+---------------------+--------------------------------------+

| Field               | Value                                |

+---------------------+--------------------------------------+

| fixed_ip_address    |                                      |

| floating_ip_address | 10.130.205.175                       |

| floating_network_id | dfa68e83-a0d7-48dd-99a9-fff9cdeb2859 |

| id                  | fc95f66d-71e7-46b6-bcf5-f4ce8231e5c8 |

| port_id             |                                      |

| router_id           |                                      |

| status              | DOWN                                 |

| tenant_id           | 63bba5d3297c4b38af6699e7a06a0468     |

+---------------------+--------------------------------------+

[root@tkstack ~(keystone_demo)]#

[root@tkstack ~(keystone_demo)]# neutron floatingip-list

+--------------------------------------+------------------+---------------------+--------------------------------------+

| id                                   | fixed_ip_address | floating_ip_address | port_id                              |

+--------------------------------------+------------------+---------------------+--------------------------------------+

| 2e381338-9459-4b49-a676-a2c849e58877 | 10.0.0.12        | 10.130.205.172      | 3314d02b-ab3a-4a7c-a06e-c1577bd72c70 |

| 751af827-0b06-462b-942e-7ec64ac104dd |                  | 10.130.205.174      |                                      |

| 753230f3-e5e8-4d86-88fe-82f8d81dce04 |                  | 10.130.205.173      |                                      |

| fc95f66d-71e7-46b6-bcf5-f4ce8231e5c8 |                  | 10.130.205.175      |                                      |

+--------------------------------------+------------------+---------------------+--------------------------------------+

[root@tkstack ~(keystone_demo)]#

 

 

インスタンス起動

 

インスタンスの起動は GUI からやってみます。

以下必要なところだけ特筆、あとはデフォルト指定です。

 

  • demo でログイン
  • 詳細タブ
    • インスタンス名:cirros-test
    • フレーバ:m1.tiny
    • インスタンスのブートソース:イメージの選択
    • イメージ名:cirros-XXXX
  • アクセスとセキュリティタブ
    • キーペア:demo_key
  • ネットワーク
    • 選択済みのネットワーク:private

 

起動させると、処理が走りしばらくすると稼動状態(Status)が「Running」になります。

 

 

「インスタンス名」をクリックすると詳細ページに移り、起動ログ確認やコンソールの操作ができるようになります。

 

フローティングIPアドレス接続

 

インスタンス画面の各インスタンスの「アクション」から 「Floating IP の割り当て」を選んで割り当てをします。

 

 

ここまででネットワークのトポロジーを見てみるとこんな感じになっていると思います。

 

 

外部ネットワークからリモートログイン

 

  • 外側のネットワーク(public)のマシンから ping を打って確認
  • SSH 秘密鍵を使ってでログイン(cirros で用意されているユーザは"cirros")

 

[root@tkstack ~]# ssh -i cloud.key cirros@10.130.205.172

The authenticity of host '10.130.205.172 (10.130.205.172)' can't be established.

RSA key fingerprint is 4e:3a:e8:d1:27:d8:64:37:ac:a4:21:cd:3e:9a:bd:9a.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '10.130.205.172' (RSA) to the list of known hosts.

$ hostname

cirros-test

$ ifconfig

eth0      Link encap:Ethernet  HWaddr FA:16:3E:07:3E:9E

          inet addr:10.0.0.30  Bcast:10.0.0.255  Mask:255.255.255.0

          inet6 addr: fe80::f816:3eff:fe07:3e9e/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:212 errors:0 dropped:0 overruns:0 frame:0

          TX packets:205 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:31014 (30.2 KiB)  TX bytes:24023 (23.4 KiB)

 

 

lo        Link encap:Local Loopback

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

$

 

 

長くなったのでいったんここできりまして、まずこのあたりまで確認してもらうとよいとおもいます。

 

次回は、このインスタンスに前回作成した Block Storage Service で作ったボリュームを接続してみます。

 

 

 

過去ログ