【OpenStack】 Icehouse 導入編 #1

みなさまいかがお過ごしでしょうか。

まつぼっくりは先日休み中に旅行に出かけておりまして、今回台風が来る前に帰れましたが、皆様ご無事でしたでしょうか?

OpenStackのSDKのPythonプログラミングを目指しておりますが、
OpenStackの構築環境が無い方のために導入方法についてご紹介したいと思います。
※OpenStackは2014年冬にリリース予定のJunoがありますが、今回は現時点で最新のIcehouseでの導入手順となります。


■OpenStackの登場人物
OpenStackで出てくる主要な役割について以下にまとめました。

Keystone:認証やエンドポイント(サービスにアクセスするURL など)を提供します。
Nova :仮想サーバを立てるためのサーバです。VMwareESXiなどに当たります
Glance :テンプレートイメージを提供します。保存先にはSwiftなどを使用します。
Cinder  :ブロックストレージの役割となります。iSCSIなどの接続を提供し、
PCのHDDのように使用するために使います。
Swift :オブジェクトストレージの役割をします。
オブジェクトストレージとはWEBにアップロードするようにAPIを使っての
アップロード方法にてデータを格納します。
Neutron :ネットワーク系を担当します。
Horizon :WEBでの管理インターフェースを管理者、エンドユーザへ提供します。
Ceilometer:利用状況の情報を提供します。
Heat :設定自動化(オーケストレータ)の機能になります。


■OS導入(CentOS 6.5)
CentOS 6.5のインストーラをDVDメディアなどで起動します。

インストーラ起動後言語設定があります。
Japanese(日本語)」を選択します。

キーボード選択画面が表示されます。
日本語」を選択します。

ストレージ選択画面が表示されます。
基本ストレージデバイス」を選択します。

※未フォーマットディスクが認識された場合。
はい。含まれていません。・・・」を選択して進めます。

ホスト名の入力画面が表示されます。
任意のホスト名を入力します。

同じ画面にて「ネットワークの設定ボタン」をクリックしてNICの設定をします。
※今回の環境はeth0のみ使用するため、eth0のみに「自動接続するにチェック」をいれてあります。

eth0の「IPv4のセッティング」を開きます。
方式を「手動」にしてIPアドレス情報を入力します。

タイムゾーン選択画面が表示されます。
アジア/東京」を選択します。

システムクロックでUTCを使用のチェックを外しておきました。

ルートの任意のパスワードを設定します。

どのタイプのインストールをしますか?と表示されます。
すべての領域を使用する」を選択します。

※このまま進めるとCinderで使用するブロックボリュームが作成できないため、/homeを削除して領域を確保されます。
homeはパーティションとしては作成されませんが、/(ルート)パーティションにディレクトリとして作成されることになります。

内容を確認し、「変更をディスクに書き込む」を選択します。

インストールタイプの確認があります。
Minimal」を選択し進めます。

インストールの完了を待ち、表示にしたがい再起動を行います。

------
OSインストール後に「cinder-volumes」という名前でボリュームを作成します。
※追加するディスクパーティションはlsblkコマンドなどで確認してください。
作成コマンド例
# pvcreate /dev/sda4
# vgcreate cinder-volumes /dev/sda4

yumコマンドでパッケージ全体を更新してきます。
# yum -y update
# reboot


■OpenStack(icehouse)インストール
ここからはOpenStackのインストールに入ります。
OpenStackのインストール方法はAll-In-Oneオプションで導入せず、answer-fileを使った方法を採用しています。
※answer-fileを使った方が後々拡張できます。


初めにリポジトリ(rdoの格納場所)登録しておきます。
# yum install -y http://rdo.fedorapeople.org/rdo-release.rpm

packstack(openstackインストールツール)導入
# yum install -y openstack-packstack

※バージョン指定が無いと最新のバージョンが入るので、下記のようにバージョン指定すると確実にicehouseが入るかと思います。
# yum install -y openstack-packstack-2014.1.1-0.25.dev1208

packstackではallinoneインストールという手軽な方法があるのですが、
今回は導入のカスタマイズができるよう設定を書いたanswerfileを使用しました

アンサーファイルひな形作成
# packstack --gen-answer-file=answer.conf

sedコマンドでanswer.conf内のIPアドレスをすべてサーバのIPで置換します。
# sed -i -e 's/172.16.x.xx/192.168.33.254/g' answer.conf

既定で作成されるのネットワークを無効
answer.confファイルのCONFIG_PROVISION_DEMOを「n」にしておきます。

PackStackを実行。インストールを行います。
# packstack --answer-file=answer.conf

○Open vSwich設定
PackStack完了後はbr-exにeth0の割り当てが自動で行われないので、以下の手順を実施します。

br-ex(ブリッジ)インターフェースの追加
# ovs-vsctl add-br br-ex

br-exへeth0を追加
# ovs-vsctl add-port br-ex eth0
追加した状態を確認
# ovs-vsctl show

結果以下のようになるはずです。
※ならない場合は手動で編集してください。
--------------------------------------------
/etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex
TYPE=OVSBridge
DEVICETYPE=ovs
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.16.x.xx
NETMASK=255.255.255.0
--------------------------------------------
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=xxxxxxxxx
TYPE=OVSPort
UUID=xxxxxxxxx
ONBOOT=yes
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
--------------------------------------------
※念のためnetworkを再起動しておきましょう。
# service network restart


○ダッシュボードパスワード設定
Horizoに入る初期パスワードを設定します。

adminユーザのパスワード変更】
# source /root/keystonerc_admin
# keystone user-password-update admin
New Password: XXXXXXX
Repeat New Password: XXXXXXX

一行目のkeystonerc_adminファイルをsourceコマンドを使って環境変数に読み込んでいます。keystonerc_adminにはユーザadminの初期パスワードなどの情報が含まれます。

このファイルを読み込ませることでkeystoneにアクセスが可能となります。
またその後にkeystoneコマンドを使うことでパスワードを変更しています。
OpenStackにはPythonSDKを使っての操作以外にコマンドを使っての操作があります。


初期パスワードはkeystonerc_adminファイルを書き換えておきます。

 # vi /root/keystonerc_admin
export OS_USERNAME=admin
export OS_TENANT_NAME=admin
export OS_PASSWORD=XXXXXXX   ←ここを変更後のパスワードに変更
export OS_AUTH_URL=http://172.16.x.xx:35357/v2.0/
export PS1='[\u@\h \W(keystone_admin)]\$ '


admin同様、demoユーザのパスワードも変更しておきましょう。
# source /root/keystonerc_admin
 ※管理者adminでログインしてdemoユーザのパスワードを変えている。
# keystone user-password-update demo
New Password: XXXXXXX
Repeat New Password: XXXXXXX

# vi /root/keystonerc_demo
export OS_USERNAME=demo
export OS_TENANT_NAME=demo
export OS_PASSWORD=XXXXXXX   ←ここを変更後のパスワードに変更
export OS_AUTH_URL=http://172.16.x.xx:5000/v2.0/


keystonerc_adminファイルとkeystonerc_demoファイルを見ると、
keystoneにアクセスするTCPポート番号が異なっていることが判るかと思います。
管理者は35357を用い、一般ユーザは5000を用います。


○ダッシュボード(Horizon)へのログイン
サーバのIPアドレスでWEBブラウザからアクスしてログインできるか確認します。
http://172.16.x.xx/dashboard


基礎的なインストールまで完了しました。
続きはダッシュボードにログインして環境作成となります。

長文を読んで頂きありがとうございました。