Download - H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編
1
2014/7/30 v1Tomoaki Nakajima(@irix_jp)
openstackOpen source software to build public and private clouds.
基礎操作編
2
目的
● OpenStack 上に Horizon を使って踏み台サーバを構築します。
3
OpenStack へのログイン
● 今回は演習用の OpenStack 環境として、 HP Public Cloud を利用します。
● ブラウザで以下の URL へアクセスし、「 Login 」を選択します。● http://www.hpcloud.com
4
OpenStack へのログイン
● 登録したユーザ名、パスワードを入力します。
5
ログイン後の初期画面今のプロジェクト(テナント名)
現在のリージョン名 現在のユーザ名
6
リージョンについて
● 物理的、地理的に分割されたリソースの配置単位
7
リージョン毎に機能の有効化
● 各リージョンで利用する機能を有効化します。*この作業は HP Public Cloud 独自です。
有効化します
8
リソースの状態を確認
● リージョンでの機能を有効化すると、「 Project 」メニューが選択できるようになります。● 画面右メニュー
– Project → Compute → Overviwe– ここでは、選択されているリージョンの概要が確認できます。
9
初期状態
● Network → Network Toporogy を選択します。
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 ポートでも待ち受けるように設定します。
11
参考:サンプルアプリ
● 次の演習で利用するサンプルアプリの構造は以下のようになっております。
12
踏み台サーバ作成の準備
● キーペアの作成● ssh アクセス用
● セキュリティグループの作成● ssh アクセスを許可
● 仮想ネットワークの作成● 今回は既に存在するネットワークを利用するので省略
13
キーペアの作成
● Project → Compute → Access & Security を表示● 「 Key pairs 」タブを選択● 画面右上の「 Create key pair 」を選択します。
14
キーペアの作成
● キーペアの名前を「 key-for-step-server 」として、右下の「 Create Key Pair 」を選択し、キーを作成します。
● 作成すると「秘密鍵」のダウンロードが始まるので、わかりやすい場所に保存しておいてください。● このキーは後で利用します。
15
セキュリティグループの作成
● Project → Compute → Access & Security を表示● 「 Security Groups 」タブを選択● 画面右上の「 Create Security Group 」を選択します。
16
セキュリティグループの作成
● セキュリティグループの名前を「 security-for-step-server 」と入力し、説明を追加し、「 Create Security Group 」を選択します。
17
ルールの追加
● 次にセキュリティグループにルールを追加します。● 先ほど作成した「 security-for-step-server 」の
「 Manage Rules 」を選択します。
18
ルールの追加
● 「 Add Rule 」を選択します。
19
ルールの追加
● SSH を全セグメントから許可するルールを追加します。
同様の手順で、 HTTPS(443) もルールとして追加してください。
これはサーバ側で、 SSH を443 で起動するためです。
20
ルールの追加
● 追加されたルールを確認します。
ここにIngress IPv4 TCP 443(HTTPS) 0.0.0.0/0(CIDR)
も追加されている必要があります。
21
仮想マシンの作成
● Project → Compute → Instance● 画面右上の「 Launch Instance 」を選択します。
22
仮想マシン作成時のパラメータ
23
仮想マシン作成 1
デフォルトのまま(リソースの空きが多い AZ が選ばれます)
「 step-server 」
「 standard.xsmall 」
「 1 」同時に複数のインスタンを起動することも可能です。
「 Boot from image 」
「 CentOS6.3 」
24
Availability Zone
● 仮想マシンをどのデータセンターで起動するか選択する。
US West(region-a.geo-1) US East(region-b.geo-1)
AZ1
AZ2
AZ3 AZ1
AZ2
AZ3
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 |+-----+------------------+-----------+------+-----------+------+-------+-------------+-----------+
26
Instance Boot Source
● 仮想マシンの起動方法を選択します。● 様々なブート方法が可能です。
– 予め用意されたイメージから起動する。– 自分で作成したスナップショットイメージから起動する。– 外部 (cinder) ボリュームを root ディスクとして起動する。– 外部 (cinder) ボリュームのスナップショットから起動する。
27
仮想マシン作成 2
「 key-for-step-server 」
「 security-for-step-server 」
Selected Networks に標準で存在しているネットワークを指定します。
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 を参照してください。
29
起動の確認
● 仮想マシン起動のためのリソース割り当てに成功すると、 Instance一覧に表示されます。● Status が「 Active 」になると仮想 OS の起動が始まり
ます
30
起動の確認
● ログの表示
31
起動の確認
● OS 起動時のログを確認することができます。
32
起動の確認
● ネットワーク状態の確認とコンソールの表示
33
Floating IP の取得
● 仮想マシンに割り当てる、グローバル IP を取得します。
34
Floating IP の取得
● 外部ネットワークから取得した IP アドレスを確認します。
35
Floating IP の割り当て
● 取得した IP を、仮想マシンへ割り当てます。
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
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
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 |+--------------------------------------+----------------------+--------------------------------------------------+
39
cloud-init について
● 仮想マシン起動時に openstack の user/metaデータを利用して各種OS の設定を行うスクリプト集になります。● 代表的な設定項目
– ホスト名の設定– root ユーザ用に ssh公開鍵の取り込み– スクリプトの実行 等
● 設定ファイル /etc/cloud/cloud.cfg● 実行ログ /var/log/cloud-init.log
40
演習のまとめ
● Horizon を利用した OpenStack の操作● キーペア、セキュリティグループ、仮想ネットワーク● 仮想マシンの作成と、 Floating IP● cloud-init を利用した起動時のスクリプト実行
HP Public Cloud
horizon
api
router
Ext-Net
step-serverbrowser
ssh
openstack command & ansible
次の講座でここに環境を
作成していきます
Global IP
NAT
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