maasとjujuでつくるopenstack環境構築入門 icehouse対応版 -...

56
MAASJujuでつくる OpenStack環境構築入門 IceHouse対応版 2014108日本仮想化技術株式会社 技術部 大内

Upload: virtualtech-japan-inc

Post on 10-Jun-2015

4.726 views

Category:

Technology


6 download

DESCRIPTION

講師:日本仮想化技術 大内 日時:2014/10/08 タイトル:MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 概要: - MAASとJujuについて - MAASとJujuの構築の流れ - JujuによるOpenStackの構築 --- 設計について --- 実際の構築

TRANSCRIPT

Page 1: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

MAASとJujuでつくる OpenStack環境構築入門

IceHouse対応版

2014年10月8日 日本仮想化技術株式会社

技術部 大内 明

Page 2: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

内容

•  MAASとJujuについて •  MAASとJujuの構築の流れ •  JujuによるOpenStackの構築

– 設計について – 実際の構築

2

Page 3: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

MAASとJujuについて

Page 4: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

MAASについて

•  Metal as a Service •  物理サーバーを管理配下に置き、Ubuntu

Serverを簡単に配備できる仕組み •  物理サーバーの他にも、libvirtで管理され

ている仮想マシンも管理可能

4

Page 5: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

Jujuについて

•  “チャーム”に書かれた内容に沿ってソフトウェアをサーバーに展開するツール

•  展開したチャームを連携させることで、MySQL+WordPressなどのような展開を可能にする

•  MAASと連携することによって、ソフトウェアの物理サーバーへのデプロイを実現

•  展開はAWSなどのクラウドへも実行可能 5

Page 6: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

MAASとJujuの 構築の流れ

Page 7: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

MAASの構築

7

MAAS

(1)サーバーにMAASをインストール・設定

(2)ノードになるマシンをPXEブートして   MAAS管理下に登録

Page 8: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

juju-coreのインストール

8

MAAS +

juju-core

(3)juju-coreパッケージをMAASサーバーにインストール

(4) MAASと連携する設定を   記述したJujuの設定ファイルを   用意

Page 9: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

juju bootstrapの実行

9

J

MAAS +

juju-core

(5)juju bootstrapコマンドで   Juju環境デプロイを指示

(6)MAASが管理下のサーバーを割り当て、   電源投入・Ubuntuインストール (7)Jujuがデプロイされる

Page 10: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

チャームのデプロイ

10

J

MAAS +

juju-core

(8)Jujuコマンドでチャーム  のデプロイを指示

(9)MAASが管理下のサーバーを割り当て、   電源投入・Ubuntuインストール (10)Jujuがチャームをデプロイ

Page 11: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

JujuによるOpenStack環境の設計

Page 12: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

今回の設計の方針

•  Ubuntu Server 14.04.1LTSを使用 •  Jujuを用いてOpenStackを簡単にデプロイ •  デプロイするマシンの管理にMAASを使用 •  2台の物理サーバーを用意

– KVMホスト兼MAASサーバー (コンピュートノード以外のチャームは仮想マシンに展開する)

– コンピュートノード(Nova Compute用チャーム)

12

Page 13: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

チャーム展開の注意点

•  基本的に1つのマシンに1つのチャームをインストール

•  同居するようにコマンドを実行することはできるが、チャームの実装が同居を考慮した設計になっていないといけない – LXCで1台のマシンに複数チャームを展開す

ることは可能

13

Page 14: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

必要なJuju Charm

•  mysql •  rabbitmq-server •  keystone •  nova-cloud-controller •  nova-compute •  glance •  cinder •  quantum-gateway •  openstack-dashboard

14

•  juju(bootstrap)

Page 15: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

KVMホストに必要なリソース

•  KVMホスト –  4CPU以上 – メモリ20GB前後 – ストレージ200GB前後 – NICが2つ必要

15

Page 16: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

コンピュートノードに必要なリソース

•  IPMIやWoLで起動できるマシンが必要 – HP・Dellなど

•  コンピュートノードは、稼働させたいインスタンスの量に応じて用意

•  お試し程度であれば、それほど高スペックなサーバーでなくても良い

•  複数用意すれば、起動可能なインスタンスの量を増やすことも可能

16

Page 17: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

OpenStack環境設計時の考慮点

•  Jujuを使ってOpenStackを構築する場合は主に以下の2点を考慮する – 物理ネットワークの構成 – ストレージの構成

•  今回はCinderを仮想マシンで作成するため、Cinderのマシンにディスクを2つ接続する

•  構成を本格的にしたい場合には考慮点は増える

17

Page 18: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

Jujuのネットワークの構成

•  管理系 –  MAASがDHCP+PXEブートおよびDNSを提供 – 他のネットワークとDHCPが重複しないように注意 – 独立させるか、VLANを分けるなどの対応が必要

•  サービス系(Floating IP用) –  Neutron+Open vSwitch(GREトンネリング) – インスタンスが外部ネットワークに出るための経

路として使用

18

Page 19: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

環境の事前準備

Page 20: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

本環境について

•  KVMホストのIPアドレス – 管理系(eth0)は192.168.215.20を使用 – サービス系(eth1)は172.16.215.20を使用

•  コンピュートノードはHPサーバーを使用 –  iLOのIPアドレスはサービス系セグメントに設

定する

20

Page 21: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

本環境の物理設計

21

KVMホスト コンピュートノード (例としてHP iLOを使用)

ルーター

Internet

eth0

eth1

eth0

iLO

VM

(管理系) (サービス系)

ハブ

Page 22: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

KVMホストの事前準備

•  Ubuntu Serverをインストール – ベース+SSHサーバー

•  IPアドレスを設定 •  以下のパッケージをインストール

•  eth0・eth1のブリッジを作成

22

#  apt-­‐get  install  virt-­‐manager  qemu-­‐kvm  qemu-­‐system  libvirt-­‐bin

#  virsh  iface-­‐bridge  eth0  br0  #  virsh  iface-­‐bridge  eth1  br1

Page 23: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

NATの設定

•  管理系はインターネットに接続できる必要があるため、NATを設定する

•  サービス用のIPアドレス設定 –  eth1の設定の下に以下の一行を追記 –  pre-up iptables -t nat -A POSTROUTING -s

192.168.215.0/24 -o eth0 -j MASQUERADE – 再起動する

23

Page 24: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

仮想マシンの作成

•  コントローラーノード –  4vCPU / 20GB mem / 50GB HDD / 管理NW(br1)に接続

•  ネットワークノード –  1vCPU / 2GB mem / 10GB HDD / 管理NW(br1)とサービス

NW(br0)に接続 •  ストレージノード

–  1vCPU / 2GB mem / 10GB HDD+50GB HDD / 管理NW(br1) に接続

•  「仮想マシンを作成後に詳細画面を開く」を選択し、PXEブートを最優先するように設定

•  仮想マシンが起動したらシャットダウンする(OSのインストールはMAASが行う)

24

Page 25: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

コンピュートノードの事前準備

•  ディスクの中身が消去されるため、消えても良いディスクを用意しておく

•  BIOS設定で、PXEブートを最優先にする

25

Page 26: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

MAAS+Juju環境の構築

Page 27: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

MAASとJuju coreのインストール

•  KVMホストに以下のパッケージをインストール – KVMホストと同居させる – リソースに余裕があれば仮想マシンを別途作

成すると良い

•  http://<IP>/MAASにアクセスして、指示に従ってルートパスワードを設定

•  ログイン 27

#  apt-­‐get  install  maas  juju-­‐core

Page 28: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

クラスターの設定(1)

•  DHCPを動かすインターフェイスを設定 •  [Clusters]タブ-クラスターの編集アイコンを

クリック

28

Page 29: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

クラスターの設定(2)

•  DNSゾーン名を指定(任意の名前)して[Save Cluster Controller]をクリック

•  Interfacesで、br1(管理系)の編集ボタンをクリック

29

Page 30: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

クラスターの設定(3)

•  Managementを[Manage DHCP and DNS]に設定

•  DHCPのリース範囲など ネットワーク情報を入力

•  [Save Interface]をクリッ ク

30

Page 31: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

PXEイメージの取得

•  [Import boot images]をクリック •  Boot Imagesのカウントが増えたら完了 •  進捗はWeb画面に出ないため、確認する

には/var/lib/maas/boot-resourcesをduコマンドなどで観察する

31

Page 32: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

ノード向けのSSH鍵の登録

•  ノードに自動的に配置されるSSH公開鍵を登録する(複数登録可能)

•  画面右上のユーザー名からPreferencesページに移動してSSH keysから登録

32

Page 33: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

マシンをMAAS管理下に置く

•  マシン(仮想マシン・コンピュートノード)を起動する

•  マシンがPXEブートして、MAASにマシン情報を送ると自動でシャットダウンする

•  MAASにマシンが認識(仮登録状態)される

•  注意: マシン名はランダムな文字列で登録されるため、順番に起動する

33

Page 34: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

マシン情報の入力

•  ノードを選択して、編集画面を開く •  以下の設定を行う

– ホスト名 – 電源タイプの指定

•  電源タイプの指定について –  IPMI・特定サーバーベンダーの電源管理・

virshなど様々な方法を指定可能

34

Page 35: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

電源タイプの指定

•  コンピュートノード(HP iLOを想定) – 自動でユーザー・パスワードが追加される – ユーザーがなにかを行う必要はない – ※アンインストール時は手動で消す必要あり

•  仮想マシン –  [Power address]にVirshのアドレスを指定

•  qemu+ssh://user@localhost/system

–  [Power ID]に仮想マシン名を指定

35

Page 36: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

仮想マシンの電源管理の ための準備

•  maasユーザーからuserユーザーにSSH接続するため、下準備をしておく

•  手順 1.  /home/maasディレクトリを作成、所有権の設定 2.  /etc/passwdを開き、maasユーザーの行の/bin/falseを

/bin/bashに書き換える 3.  suコマンドでユーザー移動(su - maas) 4.  maasユーザーのSSH鍵をパスワード無しで生成 5.  userユーザーにmaasユーザーの公開鍵を

authorized_keysに登録 6.  maasユーザーでコマンドを実行して確認

$ virsh –c qemu+ssh://user@localhost/system list --all

36

Page 37: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

ノードのコミッションの実行

•  ノードの画面右側の[Commission node]をクリックする

•  マシンが起動して、詳細な情報の取得などが行われる(自動でシャットダウンする)

•  ノードのステータスがReadyになる

37

Page 38: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

fast installerの設定

•  Ubuntuを高速でインストールできるモードをノードに対して設定

•  すべてのノードを選択し、[Bulk action]で[Mark nodes as using the fast installer]を選んで実行

•  コミッションも実行可能

38

Page 39: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

ノードへタグを付ける

•  タグはjujuにチャームを割り当てるときに必要になる

•  コマンドからのみ操作可能 •  手順

–  maas login maas <MAAS URL> <MAAS KEY>を実行してログイン

–  maas maas nodes listを実行して、リストを取得 –  maas maas tags new name=<タグ名>を実行してタ

グを作成 –  maas maas tag update-nodes <タグ名> add=<ノード

のUUID>を実行してノードにタグを付ける

39

Page 40: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

スクリプトを作成して効率化

•  タグ付与はノードリストがJSONであることを活用してスクリプトなどを作ると良い –  PHPの例(単純にノード名と同じ名前のタグをつける)

40

<?php exec("maas maas nodes list", $json); $json = implode("\n", $json); $data = json_decode($json); foreach ($data as $item) { $host = explode(".", $item->hostname); $id = $item->system_id; print exec("maas maas tags new name={$host[0]}"); print exec("maas maas tag update-nodes {$host[0]} add={$id}"); } ?>

Page 41: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

Jujuの展開

41

Page 42: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

Juju環境ファイルの作成

•  ホームディレクトリでjuju initコマンドを実行 •  .jujuディレクトリが作成される •  .juju/environments.yamlを編集

–  jujuがチャームの内容をデプロイする環境にアクセスするための認証情報などを記述する設定ファイル

– 記述後はホームディレクトリにバックアップしておくと良い(作りなおしするときに便利)

42

Page 43: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

environments.yamlの記述

•  maas-oauthの情報はMAAS管理画面のuser preferencesのページにある

43

default: maas environments: maas: type: maas maas-server: 'http://192.168.215.20/MAAS/' maas-oauth: '34snhJ2RLLH9Swu..........XsgmnzqwbQ’ admin-secret: password ←juju-guiに入るためのパスワード authorized-keys-path: ~/.ssh/authorized_keys

Page 44: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

juju bootstrapを実行

•  以下のコマンドを実行する

•  jujuマシンが起動して、環境が構築される •  以下のコマンドを実行して、juju-guiチャー

ムをインストール

44

$ juju bootstrap --constraints tags=juju

$ juju deploy juju-gui --to 0

Page 45: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

juju-guiのWeb画面にアクセスする

•  クライアントマシンが管理ネットワーク下にある場合はdashboardのIPアドレスにアクセス

•  クライアントマシンがサービスネットワーク下にある場合はルートを追加する – Macの例

45

sudo route add -net 192.168.215.0/24 172.16.215.20

Page 46: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

juju-guiのWeb画面

46

Page 47: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

JujuによるOpenStackの展開

47

Page 48: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

openstack.yamlの作成

•  openstackの各チャームに対する設定はyamlファイルで記述する

•  右の通りファイルを作成して、ホームディレクトリに配置する

48

keystone: admin-password: password admin-token: ubuntuopenstack nova-cloud-controller: network-manager: Neutron quantum-security-groups: "yes" cinder: block-device: vdb overwrite: "true" quantum-gateway: ext-port: eth1 openstack-dashboard: webroot: /

Page 49: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

OpenStackチャームのデプロイ

•  以下のコマンドを実行して、チャームをデプロイする

49

$ juju deploy --config openstack.yaml --constraints tags=neutron quantum-gateway $ juju deploy --config openstack.yaml --constraints tags=cinder cinder $ juju deploy --constraints tags=compute nova-compute $ juju deploy --to lxc:0 mysql $ juju deploy --to lxc:0 rabbitmq-server $ juju deploy --to lxc:0 glance $ juju deploy --config openstack.yaml --to lxc:0 keystone $ juju deploy --config openstack.yaml --to lxc:0 nova-cloud-controller $ juju deploy --config openstack.yaml --to lxc:0 openstack-dashboard

Page 50: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

デプロイオプション

•  --config xxx.yaml – チャームのオプションが記述されているファイルを

指定 •  --constraints tags=xxx

–  xxxのタグが付いているマシンのどれかにデプロイ

•  --to – 指定したマシンIDにデプロイ –  --to 0 ならIDが0のマシンにデプロイ –  --to lxc:0 ならIDが0のマシンにLXCコンテナとし

てデプロイ

50

Page 51: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

デプロイ時のtips •  環境によってはjujuマシンの応答が鈍くな

るため、120秒ほど実行間隔をあけてデプロイする

•  jujuコマンドがタイムアウト して失敗したらjujuマシンを 再起動する

•  juju-gui画面でチャームに 赤いバーがついたらRetry を実行する

51

Page 52: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

チャームの関連付けを行う

•  チャーム同士は何も関連付けしていない素の状態のため、関連付けを行って機能するようにする

•  コマンド実行の他に juju-guiでの関連付け もできる

52

Page 53: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

関連付けコマンド

$ juju add-relation keystone mysql $ juju add-relation nova-cloud-controller rabbitmq-server $ juju add-relation nova-cloud-controller mysql $ juju add-relation nova-cloud-controller keystone $ juju add-relation nova-compute:amqp rabbitmq-server:amqp $ juju add-relation nova-compute mysql $ juju add-relation nova-compute nova-cloud-controller $ juju add-relation glance mysql $ juju add-relation glance keystone $ juju add-relation glance nova-compute $ juju add-relation glance nova-cloud-controller $ juju add-relation cinder mysql $ juju add-relation cinder glance $ juju add-relation cinder rabbitmq-server $ juju add-relation cinder nova-cloud-controller $ juju add-relation cinder keystone $ juju add-relation quantum-gateway mysql $ juju add-relation quantum-gateway rabbitmq-server $ juju add-relation quantum-gateway nova-cloud-controller $ juju add-relation openstack-dashboard keystone

53

Page 54: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

dashboardにアクセスする

•  関連付けをしてしばらくたったらdashboardのWeb画面にアクセスする

•  juju-gui同様必要に応じてルーティングを設定する

54

Page 55: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

OpenStackを使えるように設定する

•  ネットワークの設定 – 内部・外部ネットワークの作成 – ルーターの作成とネットワークの接続

•  イメージの取得 – CirrOS: http://download.cirros-cloud.net/

55

Page 56: MAASとJujuでつくるOpenStack環境構築入門 IceHouse対応版 - OpenStack最新情報セミナー 2014年10月

Juju+MAAS構築手順書配布中

56

http://EnterpriseCloud.jp/installguide-juju-openstack/