41
1 2014/7/30 v1 Tomoaki Nakajima(@irix_jp) openstack Open source software to build public and private clouds. 基礎操作編

H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

  • Upload
    irixjp

  • View
    2.040

  • Download
    0

Embed Size (px)

Citation preview

Page 1: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

1

2014/7/30 v1Tomoaki Nakajima(@irix_jp)

openstackOpen source software to build public and private clouds.

基礎操作編

Page 2: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

2

目的

● OpenStack 上に Horizon を使って踏み台サーバを構築します。

Page 3: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

3

OpenStack へのログイン

● 今回は演習用の OpenStack 環境として、 HP Public Cloud を利用します。

● ブラウザで以下の URL へアクセスし、「 Login 」を選択します。● http://www.hpcloud.com

Page 4: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

4

OpenStack へのログイン

● 登録したユーザ名、パスワードを入力します。

Page 5: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

5

ログイン後の初期画面今のプロジェクト(テナント名)

現在のリージョン名 現在のユーザ名

Page 6: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

6

リージョンについて

● 物理的、地理的に分割されたリソースの配置単位

Page 7: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

7

リージョン毎に機能の有効化

● 各リージョンで利用する機能を有効化します。*この作業は HP Public Cloud 独自です。

有効化します

Page 8: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

8

リソースの状態を確認

● リージョンでの機能を有効化すると、「 Project 」メニューが選択できるようになります。● 画面右メニュー

– Project → Compute → Overviwe– ここでは、選択されているリージョンの概要が確認できます。

Page 9: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

9

初期状態

● Network → Network Toporogy を選択します。

Page 10: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

10

ここからの設定シナリオ

● 作業用の踏み台サーバの作成をします● 踏み台サーバの要件

– 外部から ssh でのアクセスが可能– openstack client command, ansible が利用可能

HP Public Cloud

horizon

api

router

Ext-Net

step-serverbrowser

ssh

openstack command & ansible

ここに環境を作成していきます

Global IP

NAT

今回の会場のネットワークは、SSH が外部へ出られないため、

サーバ側で SSH を 443 ポートでも待ち受けるように設定します。

Page 11: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

11

参考:サンプルアプリ

● 次の演習で利用するサンプルアプリの構造は以下のようになっております。

Page 12: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

12

踏み台サーバ作成の準備

● キーペアの作成● ssh アクセス用

● セキュリティグループの作成● ssh アクセスを許可

● 仮想ネットワークの作成● 今回は既に存在するネットワークを利用するので省略

Page 13: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

13

キーペアの作成

● Project → Compute → Access & Security を表示● 「 Key pairs 」タブを選択● 画面右上の「 Create key pair 」を選択します。

Page 14: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

14

キーペアの作成

● キーペアの名前を「 key-for-step-server 」として、右下の「 Create Key Pair 」を選択し、キーを作成します。

● 作成すると「秘密鍵」のダウンロードが始まるので、わかりやすい場所に保存しておいてください。● このキーは後で利用します。

Page 15: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

15

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

● Project → Compute → Access & Security を表示● 「 Security Groups 」タブを選択● 画面右上の「 Create Security Group 」を選択します。

Page 16: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

16

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

● セキュリティグループの名前を「 security-for-step-server 」と入力し、説明を追加し、「 Create Security Group 」を選択します。

Page 17: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

17

ルールの追加

● 次にセキュリティグループにルールを追加します。● 先ほど作成した「 security-for-step-server 」の

「 Manage Rules 」を選択します。

Page 18: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

18

ルールの追加

● 「 Add Rule 」を選択します。

Page 19: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

19

ルールの追加

● SSH を全セグメントから許可するルールを追加します。

同様の手順で、 HTTPS(443) もルールとして追加してください。

これはサーバ側で、 SSH を443 で起動するためです。

Page 20: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

20

ルールの追加

● 追加されたルールを確認します。

ここにIngress IPv4 TCP 443(HTTPS) 0.0.0.0/0(CIDR)

も追加されている必要があります。

Page 21: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

21

仮想マシンの作成

● Project → Compute → Instance● 画面右上の「 Launch Instance 」を選択します。

Page 22: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

22

仮想マシン作成時のパラメータ

Page 23: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

23

仮想マシン作成 1

デフォルトのまま(リソースの空きが多い AZ が選ばれます)

「 step-server 」

「 standard.xsmall 」

「 1 」同時に複数のインスタンを起動することも可能です。

「 Boot from image 」

「 CentOS6.3 」

Page 24: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

24

Availability Zone

● 仮想マシンをどのデータセンターで起動するか選択する。

US West(region-a.geo-1) US East(region-b.geo-1)

AZ1

AZ2

AZ3 AZ1

AZ2

AZ3

Page 25: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

25

Flavor

● 仮想マシンのスペックを設定します。● 仮想 CPU 数● メモリ数● ディスク容量

● HP Public Cloud での Flavor+-----+------------------+-----------+------+-----------+------+-------+-------------+-----------+| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |+-----+------------------+-----------+------+-----------+------+-------+-------------+-----------+| 100 | standard.xsmall | 1024 | 10 | 10 | | 1 | 1.0 | N/A || 101 | standard.small | 2048 | 30 | 10 | | 2 | 1.0 | N/A || 102 | standard.medium | 4096 | 30 | 50 | | 2 | 1.0 | N/A || 103 | standard.large | 8192 | 30 | 130 | | 4 | 1.0 | N/A || 104 | standard.xlarge | 15360 | 30 | 270 | | 4 | 1.0 | N/A || 105 | standard.2xlarge | 30720 | 30 | 470 | | 8 | 1.0 | N/A || 110 | standard.4xlarge | 61440 | 30 | 870 | | 12 | 1.0 | N/A || 114 | standard.8xlarge | 122880 | 30 | 1770 | | 16 | 1.0 | N/A || 203 | highmem.large | 16384 | 30 | 130 | | 4 | 1.0 | N/A || 204 | highmem.xlarge | 30720 | 30 | 270 | | 4 | 1.0 | N/A || 205 | highmem.2xlarge | 61440 | 30 | 540 | | 8 | 1.0 | N/A |+-----+------------------+-----------+------+-----------+------+-------+-------------+-----------+

Page 26: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

26

Instance Boot Source

● 仮想マシンの起動方法を選択します。● 様々なブート方法が可能です。

– 予め用意されたイメージから起動する。– 自分で作成したスナップショットイメージから起動する。– 外部 (cinder) ボリュームを root ディスクとして起動する。– 外部 (cinder) ボリュームのスナップショットから起動する。

Page 27: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

27

仮想マシン作成 2

「 key-for-step-server 」

「 security-for-step-server 」

Selected Networks に標準で存在しているネットワークを指定します。

Page 28: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

28

仮想マシン作成 3

#!/bin/bashdate > /date.txtyum install -q -y ansible bpython sshpasssetenforce 0sed -i -e 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/configecho "Port 22" >> /etc/ssh/sshd_configecho "Port 443" >> /etc/ssh/sshd_config/etc/init.d/sshd restart

テキストと一緒に保存している、02_scripts.txt を参照してください。

Page 29: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

29

起動の確認

● 仮想マシン起動のためのリソース割り当てに成功すると、 Instance一覧に表示されます。● Status が「 Active 」になると仮想 OS の起動が始まり

ます

Page 30: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

30

起動の確認

● ログの表示

Page 31: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

31

起動の確認

● OS 起動時のログを確認することができます。

Page 32: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

32

起動の確認

● ネットワーク状態の確認とコンソールの表示

Page 33: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

33

Floating IP の取得

● 仮想マシンに割り当てる、グローバル IP を取得します。

Page 34: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

34

Floating IP の取得

● 外部ネットワークから取得した IP アドレスを確認します。

Page 35: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

35

Floating IP の割り当て

● 取得した IP を、仮想マシンへ割り当てます。

Page 36: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

36

ssh で踏み台サーバへ接続

● 割り当てた Floating IP に対して、ダウンロードしたkeypair を利用してアクセスします

[root@client ~]$ ssh -i key-for-step-server.pem -p 443 [email protected] authenticity of host '15.126.222.36 (15.126.222.36)' can't be established.RSA key fingerprint is f2:a9:ed:5b:72:5d:40:d0:30:ca:83:92:9f:0f:2f:fe.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '15.126.222.36' (RSA) to the list of known hosts.

[root@step-server ~]# hostnamestep-server

[root@step-server ~]# cat /date.txt Fri Jun 13 16:18:00 UTC 2014

[root@step-server ~]# ansible --versionansible 1.6.3

Page 37: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

37

openstackコマンドの導入

● 今後の作業のために、踏み台サーバへ openstackクライアントコマンドを導入します。

[root@step-server ~]# yum install -y http://rdo.fedorapeople.org/rdo-release.rpm

[root@step-server ~]# yum install -y python-novaclient \ python-neutronclient \ python-glanceclient \ python-cinderclient \ python-swiftclient \ python-keystoneclient

Page 38: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

38

コマンドの実行確認

● インストールしたコマンドを利用して、 openstackを操作します。

[root@step-server ~]# vim openrc

export OS_AUTH_URL=https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/export OS_REGION_NAME=region-b.geo-1export OS_TENANT_NAME=101xxxxxxxxxxxxxx-Projectexport OS_USERNAME=usernameexport OS_PASSWORD=password

[root@step-server ~]# source openrc[root@step-server ~]# nova list+--------------------------------------+-------------+--------+------------+-------------+----------------------------------------------+| ID | Name | Status | Task State | Power State | Networks |+--------------------------------------+-------------+--------+------------+-------------+----------------------------------------------+| c68cfdb2-64bf-4940-a608-9ac3e9254cc9 | step-server | ACTIVE | - | Running | irix_jp_1978-network=10.0.0.7, 15.126.222.36 |+--------------------------------------+-------------+--------+------------+-------------+----------------------------------------------+

[root@step-server ~]# neutron net-list+--------------------------------------+----------------------+--------------------------------------------------+| id | name | subnets |+--------------------------------------+----------------------+--------------------------------------------------+| 4ce90d1d-2866-444a-ac43-fa0d004f025d | irix_jp_1978-network | e156ec22-c018-4d7b-87d9-b5fc32dc4df9 10.0.0.0/24 || 7da74520-9d5e-427b-a508-213c84e69616 | Ext-Net | ef3bde66-8ac4-4356-8ab4-099519ba218a |+--------------------------------------+----------------------+--------------------------------------------------+

Page 39: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

39

cloud-init について

● 仮想マシン起動時に openstack の user/metaデータを利用して各種OS の設定を行うスクリプト集になります。● 代表的な設定項目

– ホスト名の設定– root ユーザ用に ssh公開鍵の取り込み– スクリプトの実行 等

● 設定ファイル /etc/cloud/cloud.cfg● 実行ログ /var/log/cloud-init.log

Page 40: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

40

演習のまとめ

● Horizon を利用した OpenStack の操作● キーペア、セキュリティグループ、仮想ネットワーク● 仮想マシンの作成と、 Floating IP● cloud-init を利用した起動時のスクリプト実行

HP Public Cloud

horizon

api

router

Ext-Net

step-serverbrowser

ssh

openstack command & ansible

次の講座でここに環境を

作成していきます

Global IP

NAT

Page 41: H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編

41

付録

– 踏み台サーバを 1 回で作るための userdata ファイル● userdata.txt

● 実行例

#!/bin/bashdate > /date.txtyum install -y ansible bpython sshpassyum install -y http://rdo.fedorapeople.org/rdo-release.rpmyum install -y python-novaclient \ python-neutronclient \ python-glanceclient \ python-cinderclient \ python-swiftclient \ python-keystoneclientcat << EOF > /root/openrcexport OS_AUTH_URL=https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/export OS_REGION_NAME=region-b.geo-1export OS_TENANT_NAME=tenant_nameexport OS_TENANT_ID=tenant_idexport OS_USERNAME=usernameexport OS_PASSWORD=passwordEOF

$ nova boot --flavor standard.xsmall --image "CentOS 6.3 Server 64-bit 20130116" \--key-name key-for-step-server --security-groups security-for-step-server \--user-data userdata.txt --nic net-id=98668610-77c8-448c-8690-ab80fc8ac8ab test1