« vCenter Server + WindowsServer2016から複数のESXiホストとゲストを操作できるようにする | メイン | KVMによる仮想環境構築 »

OpenStackとは? OpenStackを構築して使ってみる


最近巷で、OpenStackが話題です。

OpenStackとは何ぞや?とググってみても、IaaSがどうとか難しい相関図が出てきたり、
「Amazon EC2のようなことができる」と書いてあったり、
さっぱりよくわかりませんでした。

習うより慣れよ ということで、まずは触ってみることにしました。
今現在最新のCentOS7とOpenStack-Mitakaを使います。

まずOpenStackを使うメリット。

従来は、新しいシステムを構築するときは、下図のような「サイロ型」が一般的でした。

外部からアクセスするサーバはDMZに置き、一方外部から守るサーバはTrustedに置いて、
ファイアウォールやロードバランサを間に置いたネットワークを構築し、用途ごとに物理サーバを立てるスタイルです。
下図は横に並べて書いたため分かりにくいですが、縦に並べて書くとサイロのような形をしているから
こう呼ばれるんでしょうか。


一方、最近は猫も杓子もカソウカカソウカ。

一台の物理マシン上に複数のマシンを仮想化して載せるスタイルはもはや一般的ですが、
ロードバランサやファイアウォールも含め、システム全体を仮想化してしまう なんてことが、
OpenStackではできる?ようです。(下図はちょっと表現が適切でないかもしれません。)


これにより、物理的な省スペース・省電力が実現できる場合があったり、
なにより物理的な装置の故障やEoLに伴う保守の手間・費用を抑えられる可能性があります。

何はともあれまずはOpenStackを触ってみたいということで、
今回は最も簡単と思われる方法でOpenStackの環境を構築しました。

途中まで http://hirosanote.hatenablog.jp/entry/2016/04/16/223821 を参考にさせて頂きました。

OpenStack構築はとても奥が深く、とりあえず触ってみたいだけなのに、
投書は最低限の構成のインストールも失敗が続きました。
何かよくわからないエラーが出たり、無視して続けても、動ているようで動いていなかったり...

この手順も、今日現在はできますが、OSやリポジトリが更新されると、そのままの手順ではできなくなるかもしれません。
ということで、VMware Player用のOpenStack仮想マシンをhttps://drive.google.com/folderview?id=0BzIFuDgm6qf8cnR2ckJXQXk4Q2s&usp=sharingにてダウンロードできるようにしておきました。
インストールに躓いたり、とりあえず触ってみたいだけ という人にはこれでもいけるかと。

以下、手順メモです。






まずはCentOS7 64bitのインストールディスクイメージ(CentOS-7-x86_64-Minimal-1511.iso)を入手します。


続いて、OpenStackを動かすマシンを準備します。CPUはIntel-VTをサポートし、メモリは6GB以上、HDDは100GB以上を目安とします。


CentOS7をインストールします。Install CentOS7を選択します。

言語は英語とします。日本語だとバグることがあるみたいです。

タイムゾーン・キーボードなどを選択します。

タイムゾーンは東京でいいです。

キーボードもJapaneseでいいです。

インストール先HDの構成は、手動で設定するため、I will configure partitioning を選択しDoneを押します。

Standard Partitionを選択し、+マークを選択。


/bootパーティションに300MBを登録。

登録されました。続いて同様にswapパーティションの追加。

swapは8GBを指定。

同様にルートパーティション。残り全部なので、空欄で登録。


3つのパーティションを登録できたので、Done.


Accept changesを選択。

続いてNICの設定。固定IPアドレスを設定します。ONにして、Configureを選択。

Automatically connectにチェック。


IPv4の設定で、ほかのPCと同じセグメントの固定IPを設定。
(後ほど、ほかのPCからこのアドレスへ、ブラウザ越しにダッシュボードへアクセスします)

Begin installationを選択

ROOT PASSWORDを選択。


rootのパスワードを設定します。脆弱なパスワードでも、Doneを2回押せば許してくれます。

インストールで来たら、Rebootを選択して再起動。

rootでログインします。


ifcfg-eno16777736に、NMCONTROLLED=no という1行を追加しました。
(これにより、NetworkManagerがこのIFを触らないように明示的に宣言できるようです)


OpenStackは、NetManagerとSELinuxが競合してしまうため、両者をOFFにする必要があります。
NetManagerが無くなるとIFの制御ができなくなるので、net-toolsをインストールします。

#yum -y install net-tools

NTPサーバが必要なようなのでインストールして有効化します。

#yum -y install ntp


#service ntpd start

#chkconfig ntpd on


NetworkManagerを無効にします。

#systemctl disable NetworkManage

#systemctl stop NetworkManager

#service network restart

#chkconfig network on


viで設定を書き換えて再起動して、SELinuxを無効にします。

#vi /etc/selinux/config

SELINUX=permissive と書き換えます。

#reboot




#yum -y install deltarpm

Openstackのリポジトリをインストールします。

これは今日現在のリポジトリなので、古くなって無くなった場合は、
新しいバージョンのURLに読み替える必要があります。

#yum install http://rdo.fedorapeople.org/openstack-mitaka/rdo-release-mitaka.rpm

(余談:Mitakaの代わりにひとつ前のLibertyをインストールしたいときは、上記の"mitaka"を"liberty"にするとできるようです。)

続いて、OpenStackを簡単にインストールするツールであるpackstackをインストールします。

#yum install openstack-packstack

いったん、リポジトリをアップデートします。少し時間がかかります。

#yum -y update

終わったらリブートします。

#reboot

OpenStackをインストールするにあたって、アンサーファイルを作成します。
インストールするにあたって、要望を記入する問診票のようなものと理解しています...

#packstack --gen-answer-file=answer.txt

#vi answer.txt


CONFIG_NOVA_NETWORK_PUBIF=で始まる行があるので、
CONFIG_NOVA_NETWORK_PUBIF=eno16777736 と書き換えます。


やっとOpenStack本体をインストールします。このコマンドは30分以上くらいかかります。
(インストーラはPythonで書かれている??)

#packstack --answer-file=answer.txt

変なエラーなく完了すればOKです。(もしミスってると、下のように色文字でエラーが)

そしてまた再起動します。

#reboot


/home/keystorerc_admin に、ダッシュボードへアクセスするIDとPWが記載されているので、確認します。
ユーザ名はadmin、パスワードはadminの次の行に書いてあります。

(余談ですが、コンソールからOpenStackを制御するときは、このkeystore_adminを利用し、「source keystorerc_admin」コマンドでadminとしてログインします)

#cat /home/keystorerc_admin


別のPCのブラウザから、http://(OpenstackマシンのIP)/dashboard へアクセスします。
keystorerc_adminのadminパスワードでログインします。

インストールすると、AmazonEC2と同様に、左側にメニューが並んでいます。

概要とか見れます。


仮想ネットワークの構成も見れます。

OpenStackでは、OSのイメージを登録しておき、そこから複数台の仮想マシン=インスタンス を作成するスタイルのようです。
(Javaのクラスとインスタンスのような関係でしょうか?)

試しに仮想マシンを作ってみます。左のメニューから、「イメージ」を選びます。
右上の「イメージの作成」を選択します。

イメージの名前と形式を選びます。アーキテクチャは、32bit版ならi386、64bit版ならx86_64と指定します。
OpenStackでは、cirrosという軽量Linuxがサンプル的な感じで1つ最初から入っています。


イメージを登録できました。



続いて、イメージからインスタンスを起動(作成)します。名前・スペック・所属するNWを指定します。
Countは作成するインスタンスの数です。


HD容量や使用するイメージを選択します。

OpenStackでは、スペックのランクをflavorというようです。


属するNWを指定します。

しばらくしたら、作成中から稼働中に変わります。


プルダウンメニューからコンソールを選んでみます。


vncでゲストOSのコンソールにアクセスできます。

試しにPuppyLinuxを入れてみました。一応動いてはいます。



ただ仮想マシンを立てるだけでは面白くないので、LBやFWなど追加して実験してみようと思います。

トラックバック

このエントリーのトラックバックURL:
http://www.ddhost.jp/mt/mt-tb.cgi/1135

About

2016年05月05日 14:30に投稿されたエントリーのページです。

ひとつ前の投稿は「vCenter Server + WindowsServer2016から複数のESXiホストとゲストを操作できるようにする」です。

次の投稿は「KVMによる仮想環境構築」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。