openstackをさらに”使う”技術 概要と基礎操作

84
1 OpenStackをさらに”使う”技術 Docker/Ansible編 パート1 概要と基本操作 @irix_jp openstack Open source software to build public and private clouds.

Upload: irixjp

Post on 23-Jan-2017

1.490 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: OpenStackをさらに”使う”技術 概要と基礎操作

1

OpenStackをさらに”使う”技術Docker/Ansible編

パート1 概要と基本操作

@irix_jp

openstackOpen source software to build public and private clouds.

Page 2: OpenStackをさらに”使う”技術 概要と基礎操作

Table of Contents

講義

OpenStackが注目される背景

全体概要

利用方法と自動化を支援する機能

自動化の重要性

演習 踏み台サーバーの作成

画面の確認と操作方法

リソースの作成(ネットワーク、ボリューム)

UserdataとMetadataを使った自動化

後片付け

2

Page 3: OpenStackをさらに”使う”技術 概要と基礎操作

講義 OpenStackが注目される背景

全体概要

利用方法と自動化を支援する機能

自動化の重要性

3

Page 4: OpenStackをさらに”使う”技術 概要と基礎操作

OpenStackが注目される背景

4

Page 5: OpenStackをさらに”使う”技術 概要と基礎操作

OpenStackが注目される背景

世界、国内において年々OpenStackへの注目度が増加

合わせて市場規模も拡大傾向

5

2010

2014

2015 Spring Vancouver 60002015 Autumn Tokyo 50002016 Spring Austin 2016 Autumn Barcelona

Attendees of OpenStack Summit

IDC Japan 株式会社「国内OpenStackエコシステム市場予測」2015年10月26日http://www.idcjapan.co.jp/Press/Current/20151026Apr.html

Page 6: OpenStackをさらに”使う”技術 概要と基礎操作

IT市場の変遷

現在はオープンシステムからクラウドシステムへの移行時期

システムの作り方、考え方が大きく変わるタイミング

6

Main Frame

1970~Open System

1990~Cloud

2010~

a few billion yen

7 to 10 years

1 year

a few million yen

3 to 5 years

a few months

a few hundred

yen

a few hour

a few minutes

Unit Price of

Resources

Depreciation

Term

Time to

Prepare

Page 7: OpenStackをさらに”使う”技術 概要と基礎操作

変革を誘発した原因

コモディティ化の進行による価値観の変化

7

Un

it P

rice o

f IT

Reso

urc

es

Passage of Time

One of the Price Point

Point of Changing Business Model

Before the Cloud After the Cloud

Singularity

Page 8: OpenStackをさらに”使う”技術 概要と基礎操作

Good/Cheap/Fast から Fast/Fast/Fastへ

OpenStack Sumit 2014 Walt Disney Company

社内ITインフラとしてOpenStackを導入

コンシューマー向けITサービスと同じスピード感で

社内ITサービスを提供

8https://www.youtube.com/watch?v=SREEnNQ6zqg

Before

After

Page 9: OpenStackをさらに”使う”技術 概要と基礎操作

システムアーキテクチャのパラダムシフト

9

http://www.slideshare.net/gmccance/cern-data-centre-evolution

Page 10: OpenStackをさらに”使う”技術 概要と基礎操作

全体概要

10

Page 11: OpenStackをさらに”使う”技術 概要と基礎操作

OpenStackとは?

OSSで開発されるCloudOS

様々なITリソースを抽象化し、標準的な操作手法を提供

11http://www.openstack.org/software/

Page 12: OpenStackをさらに”使う”技術 概要と基礎操作

OpenStackの特徴

様々なITリソースを抽象化して、標準的な操作APIを提供

演算リソース、データ格納リソース、ネットワーキングリソースを中心にその周辺リソースを対象範囲とする。

マイクロコントローラー構造 機能単位でコンポーネントが分離しており、それぞれ独立動作する。

プラグイン・ドライバ構造

各コンポーネントは、制御対象に合わせてプラグイン、ドライバ構造を採用しており、制御対象に合わせて組み合わせ可能

ほぼ100% Pyhton 実装

一部の機能(ダッシュボード等)にJS等の別言語が利用されていますが、基本的には全てPythonによって実装されています。

12

Page 13: OpenStackをさらに”使う”技術 概要と基礎操作

マイクロコントローラー構造

本講義では、赤線部分のIaaS機能にフォーカスします。

13

Nova Glance Cinder SwiftNeutron

仮想ネットワーク制御ハイパーバイザー制御

イメージSnapShot管理

ブロックストレージ制御

オブジェクトストレージ

VPNaaS

L3

L2/LBaaS

FWaaS

Heat オーケストレーションTrove DBaaS

Ceilometer 統計情報の収集・アラート発信 Keystone 認証・認可

Sahara DPaaS

Ironic

ベアメタルプロビジョニング

Page 14: OpenStackをさらに”使う”技術 概要と基礎操作

プラグイン・ドライバ構造

14

OpenStack(novaの例)

KVM用ドライバ

Xen用ドライバ

商用製品用ドライバ

KVMサーバ XenサーバVMwareサーバHyper-Vサーバ

OpenStack APIAmazon互換API

ユーザやプログラムは、OpenStackの利用方法だけを知っていれば環境の操作が可能

コンテナ用ドライバ

LXCDocker

Page 15: OpenStackをさらに”使う”技術 概要と基礎操作

ユーザーのプラグイン・ドライバの選択傾向

152015 Oct User Survey

http://www.openstack.org/assets/survey/Public-User-Survey-Report.pdf

Page 16: OpenStackをさらに”使う”技術 概要と基礎操作

利用方法と自動化を支援する機能

16

Page 17: OpenStackをさらに”使う”技術 概要と基礎操作

OpenStackの操作方法

OpenStackでは以下の3つの操作方法が提供されています。 Dashboard(Horizon)

最も簡単で直感的。ただし一部複雑な操作はできない

コマンドライン 最も一般的で利便性が高い。ほぼ全ての操作が可能。ただし高度な自動化には限界がある。

REST API

最も柔軟性があり全ての操作が可能。他のプログラムから連携することが前提で、高度な自動化を実現したい場合に利用する。

これらの関係は以下の通り。 どの操作方法も、最終的にはREST APIをコールしている。

17

openstack

openstack clent library

CLI Dashboard Other Programs/Tools Direct Call

REST API

REST API REST API

Page 18: OpenStackをさらに”使う”技術 概要と基礎操作

Dashboard(Horizon)

コンポーネントの一つであるHorizonが提供する、Webのダッシュボードです。

簡易的な操作が一通り行えますが、複雑な作業はできません。

主に、コマンドラインやREST APIを利用して作成した環境の確認に利用します。

18

Page 19: OpenStackをさらに”使う”技術 概要と基礎操作

コマンドライン

OpenStackのコンポーネントに対応したコマンドです。代表的なコマンドは以下です。 nova

neutron

glance

cinder

keystone

swift

これらのコマンドはPythonのクライアントライブラリを含んでおり、導入するとこのライブラリも利用可能になります。

19

$ nova list

(見やすいように整形しています)+--------------------------------------+------------------+--------+------------+-------------+-----------------------------------------------+| ID | Name | Status | Task State | Power State | Networks |+--------------------------------------+------------------+--------+------------+-------------+-----------------------------------------------+| 5173dd67-abd0-41b5-b41f-ff89ed7e3311 | console | ACTIVE | - | Running | work-net=192.168.100.4, 157.1.141.210 || 75c6d969-fbb0-4082-a56c-f0532339d9ef | openstack-single | ACTIVE | - | Running | floating-net=172.16.100.100, || | | | | | 172.16.100.101, 172.16.100.102, || | | | | | 172.16.100.103, 172.16.100.104; || | | | | | work-net=192.168.100.10 |+--------------------------------------+------------------+--------+------------+-------------+-----------------------------------------------+

$ neutron net-list+--------------------------------------+--------------+-------------------------------------------------------+| id | name | subnets |+--------------------------------------+--------------+-------------------------------------------------------+| fc8869b7-aca1-4e06-84c0-94a831374753 | floating-net | 722ba04e-66db-4035-9da2-44b3edf95209 172.16.100.0/24 || 359235e4-7090-40f5-93dc-be105041d46a | work-net | a01624a3-c340-475b-b124-006fdc30bd11 192.168.100.0/24 || 63c67570-ba92-463a-b34c-2b9c1fff628c | public | a2f49fe1-ac9b-4189-86da-2ef24328a883 |+--------------------------------------+--------------+-------------------------------------------------------+

Page 20: OpenStackをさらに”使う”技術 概要と基礎操作

REST API

OpenStackが提供する最も基本の機能です。

それぞれのコンポーネントが独自のAPIサーバープロセスを持ち(nova-api, neutron-api等)、そのプロセスへREST形式のアクセスを行うことで、操作を行います。

以下は仮想マシンの一覧を取得する例です。 実行するとJSON形式の応答が返ります。

20

$ curl -g -i -X GET http://157.1.141.7:8774/v2/243f55729ce9487e933c1608c6673f6b/servers/detail -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}27c18d7e2b198f8b04eec2e8140f3e00d8c5931a"

{"servers": [{"status": "ACTIVE", "updated": "2015-11-18T06:33:08Z", "hostId": "a39630fb6d291f98e2ca123f727e816d4caaa6799d4eaa54f9079ced", "addresses": {"work-net": [{"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:65:39:84", "version": 4, "addr": "192.168.100.10", "OS-EXT-IPS:type": "fixed"}], "floating-net": [{"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:25:15:aa", "version": 4, "addr": "172.16.100.100", "OS-EXT-IPS:type": "fixed"}, {"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:25:15:aa", "version": 4, "addr": "172.16.100.101", "OS-EXT-IPS:type": "fixed"}, {"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:25:15:aa", "version": 4, "addr": "172.16.100.102", "OS-EXT-IPS:type": "fixed"}, {"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:25:15:aa", "version": 4, "addr": "172.16.100.103", "OS-EXT-IPS:type": "fixed"}, {"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:25:15:aa", "version": 4, "addr": "172.16.100.104", "OS-EXT-IPS:type": "fixed"}]}, "links": [{"href": "http://157.1.141.7:8774/v2/243f55729ce9487e933c1608c6673f6b/servers/6bfdf459-0519-46e0-b690-e1357cc6e25b", "rel": "self"}, {"href": "http://157.1.141.7:8774/243f55729ce9487e933c1608c6673f6b/servers/6bfdf459-0519-46e0-b690-e1357cc6e25b", "rel": "bookmark"}], "key_name": "my-key", "image": {"id": "a3d7276a-5c77-4c05-9919-1d16106a6fde", "links": [{"href": "http://157.1.141.7:8774/243f55729ce9487e933c1608c6673f6b/images/a3d7276a-5c77-4c05-9919-1d16106a6fde", "rel": "bookmark"}]}, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "OS-SRV-USG:launched_at": "2015-11-18T06:33:08.000000", "flavor": {"id": "4", "links": [{"href": "http://157.1.141.7:8774/243f55729ce9487e933c1608c6673f6b/flavors/4", "rel": "bookmark"}]}, "id": "6bfdf459-0519-46e0-b690-e1357cc6e25b", "security_groups": [{"name": "default"}, {"name": "default"}], "OS-SRV-USG:terminated_at": null, "OS-EXT-AZ:availability_zone": "nova", "user_id": "335b60ff72424ab4b387ed001729d26d", "name": "openstack-single", "created": "2015-11-18T06:32:58Z", "tenant_id": "243f55729ce9487e933c1608c6673f6b", "OS-DCF:diskConfig": "MANUAL", "os-extended-volumes:volumes_attached": [], "accessIPv4": "", "accessIPv6": "", "progress": 0, "OS-EXT-STS:power_state": 1, "config_drive": "", "metadata": {}}, {"status": "ACTIVE", "updated": "2015-11-16T16:57:25Z", "hostId": "3fa7ae0361a6f19fe2e1b22e0621191a7994e9ceed8c41d03a51dd50", "addresses": {"work-net": [{"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:d5:a2:92", "version": 4, "addr": "192.168.100.4", "OS-EXT-IPS:type": "fixed"}, {"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:d5:a2:92", "version": 4, "addr": "157.1.141.210", "OS-EXT-IPS:type": "floating"}]}, "links": [{"href": "http://157.1.141.7:8774/v2/243f55729ce9487e933c1608c6673f6b/servers/5173dd67-abd0-41b5-b41f-ff89ed7e3311", "rel": "self"}, {"href": "http://157.1.141.7:8774/243f55729ce9487e933c1608c6673f6b/servers/5173dd67-abd0-41b5-b41f-ff89ed7e3311", "rel": "bookmark"}], "key_name": "key-for-console", "image": {"id": "818afbad-6f61-462f-aade-1482b0312f85", "links": [{"href": "http://157.1.141.7:8774/243f55729ce9487e933c1608c6673f6b/images/818afbad-6f61-462f-aade-1482b0312f85", "rel": "bookmark"}]}, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "OS-SRV-USG:launched_at": "2015-11-16T16:57:25.000000", "flavor": {"id": "2", "links": [{"href": "http://157.1.141.7:8774/243f55729ce9487e933c1608c6673f6b/flavors/2", "rel": "bookmark"}]}, "id": "5173dd67-abd0-41b5-b41f-ff89ed7e3311", "security_groups": [{"name": "default"}], "OS-SRV-USG:terminated_at": null, "OS-EXT-AZ:availability_zone": "nova", "user_id": "335b60ff72424ab4b387ed001729d26d", "name": "console", "created": "2015-11-16T16:56:41Z", "tenant_id": "243f55729ce9487e933c1608c6673f6b", "OS-DCF:diskConfig": "AUTO", "os-extended-volumes:volumes_attached": [], "accessIPv4": "", "accessIPv6": "", "progress": 0, "OS-EXT-STS:power_state": 1, "config_drive": "", "metadata": {"role": "console-server"}}]}

Page 21: OpenStackをさらに”使う”技術 概要と基礎操作

OpenStackが提供する機能

ユーザーはプロジェクト(テナント)に属します。

ユーザーはプロジェクトに与えられたクォータ内で自由な環境を構築することができます。 仮想マシン(もしくはベアメタルサーバー)

仮想ネットワーク、仮想ルーター

ブロックストレージ、バックアップ、スナップショット

イメージ操作、バックアップ

他のOpenStackプロジェクトを組み込むと更に多数の機能が利用可能になります。

21

プロジェクトA プロジェクトB

仮想ルーター

仮想ネットワーク

仮想サーバー(or ベアメタルサーバー)

ブロックストレージ

外部ネットワーク

Page 22: OpenStackをさらに”使う”技術 概要と基礎操作

キーペア

事前に作成したキーペアの公開鍵を、起動するインスタンスへ設定する機能です。

シンプルな機能ですが、自動化の実現とセキュリティを確保する上で極めて重要な機能になります。 10台程度までは毎回ログインすることも可能かもしれませんが、100台、

200台となった場合には手動での作業はオーバーヘッドが大きくなりすぎてしまいます。

22

novaに登録された公開鍵をインスタンス作成時に自動設定

ペアとなる秘密鍵を持つユーザ、もしくはプログラムは、認証情報を知らなくてもログインして各種操作が可能

Page 23: OpenStackをさらに”使う”技術 概要と基礎操作

userdata

起動するインスタンスに対して、実行するスクリプトを与えることができます。 既にここまでの演習でも利用しています。

様々なスクリプトを準備しておくことで、起動時に共通の設定等を入れ込む事が可能になります。 環境を作成しなおす場合にも、このスクリプトに設定項目を記述しておくことで、何度でも作りなおしが可能です。

設定できる形式は、従来のシェルスクリプト形式と、cloud-config形式が選択できます。 同時に利用することもできます。その場合はMIMEのマルチパート形式で2つを結合したファイルを起動時に与えます。

与えたファイルは、後述するcloud-initから実行されます。

23

[fedora@console ~]$ nova boot --flavor m1.large --image "CentOS7-1509" ¥--user-data userdata_pre_openstack.txt ¥--key-name my-key --security-groups open_all ¥--nic port-id=${PORTID1} --nic port-id=${PORTID2} openstack-single

#!/bin/bashsetenforce 0sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

dnf update -y -qLANG=C dnf groupinstall -y -q "LXDE Desktop"LANG=C dnf groupinstall -y japanese-supportLANG=C dnf langinstall -y ja_JPdnf install -y firefox vimdnf install -y git

#cloud-configpassword: passwordchpasswd: { expire: False }ssh_pwauth: True

cloud-config 形式はyaml形式で定義されたコマンドとデータを記述していきます。

詳細についてに公式ドキュメントを参照ください。https://cloudinit.readthedocs.org/en/latest/

Page 24: OpenStackをさらに”使う”技術 概要と基礎操作

metadata

インスタンスに対して特定のデータを与えることが可能です。 key=value形式でデータを与えます。

インスタンス内部から http://169.254.169.254/ へアクセスすることでいつでもデータが参照できます。

典型的な使い方として、1台目にDBサーバーを起動して、2台目にAPサーバーを起動する際に、APサーバーに対して接続先のDBサーバーIPを与える、といった利用方法があります。

前述のuserdataと合わせるて、高度な自動化が可能となります。 またuserdata自身もmetadataの一部として格納されています。

24

DBサーバーIP

APサーバーの設定ファイル

DBサーバーIP

DBサーバーIP

APサーバーの設定ファイル

DBサーバーIP

人が設定を確認 手動で設定 APIからIPを受け取る

metadataにIPをセットして起動

DBサーバーIP

metadataサーバ

userdataのスクリプトで値を受け取って設定

Page 25: OpenStackをさらに”使う”技術 概要と基礎操作

config-drive

config-driveを利用すると、metadataサーバーに与えたデータをディスク経由で受け取る事が可能です。 ディスク領域としてOSにマウントされます。

metadataはkey=valueのデータしか与えられませんが、config-driveにはファイルを直接格納してインスタンスに渡すことも可能です。

config-driveはインスタンス内でネットワーク設定で行われる前にデータ参照が可能となるため、ネットワーク設定そのものを操作する場合に利用する事が可能です。

その他、直接ファイルを渡せるため、スクリプトでファイルを生成するのが難しい(数が多くて大変な)ケースでも利用できます。

25

metadataサーバ

config-drive

http://169.254.169.254

同じデータが参照可能

ファイルを直接渡すことも可能。

Page 26: OpenStackをさらに”使う”技術 概要と基礎操作

cloud-init

OpenStackの標準機能ではありませんが、クラウド上でインスタンスの各種初期設定を行うためのデファクトパッケージです。 RH系Linuxや、Ubuntu、Windows等で幅広く動作します。

インスタンスが初回起動されたのか、2回目の起動なのか?もしくは複製された環境なのか、を判断してスクリプトの実行等を制御します。 Metadataと連携して動作します。

userdataの実行もcloud-initにより実行されています。

デフォルトの動作は、/etc/cloud/cloud.cfgで定義されています。

26

users:- default

disable_root: 1ssh_pwauth: 0

mount_default_fields: [~, ~, 'auto', 'defaults,nofail', '0', '2']resize_rootfs_tmp: /devssh_deletekeys: 0ssh_genkeytypes: ~syslog_fix_perms: ~

cloud_init_modules:- migrator- bootcmd- write-files- growpart- resizefs- set_hostname- update_hostname- update_etc_hosts- rsyslog- users-groups- ssh

cloud_config_modules:- mounts- locale- set-passwords- yum-add-repo

~~~(省略)~~~

Page 27: OpenStackをさらに”使う”技術 概要と基礎操作

自動化の重要性

27

Page 28: OpenStackをさらに”使う”技術 概要と基礎操作

インフラコストと人件費

インフラリソースの単価が下がり続ける事で、使用されるリソース量は増加の一途

一方で、そのリソースを制御する人件費は、リソース量に比例して増加してしまう。

自然な考え方として、「インフラの操作を自動化してコストを削減できないか?」という発想が生まれ定着しつつある。

28

$ $ $$ $

$ $$ $

メインフレーム オープン クラウド

Page 29: OpenStackをさらに”使う”技術 概要と基礎操作

自動化のメリット

自動化することで様々なメリットが得られます。

特に繰り返しや品質の向上という人間では限界のある作業に対して、効果を発揮します。

自動化によって、従来はコスト的に難しかった事が実現可能になります。

本番環境と同一な開発環境、テスト環境、検証環境

29

同じ作業の繰り返しでもコストが発生 1度自動化すれば同じ作業はコスト0

作業者の気分や状態に品質が依存する 何度繰り返しても同じ結果が得られる

作業ミスの再発防止が困難(2重チェック?3重チェック??)

ミスの特定と対策が明確

変更履歴の管理が困難 変更履歴の管理が容易

Page 30: OpenStackをさらに”使う”技術 概要と基礎操作

自動化のデメリット

一方で自動化のデメリットも存在しています。 自動化の仕組みを作りこむ必要がある。

単純な追加コストとして発生します。

標準化されていない環境での自動化は高コスト。 作りこみに手間がかかる 再利用性が低い

30

自動化の作り込みに必要なコ

スト

自動化によって削減可能なコ

スト

自動化の作り込みに必要なコ

スト

自動化によって削減可能なコ

スト

自動化の作り込みに必要なコ

スト

自動化によって削減可能なコ

スト

自動化の効果が薄い

自動化の効果が高い

Page 31: OpenStackをさらに”使う”技術 概要と基礎操作

適用シーン

より大規模に利用する。

31

業務A用自動化プログラム

業務B用自動化プログラム

業務C用自動化プログラム

業務A用手順書

業務B用手順書

業務C用手順書

業務A 業務B 業務C 業務A 業務B 業務C

openstack

業務ABC共通自動化プログラム

業務A 業務B 業務C

openstack

手動作業 手動作業をそのまま自動化 標準化して自動化

Page 32: OpenStackをさらに”使う”技術 概要と基礎操作

適用シーン

ライフサイクル全体に適用する。

32

開発用自動化プログラム

本番用自動化プログラム

運用用自動化プログラム

開発用手順書

本番用手順書

運用用手順書

開発 本番 運用

openstack

開発本番運用共通自動化プログラム

openstack

手動作業 手動作業をそのまま自動化 標準化して自動化

開発 本番 運用 開発 本番 運用

Page 33: OpenStackをさらに”使う”技術 概要と基礎操作

OpenStackの効用

自動化をより大規模に、ライフサイクル全体で、標準化して利用することで効果を最大化できます。

33

開発 本番 運用

システムA

システムB

システムC

・・・

Page 34: OpenStackをさらに”使う”技術 概要と基礎操作

構築に含まれる要素

環境を構築するという作業を分解していくと、下図のように分類できます。 仮想マシンや仮想ネットワークを構成し、そこでOpenStackから戻る値(IPアドレス)等を利用して、アプリケーション内部の設定を行っていきます。

更にこれらが、複数インスタンスに渡るような場合は、受け渡すデータが増えて複雑化していきます。

34

インフラリソースを構成する

アプリケーションを構成する

構成された仮想マシンの情報を渡す

クラウド基盤に対する操作 仮想マシン上での操作

Page 35: OpenStackをさらに”使う”技術 概要と基礎操作

更なる効率化

クラウドに対する操作も、アプリケーションに対する操作も、両方を行えるツールを利用することで、データを受け渡しを簡略化し、更に高度な自動化が実現可能です。

35

インフラリソースを構成する

アプリケーションを構成する

構成された仮想マシンの情報を渡す

クラウド基盤に対する操作 仮想マシン上での操作

外部ツール

Page 36: OpenStackをさらに”使う”技術 概要と基礎操作

各種ツールの特性

様々なツールが存在していますが、絶対的にどれが優れているというのはありません。

ツールごとに根底の思想があり、その思想に適合した使い方をすればとても有益ですが、思想に反した使い方をするととても使いにくくなります。

やりたいこと、実現したいことに合わせてツールを選択することが重要です。

36

Page 37: OpenStackをさらに”使う”技術 概要と基礎操作

演習 踏み台サーバーの作成

画面の確認と操作方法

リソースの作成(ネットワーク、ボリューム)

UserdataとMetadataを使った自動化

後片付け(次の演習に向けて)

37

Page 38: OpenStackをさらに”使う”技術 概要と基礎操作

踏み台サーバーの準備

38

Page 39: OpenStackをさらに”使う”技術 概要と基礎操作

演習の概要

OpenStackのダッシュボードを操作して自分用の踏み台サーバーを構築します。

コマンドラインを利用して簡単なサーバー構築を行います。 OpenStackの基本機能を用いた自動化に挑戦します。

39

Page 40: OpenStackをさらに”使う”技術 概要と基礎操作

サポート環境へのアクセス

講師の指示するアドレスへブラウザでアクセスしてください。

アクセス先にOpenStackのダッシュボードアドレスと、ログイン情報が確認できます。

40

http://192.168.253.48/p/ood2015

Page 41: OpenStackをさらに”使う”技術 概要と基礎操作

環境へのログイン

OpenStackのダッシュボードへログインしてください。

41

ログイン画面 ログイン後初期画面

Page 42: OpenStackをさらに”使う”技術 概要と基礎操作

初期状態の確認

初期状態では、外部ネットワークに接続された1つの仮想ルーターExt-Routerと、この仮想ルーターへ接続された、テナントネットワーク work-net が存在しています。 確認できない方は講師に連絡してください。

42

Page 43: OpenStackをさらに”使う”技術 概要と基礎操作

仮想マシン作成の準備

作成する仮想マシンへ設定するキーペアを準備します。

43

(3)Create Key Pair を選択

(4)key-for-step を入力

(5)Create Key Pair を選択

(2)Key Pairs を選択

(1)Access & Security を選択

Page 44: OpenStackをさらに”使う”技術 概要と基礎操作

仮想マシン作成の準備

作成する仮想マシンへ設定するキーペアを準備します。

44

作成したキーペアの秘密鍵のダウンロードが始まります。後で使いますのでわかりやすい場所に保存しておいてください。秘密鍵は再ダウンロード出来ませんのでご注意ください。

Page 45: OpenStackをさらに”使う”技術 概要と基礎操作

仮想マシンを作成

仮想マシンを作成していきます。

45

(1)Instances を選択

(2)Launch Instance を選択

Page 46: OpenStackをさらに”使う”技術 概要と基礎操作

インスタンスのパラメーター1

以下に従い、パラメーターの指定と確認を行います。

46

step-server を入力

m1.small を選択

Boot from image を選択

CentOS7 を選択

Page 47: OpenStackをさらに”使う”技術 概要と基礎操作

インスタンスのパラメーター2

以下に従い、パラメーターの指定と確認を行います。

47

key-for-step を選択

default にチェックを入れる

Selected networks に work-net が含まれている事を確認

Access & Security を選択

Networking を選択

Page 48: OpenStackをさらに”使う”技術 概要と基礎操作

インスタンスのパラメーター3

以下に従い、パラメーターの指定と確認を行います。

48

Direct Input を選択

以下を入力

#!/bin/bashecho "Hello World" > /hello.txt

Launch を押下

Post-Creation を選択

Page 49: OpenStackをさらに”使う”技術 概要と基礎操作

作成したインスタンスの確認

インスタンスの作成に成功すると、作成したインスタンスの状態がACTIVEになります。

49

Page 50: OpenStackをさらに”使う”技術 概要と基礎操作

Floating IPの割当て

作成したインスタンスは、OpenStack内部のネットワーク接続

されており、このままでは外部からアクセスすることができません。

そこで、踏み台サーバーへFloating IP を割当てて外部からのアクセスを可能にします。

50

Associate Floating IPを選択

Page 51: OpenStackをさらに”使う”技術 概要と基礎操作

Floating IPの割当て

51

+ を押下

ext-net_1214 を選択

Allocate IP を押下

IPアドレスが取得されていることを確認(アドレスは毎回かわります)

Associate を押下

Page 52: OpenStackをさらに”使う”技術 概要と基礎操作

Floating IPの割当てを確認

Floating IPの割当てに成功すると、インスタンスの一覧から割り当てたアドレスが確認できます。

52

Instances を選択して、リロード

先ほど割り当てたIPが確認できるはずです。

Page 53: OpenStackをさらに”使う”技術 概要と基礎操作

インスタンスへのアクセス

作成したインスタンスへSSHでアクセスします。

先ほどダウンロードしたSSH秘密鍵を使って、Floating IPのアドレスへ接続してください。 ログインユーザ名は centos になります。

ログインが成功したら、pre-script で実行したファイルを確認します。

Puttyはpem形式の秘密鍵を利用できませんので、以下の手順を参考に鍵の形式を変換してください。 http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/putty.html

以下はアクセス例になります。

53

$ ssh -i key-for-step.pem [email protected] authenticity of host '192.168.253.96 (192.168.253.96)' can't be established.ECDSA key fingerprint is SHA256:W1Dt5pJyKsu3eBfy9b5/ayamLgf0LEq/jSByo1PEo5Y.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.253.96' (ECDSA) to the list of known hosts.

[centos@step-server ~]$ hostnamestep-server

[centos@step-server ~]$ cat /hello.txtHello World

先ほど入力したスクリプトが実行されていることが確認できます。

Page 54: OpenStackをさらに”使う”技術 概要と基礎操作

OpenStackクライアント環境の整備

作成した踏み台サーバーから各種OpenStackコマンドを実行できるようにします。

54

[centos@step-server ~]$ sudo -i[root@step-server ~]# curl 157.7.53.150/ip_addr.txt >> /etc/hosts

[root@step-server ~]# mkdir -p /root/temp[root@step-server ~]# mv /etc/yum.repos.d/* /root/temp[root@step-server ~]# cd /etc/yum.repos.d[root@step-server yum.repos.d]# curl -o /etc/yum.repos.d/edubase-liberty.repo http://reposerver/repo/7/edubase-liberty.repo

[root@step-server yum.repos.d]# yum clean all[root@step-server yum.repos.d]# yum repolist

[root@step-server yum.repos.d]# yum install python-openstackclient python-novaclient python-cinderclient ¥python-neutronclient python-glanceclient python-keystoneclient

[root@step-server yum.repos.d]# exit

[centos@step-server ~]$ vi openrc

export OS_REGION_NAME=RegionOneexport OS_AUTH_URL=http://10.1.253.203:5000/v2.0export OS_TENANT_NAME=opst-project-xxxxexport OS_USERNAME=student-xxxxexport OS_PASSWORD=pass-xxxx

演習用のリポジトリを設定します。

OpenStackクライアントを導入します。

xxxx 部分は自分のユーザー番号と読み替えてください。

Page 55: OpenStackをさらに”使う”技術 概要と基礎操作

コマンドのテスト

踏み台サーバーからコマンドが実行できるかを確認します。

55

[centos@step-server ~]$ source openrc

[centos@step-server ~]$ nova list+--------------------------------------+-------------+--------+------------+-------------+---------------------------------------+| ID | Name | Status | Task State | Power State | Networks |+--------------------------------------+-------------+--------+------------+-------------+---------------------------------------+| a6a0b553-45ca-41e8-8cf9-4077fa02e5d9 | step-server | ACTIVE | - | Running | work-net=172.16.100.2, 192.168.253.96 |+--------------------------------------+-------------+--------+------------+-------------+---------------------------------------+

[centos@step-server ~]$ neutron net-list+--------------------------------------+--------------+------------------------------------------------------+| id | name | subnets |+--------------------------------------+--------------+------------------------------------------------------+| 6c72bb66-7173-4900-9388-9a077428ade8 | ext-net_1215 | 7d6556ac-5218-4bb4-980d-e8e65e2e969b || ed033537-3073-4801-bcc2-b4694314979c | ext-net_1214 | be6f2a33-b9e8-4e93-b492-909ed45bc9cb || cbec6b58-4de0-4491-98c3-fdaad6ae5f34 | work-net | e551a592-a6b1-4d27-8ee7-b606d0522b94 172.16.100.0/24 |+--------------------------------------+--------------+------------------------------------------------------+

先ほど作成した環境変数ファイルを読み込みます。

この二つのコマンドがエラーなく実行できれば導入は成功しています。

Page 56: OpenStackをさらに”使う”技術 概要と基礎操作

画面の確認と操作方法

56

Page 57: OpenStackをさらに”使う”技術 概要と基礎操作

演習の概要

OpenStackのダッシュボードで行える操作を体験していきます。

57

Page 58: OpenStackをさらに”使う”技術 概要と基礎操作

Overview

テナント内の利用状況を確認できます。

テナントにはクォータが設定されており、そのクォータに対して、どの程度のリソースを消費しているかを確認できます。

58

選択

Page 59: OpenStackをさらに”使う”技術 概要と基礎操作

Instances

インスタンスの一覧を確認できます。

ここでは起動したインスタンスの状態や、割当てられたIPが確認できます。

また、各インスタンスの削除や、コンソールの確認、起動ログの確認といった操作が行えます。

59

選択

操作メニューの表示

Page 60: OpenStackをさらに”使う”技術 概要と基礎操作

Volumes

作成したボリューム一覧の確認と、ボリュームに対する各種操作が行えます。

今回はまだボリュームは作成されていません。

60

選択

Page 61: OpenStackをさらに”使う”技術 概要と基礎操作

Images

利用できるイメージの一覧が確認できます。

ここには、作成したインスタンスのスナップショットも表示されます。

61

選択

Page 62: OpenStackをさらに”使う”技術 概要と基礎操作

Access & Security

セキュリティグループの一覧です。セキュリティグループは簡易的なファイアーウォールを提供しています。 defaultはテナント作成時に自動で作成され、今回の環境ではSSH, HTTP通信が許可されるように、管理者によって設定されます。

キーペアは既に利用した公開鍵と秘密鍵の管理機能です。

62

選択

選択

Page 63: OpenStackをさらに”使う”技術 概要と基礎操作

Access & Security

取得したFloating IPの一覧を確認、操作可能です。

またAPIのエンドポイントの確認と、コマンドラインを実行するための環境変数設定ファイル等のダウンロードが可能です。

63

選択

選択

Page 64: OpenStackをさらに”使う”技術 概要と基礎操作

Network Topology

ネットワークの接続や全体概要を確認できます。

各オブジェクトをクリックすると、そのオブジェクトの詳細を確認可能です。

今回の環境では、外部ネットワークに接続された仮想ルーターと、この仮想ルーターに接続された1つの仮想ネットワークが確認できます。さらに、仮想ネットワークには先程作成した踏み台サーバーが接続されています。

64

選択

Page 65: OpenStackをさらに”使う”技術 概要と基礎操作

Networks

作成した仮想ネットワークの確認と操作が行えます。

今回の work-net は講師によって作成されています。

65

選択

Page 66: OpenStackをさらに”使う”技術 概要と基礎操作

Routers

作成した仮想ルーターと操作が行えます。

Ext-Routerは講師によって作成されています。

66

選択

Page 67: OpenStackをさらに”使う”技術 概要と基礎操作

リソースの作成 ネットワーク

ボリューム

67

Page 68: OpenStackをさらに”使う”技術 概要と基礎操作

仮想ネットワークの作成

OpenStackではユーザが自由に仮想ネットワークを構築できます。 他のユーザとアドレス帯やIPアドレスそのものが重複していても問題はありません。

Neutronの仮想ネットワーク機能が、個々のネットワークを隔離してくれるためです。

68

選択

Page 69: OpenStackをさらに”使う”技術 概要と基礎操作

仮想ネットワークの作成

172.16.200.0/24 のサブネットを持つ my-network を作成します。

69

my-network を入力

Next を押下

my-subnet を入力

172.16.200.0/24 を入力

172.16.200.254 を入力

Next を押下

Page 70: OpenStackをさらに”使う”技術 概要と基礎操作

仮想ネットワークの作成

入力内容に問題がなければ仮想ネットワークが作成できます。

このネットワークは自分のテナント内専用で、他のテナントユーザーから利用されることはありません。

70

何も入力しません。ここでは必要に応じで、DHCPのON/OFFや、サブネットアドレス帯の利用できるアドレスの範囲、DHCPで割り当てるDNSサーバーアドレス等を指定できます。

Create を押下

Page 71: OpenStackをさらに”使う”技術 概要と基礎操作

仮想ボリュームの作成

続いて仮想ボリュームを作成してインスタンスへ接続します。

71

選択

Page 72: OpenStackをさらに”使う”技術 概要と基礎操作

仮想ボリュームの作成

1GBの新規ボリュームを作成します。

72

my-vol を入力

1 を入力

Page 73: OpenStackをさらに”使う”技術 概要と基礎操作

仮想ボリュームの作成

作成したボリュームをインスタンスへ接続します。

73

Manage Attachment を選択

step-server を選択

Attach Volumeを選択

Page 74: OpenStackをさらに”使う”技術 概要と基礎操作

仮想ボリュームの作成

接続したボリュームをインスタンスから確認してみます。

OSからは、このボリュームは通常のディスクとして操作可能です。

74

$ ssh -i key-for-step.pem [email protected][centos@step-server ~]$ sudo -i

[root@step-server ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTvda 253:0 0 20G 0 disk└─vda1 253:1 0 20G 0 part /vdb 253:16 0 1G 0 disk

[root@step-server ~]# mkfs.ext4 /dev/vdb[root@step-server ~]# mkdir -p /mnt/cinder[root@step-server ~]# mount /dev/vdb /mnt/cinder[root@step-server ~]# cp /etc/hosts /mnt/cinder/[root@step-server ~]# ls -alF /mnt/cinder/total 24drwxr-xr-x. 3 root root 4096 Dec 10 05:10 ./drwxr-xr-x. 3 root root 19 Dec 10 05:10 ../-rw-r--r--. 1 root root 184 Dec 10 05:10 hostsdrwx------. 2 root root 16384 Dec 10 05:10 lost+found/

踏み台サーバーへ接続し、rootユーザーとして操作します。

接続したディスクが認識していることが確認できます。

ディスクをフォーマットし、マウントした後にファイルをコピーしています。

ディスクが機能していることが確認できます。

Page 75: OpenStackをさらに”使う”技術 概要と基礎操作

Userdata とMetadata を利用した簡単な自動化

75

Page 76: OpenStackをさらに”使う”技術 概要と基礎操作

概要

ここでは、Etherpad環境をUserdata, Metadaの2つを使って自動構築を試してみます。

既に自動化のスクリプトは作成済みですので、スクリプトを実行しながら、中身を見ていきます。

76

Page 77: OpenStackをさらに”使う”技術 概要と基礎操作

自動構築の実行

スクリプトをダウンロードして実行します。

77

[centos@step-server ~]$ curl -o 1st_etherpad.sh http://reposerver/handson/20151214-ood2015/1st_etherpad.sh[centos@step-server ~]$ bash 1st_etherpad.sh

[centos@step-server ~]$ watch -n 10 nova console-log --length 30 my-etherpad

cloud-init[728]: ci-info: | 1 | 169.254.169.254 | 172.16.100.254 | 255.255.255.255 | eth0 | UGH |cloud-init[728]: ci-info: | 2 | 172.16.100.0 | 0.0.0.0 | 255.255.255.0 | eth0 | U |cloud-init[728]: ci-info: +-------+-----------------+----------------+-----------------+-----------+-------+

CentOS Linux 7 (Core)Kernel 3.10.0-229.14.1.el7.x86_64 on an x86_64

my-etherpad login: cloud-init[2153]: Cloud-init v. 0.7.5 running 'modules:config' at Wed, 09 Dec 2015 05:29:52 +0000. Up 14.64 seconds.cloud-init[2159]: Cloud-init v. 0.7.5 running 'modules:final' at Wed, 09 Dec 2015 05:29:52 +0000. Up 15.00 seconds.ci-info: ++++++++++Authorized keys from /home/centos/.ssh/authorized_keys for user centos+++++++++++ci-info: +---------+-------------------------------------------------+---------+-------------------+ci-info: | Keytype | Fingerprint (md5) | Options | Comment |ci-info: +---------+-------------------------------------------------+---------+-------------------+ci-info: | ssh-rsa | 45:71:8e:61:e6:97:e4:e3:2a:93:05:16:06:a9:e0:2d | - | Generated-by-Nova |ci-info: +---------+-------------------------------------------------+---------+-------------------+ec2:ec2: #############################################################ec2: -----BEGIN SSH HOST KEY FINGERPRINTS-----ec2: 256 5f:1c:9e:9e:14:41:d2:5c:58:47:1c:04:f2:cf:4c:d5 (ECDSA)ec2: 256 5c:89:e2:6b:e6:9b:69:75:a9:b5:89:3f:c8:c7:74:c1 (ED25519)ec2: 2048 79:50:f3:5c:4e:84:f4:a8:8f:b7:1f:cd:eb:c1:59:c8 (RSA)ec2: -----END SSH HOST KEY FINGERPRINTS-----ec2: #############################################################-----BEGIN SSH HOST KEY KEYS-----ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIscyNoBmrlBVsixmbFuhZAnWVyptnDp5Fc8wCAYioHDef/bcnJn/mcCfUIQKh5XnOokJcakTik5vFWBnxbNhQA=ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF/2a4golvNQR7ClJ/56Wj3OqDcspazu7oTxOtQQrjgnssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQDr4yzecpdEAcnWviij17I1FAsg6avhoSHy9NIMjPvXdc1T3ALOYOhj1JJH0WCFlXV9EFSgpY5O2cIJiWMx+y5NH72Oh/2dfOyl+ViN8yvF6DA76h/jJUli1y8rh600eZO9i6oyY6BNehIBgJiUohlJB1OLL4t/Gb8fH2w/7tj6RvhmHMNJrbjF8+JViUT4tlrP55hHRnanPb8rl9La4Uz/iZtYU8GljpduCFcum0iepUy/pBXy6GKHPp1RRfMpCQXUw+HsywRpSZTGrQ7kO+kz+/B+J4X78zC2ju5sY6qbf4peafyR3DBpRTDooKbiJrNh7dtnXl3ZFLbl8GzksKrR-----END SSH HOST KEY KEYS-----cloud-init[2159]: Cloud-init v. 0.7.5 finished at Wed, 09 Dec 2015 05:29:53 +0000. Datasource DataSourceOpenStack [net,ver=2]. Up 15.24 seconds

スクリプトが完了したら、起動したインスタンスの状態を表示します。

ログインプロンプトが表示されたら完了です。

Page 78: OpenStackをさらに”使う”技術 概要と基礎操作

構築の確認

スクリプトが完了したらブラウザで割当てられたFloating IPを確認し、ブラウザでアクセスしてください。

問題がなければ、Etherpad の初期画面が表示されます。

78

[centos@step-server ~]$ nova list+--------------------------------------+-------------+--------+------------+-------------+---------------------------------------+| ID | Name | Status | Task State | Power State | Networks |+--------------------------------------+-------------+--------+------------+-------------+---------------------------------------+| 570d141c-a15d-48af-b939-67b59a98f2ea | my-etherpad | ACTIVE | - | Running | work-net=172.16.100.3, 192.168.253.98 || a6a0b553-45ca-41e8-8cf9-4077fa02e5d9 | step-server | ACTIVE | - | Running | work-net=172.16.100.2, 192.168.253.96 |+--------------------------------------+-------------+--------+------------+-------------+---------------------------------------+

インスタンスへ割当てられているFloating IPを確認します。

Page 79: OpenStackをさらに”使う”技術 概要と基礎操作

スクリプトの解説

79

#!/bin/bash

function if_error_exit() { echo "Error: $1"; exit 1; }function get_uuid () { cat - | grep " id " | awk '{print $4}'; }

source openrc || if_error_exit

curl -o userdata_etherpad_centos7.txt http://reposerver/handson/20151214-ood2015/userdata_etherpad_centos7.txt

nova list || if_error_exit

echo "新たなキーペア key-for-etherpad を作成します"nova keypair-add key-for-etherpad | tee key-for-etherpad.pemchmod 600 key-for-etherpad.pem

echo "Floaitng IPを取得します"export FIP=`nova floating-ip-create ext-net_1214 | grep ext-net_1214 |grep "[0-9]¥+¥.[0-9]¥+¥.[0-9]¥+¥.[0-9]¥+" | awk -e '{print $4}'`echo ${FIP}

sleep 3

echo "使用するネットワーク work-net のUUIDを取得します"export MY_WORK_NET=`neutron net-show work-net | get_uuid`echo ${MY_WORK_NET}

echo "インスタンスを起動します"nova boot --flavor m1.small --image "CentOS7" ¥--key-name key-for-etherpad --security-groups default ¥--nic net-id=${MY_WORK_NET} ¥--user-data userdata_etherpad_centos7.txt ¥--meta fip=${FIP} ¥my-etherpad~~~~(省略)~~~~

このスクリプトではOpenStackコマンドを実行するので、最初に環境変数を読み込みます。

インスタンス起動時に与える userdata をダウンロードしています。

Floating IPを取得し、変数FIPに格納しています。

インスタンス起動時に、先ほどダウンロードしたuserdataを指定し、更に metadata fip に 変数FIPの内容をセットしています。これでインスタンス起動時に、userdata_etherpad_centos7.txt が実行されます。

1st_etherpad.sh

Page 80: OpenStackをさらに”使う”技術 概要と基礎操作

スクリプトの解説

80

~~~~(省略)~~~~## NginxFIP=`curl -S -s http://169.254.169.254/openstack/latest/meta_data.json | python -c "import json,sys; print json.load(sys.stdin).get('meta').get('fip')"`

cat << EOF > /etc/nginx/conf.d/eplite.confserver {

listen 80;server_name ${FIP};

access_log /var/log/nginx/eplite.access.log;error_log /var/log/nginx/eplite.error.log;

location / {proxy_pass http://localhost:9001/;proxy_set_header Host ¥$host;proxy_pass_header Server;proxy_buffering off;proxy_set_header X-Real-IP ¥$remote_addr;proxy_set_header Host ¥$host;proxy_http_version 1.1;proxy_set_header Upgrade ¥$http_upgrade;proxy_set_header Connection ¥$connection_upgrade;

}}

map ¥$http_upgrade ¥$connection_upgrade {default upgrade;'' close;

}EOF

systemctl enable nginx.servicesystemctl start nginx.service~~~~(省略)~~~~

userdata_etherpad_centos7.txt

Metadataサーバーへアクセスし、fipの値を取り出しています。JSON形式のデータが返されるので、Pythonの標準モジュールを利用してパースしてからデータを取り出しています。

Nginxの設定ファイルを生成しています。ここでは、FIPに対してアクセスするリクエストを、http://localhost:9001/へ転送する設定を行っています。

http://localhost:9001/ は Enterpadが起動しているポートになります。

Page 81: OpenStackをさらに”使う”技術 概要と基礎操作

まとめ

このように、簡単な環境であればOpenStack標準機能のみで自動化が可能です。

しかし、サーバー台数が2台、3台と増えていくに従い、標準機能だけでの構築は難しくなってきます。

そのような場合には、OpenStackと連携する自動化支援ツー

ル等を活用することで、よりシンプルに環境構築が可能となります。

パート2以降では、OpenStackと周辺ツールと連携した例について見ていきます。

81

Page 82: OpenStackをさらに”使う”技術 概要と基礎操作

後片付け(次の演習に向けて)

82

Page 83: OpenStackをさらに”使う”技術 概要と基礎操作

続く演習を行うために

踏み台サーバーの導入と、OpenStackクライアントコマンドの導入までは完了しているひつようがあります。 踏み台サーバーから nova list や、 neutron net-list 等が実行可能になっている状態

余分なリソースを削除しておきます。

83

[centos@step-server ~]$ nova list+--------------------------------------+-------------+--------+------------+-------------+---------------------------------------+| ID | Name | Status | Task State | Power State | Networks |+--------------------------------------+-------------+--------+------------+-------------+---------------------------------------+| 570d141c-a15d-48af-b939-67b59a98f2ea | my-etherpad | ACTIVE | - | Running | work-net=172.16.100.3, 192.168.253.98 || a6a0b553-45ca-41e8-8cf9-4077fa02e5d9 | step-server | ACTIVE | - | Running | work-net=172.16.100.2, 192.168.253.96 |+--------------------------------------+-------------+--------+------------+-------------+---------------------------------------+[centos@step-server ~]$ nova delete my-etherpadRequest to delete server my-etherpad has been accepted.

[centos@step-server ~]$ nova floating-ip-list+--------------------------------------+----------------+--------------------------------------+--------------+--------------+| Id | IP | Server Id | Fixed IP | Pool |+--------------------------------------+----------------+--------------------------------------+--------------+--------------+| 84c1d28e-37f9-4952-94ef-4a95bac5b1b1 | 192.168.253.96 | a6a0b553-45ca-41e8-8cf9-4077fa02e5d9 | 172.16.100.2 | ext-net_1214 || 8c958b30-24c0-49bd-92a9-3521c528abb8 | 192.168.253.98 | - | - | ext-net_1214 |+--------------------------------------+----------------+--------------------------------------+--------------+--------------+[centos@step-server ~]$ nova floating-ip-delete 192.168.253.98

[centos@step-server ~]$ nova list+--------------------------------------+-------------+--------+------------+-------------+---------------------------------------+| ID | Name | Status | Task State | Power State | Networks |+--------------------------------------+-------------+--------+------------+-------------+---------------------------------------+| a6a0b553-45ca-41e8-8cf9-4077fa02e5d9 | step-server | ACTIVE | - | Running | work-net=172.16.100.2, 192.168.253.96 |+--------------------------------------+-------------+--------+------------+-------------+---------------------------------------+

[centos@step-server ~]$ nova floating-ip-list+--------------------------------------+----------------+--------------------------------------+--------------+--------------+| Id | IP | Server Id | Fixed IP | Pool |+--------------------------------------+----------------+--------------------------------------+--------------+--------------+| 84c1d28e-37f9-4952-94ef-4a95bac5b1b1 | 192.168.253.96 | a6a0b553-45ca-41e8-8cf9-4077fa02e5d9 | 172.16.100.2 | ext-net_1214 |+--------------------------------------+----------------+--------------------------------------+--------------+--------------+

先ほど作成したインスタンスを削除しておきます。

1つのインスタンス、1つのFloating IPという状態にしておきます。

Page 84: OpenStackをさらに”使う”技術 概要と基礎操作

84

Part1は以上になります