Recommended
PDF
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
PPTX
PDF
OpenStackをコマンドで攻める! 構築・運用とトラブル解決 - OpenStack最新情報セミナー 2014年6月
PDF
Apache Hadoop YARNとマルチテナントにおけるリソース管理
PDF
Linux-HA Japanプロジェクトのこれまでとこれから
PDF
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
PDF
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
PPTX
PDF
PPTX
OVN 設定サンプル | OVN config example 2015/12/27
PDF
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PDF
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
PDF
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
PPTX
PDF
OpenStack超入門シリーズ Novaのディスク周りあれこれ
PDF
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
PPT
PPTX
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
PDF
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
PDF
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
PPTX
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
PPTX
PDF
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack入門
PDF
More Related Content
PDF
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
PPTX
PDF
OpenStackをコマンドで攻める! 構築・運用とトラブル解決 - OpenStack最新情報セミナー 2014年6月
PDF
Apache Hadoop YARNとマルチテナントにおけるリソース管理
PDF
Linux-HA Japanプロジェクトのこれまでとこれから
PDF
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
PDF
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
What's hot
PPTX
PDF
PPTX
OVN 設定サンプル | OVN config example 2015/12/27
PDF
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PDF
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
PDF
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
PPTX
PDF
OpenStack超入門シリーズ Novaのディスク周りあれこれ
PDF
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
PPT
PPTX
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
PDF
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
PDF
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
PPTX
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
PPTX
Similar to OpenStackをさらに”使う”技術 概要と基礎操作
PDF
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack入門
PDF
PDF
OpenStack QuickStart - Icehouse
PDF
OpenStack環境構築入門 - OpenStack最新情報セミナー 2014年6月
PDF
PDF
OSC 2011 Tokyo/Spring OpenStackプレゼン
PDF
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
PDF
PPTX
OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月
PPTX
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
PDF
PPTX
OpenStackで始めるクラウド環境構築入門 Havana&DevStack編
PPTX
PDF
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
PDF
PDF
PDF
OSC2013 Tokyo Spring OpenStack Overview
PPTX
OpenStack本番環境の作り方 - Interop 2016
PDF
PDF
ついに普及期へ!今すぐできる OpenStack とその勘所
More from irix_jp
PDF
The invitation to Infrastructure CI
PDF
The NoOps strategy and tactics
PDF
The practical guide of Infrastructure CI
PDF
The strategy from the Iserlohn fortress at JTF2018
PDF
Japan OpenStack User Group 34th Meetup - Handson Environment
PDF
PDF
OSC2016.Enterprise OpenStack & Cloud Native Applications
PDF
OSC2016 Kyoto Heat + Ansible + Jupyter
PDF
JTF2016 The strategy and Sun Tzu
PDF
JOSUG Meetup 28th Heat 101
PDF
Hot の書き方(Template Version 2015-04-30) 前編
PDF
PDF
クラウド時代のエンジニア魂と企業に必要なカルチャーチェンジ(前半)
PDF
Josug 20th meetup アンケート集計
PDF
OSC@Kyoto2014 OpenStack概要
PDF
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
PDF
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編
PDF
JTF2014:OpenStackの概要と最新技術動向
PDF
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)
PDF
Okinawa Open Days - OpenStack Overview
OpenStackをさらに”使う”技術 概要と基礎操作 1. 2. Table of Contents
講義
OpenStackが注目される背景
全体概要
利用方法と自動化を支援する機能
自動化の重要性
演習
踏み台サーバーの作成
画面の確認と操作方法
リソースの作成(ネットワーク、ボリューム)
UserdataとMetadataを使った自動化
後片付け
2
3. 4. 5. 6. 7. 8. Good/Cheap/Fast から Fast/Fast/Fastへ
OpenStack Sumit 2014
Walt Disney Company
社内ITインフラとしてOpenStackを導入
コンシューマー向けITサービスと同じスピード感で
社内ITサービスを提供
8
https://www.youtube.com/watch?v=SREEnNQ6zqg
Before
After
9. 10. 11. 12. 13. 14. 15. 16. 17. 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
18. 19. コマンドライン
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 |
+--------------------------------------+--------------+-------------------------------------------------------+
20. 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"}}]}
21. 22. 23. 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/bash
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/'
/etc/selinux/config
dnf update -y -q
LANG=C dnf groupinstall -y -q "LXDE Desktop"
LANG=C dnf groupinstall -y japanese-support
LANG=C dnf langinstall -y ja_JP
dnf install -y firefox vim
dnf install -y git
#cloud-config
password: password
chpasswd: { expire: False }
ssh_pwauth: True
cloud-config 形式はyaml形式で定義さ
れたコマンドとデータを記述していきます。
詳細についてに公式ドキュメントを参照ください。
https://cloudinit.readthedocs.org/en/latest/
24. 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の
スクリプトで値
を受け取って
設定
25. 26. cloud-init
OpenStackの標準機能ではありませ
んが、クラウド上でインスタンスの各
種初期設定を行うためのデファクト
パッケージです。
RH系Linuxや、Ubuntu、Windows等
で幅広く動作します。
インスタンスが初回起動されたのか、
2回目の起動なのか?もしくは複製
された環境なのか、を判断してスクリ
プトの実行等を制御します。
Metadataと連携して動作します。
userdataの実行もcloud-initにより
実行されています。
デフォルトの動作は、
/etc/cloud/cloud.cfgで定義されて
います。
26
users:
- default
disable_root: 1
ssh_pwauth: 0
mount_default_fields: [~, ~, 'auto',
'defaults,nofail', '0', '2']
resize_rootfs_tmp: /dev
ssh_deletekeys: 0
ssh_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
~~~(省略)~~~
27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. インスタンスへのアクセス
作成したインスタンスへ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 centos@192.168.253.96
The 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)? yes
Warning: Permanently added '192.168.253.96' (ECDSA) to the list of known hosts.
[centos@step-server ~]$ hostname
step-server
[centos@step-server ~]$ cat /hello.txt
Hello World
先ほど入力したスクリプトが実行
されていることが確認できます。
54. 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=RegionOne
export OS_AUTH_URL=http://10.1.253.203:5000/v2.0
export OS_TENANT_NAME=opst-project-xxxx
export OS_USERNAME=student-xxxx
export OS_PASSWORD=pass-xxxx
演習用のリポジトリを設定します。
OpenStackクライアントを導入
します。
xxxx 部分は自分のユーザー番
号と読み替えてください。
55. コマンドのテスト
踏み台サーバーからコマンドが実行できるかを確認します。
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 |
+--------------------------------------+--------------+------------------------------------------------------+
先ほど作成した環境変数ファイル
を読み込みます。
この二つのコマンドがエラーなく実行できれば導入は
成功しています。
56. 57. 58. 59. 60. 61. 62. Access & Security
セキュリティグループの一覧です。セキュリティグループは簡易的なファイ
アーウォールを提供しています。
defaultはテナント作成時に自動で作成され、今回の環境ではSSH, HTTP通信が
許可されるように、管理者によって設定されます。
キーペアは既に利用した公開鍵と秘密鍵の管理機能です。
62
選択
選択
63. Access & Security
取得したFloating IPの一覧を確認、操作可能です。
またAPIのエンドポイントの確認と、コマンドラインを実行する
ための環境変数設定ファイル等のダウンロードが可能です。
63
選択
選択
64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 仮想ボリュームの作成
接続したボリュームをインスタンスから確認してみます。
OSからは、このボリュームは通常のディスクとして操作可能です。
74
$ ssh -i key-for-step.pem centos@192.168.253.96
[centos@step-server ~]$ sudo -i
[root@step-server ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 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 24
drwxr-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 hosts
drwx------. 2 root root 16384 Dec 10 05:10 lost+found/
踏み台サーバーへ接続し、
rootユーザーとして操作します。
接続したディスクが認識してい
ることが確認できます。
ディスクをフォーマットし、マウン
トした後にファイルをコピーして
います。
ディスクが機能していることが確
認できます。
75. 76. 77. 自動構築の実行
スクリプトをダウンロードして実行します。
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/56Wj3OqDcspazu7oTxOtQQrjgn
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDr4yzecpdEAcnWviij17I1FAsg6avhoSHy9NIMjPvXdc1T3ALOYOhj1JJH0WCFlXV9EFSgpY5O2cIJiWMx+y5NH72Oh/2dfOyl+ViN8yvF6DA76h/jJUli1y8rh600eZO9i6o
yY6BNehIBgJiUohlJB1OLL4t/Gb8fH2w/7tj6Rvh
mHMNJrbjF8+JViUT4tlrP55hHRnanPb8rl9La4Uz/iZtYU8GljpduCFcum0iepUy/pBXy6GKHPp1RRfMpCQXUw+HsywRpSZTGrQ7kO+kz+/B+J4X78zC2ju5sY6qbf4peafyR3DBpRTDooKbiJrNh7dtnXl3ZFLbl8G
zksKrR
-----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
スクリプトが完了したら、起動した
インスタンスの状態を表示します。
ログインプロンプトが表示されたら
完了です。
78. 構築の確認
スクリプトが完了したらブラウザで割当てられた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を確認します。
79. スクリプトの解説
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.pem
chmod 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
80. スクリプトの解説
80
~~~~(省略)~~~~
## Nginx
FIP=`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.conf
server {
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.service
systemctl start nginx.service
~~~~(省略)~~~~
userdata_etherpad_centos7.txt
Metadataサーバーへアクセスし、fipの値を取り出
しています。
JSON形式のデータが返されるので、Pythonの標
準モジュールを利用してパースしてからデータを取り
出しています。
Nginxの設定ファイルを生成しています。
ここでは、FIPに対してアクセスするリクエストを、
http://localhost:9001/へ転送する設定を
行っています。
http://localhost:9001/ は Enterpadが起
動しているポートになります。
81. 82. 83. 続く演習を行うために
踏み台サーバーの導入と、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-etherpad
Request 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
という状態にしておきます。
84.