ii-unit情報ブログ

title

TOP > TOP

【OpenStack】OpenStackの導入とか構築とか

最近、仕事で関わることがありましたので(というか当面関わることになるのですが)
OpenStackについて勉強を始めています。

最近はこの手の技術やOSS関連について時間をかけていろいろやる
モチベーションがあまり高まっていなかったので、久々な感じです。

OpenStackは覚えることもやることも多いのですが、なんせOSSですから
家でもいろいろな試験を試みれるのがいいですね。
プロプラエタリなものだと、どうしても家で試すというわけには行きませんし。

まぁ何でもかんでも自宅で試したがるのもどうかとは思いますが。
(それがいきすぎて、HP-UXやAIXなど商用UNIXも持っていたりするのですが)

閑話休題。OpenSackのインストール、初期の構築部分などについて、ちょっと書いてみたいと思います。

※OpenStackはなんぞや、という記事については現在は想定していないので記載していません。


続きを読む

・インストールについて事前整理

本格的に?構築する場合は当然ながら予め構成をきちんと検討しておく必要がある。
試験環境的にはAll-In-One構成で作成すればよいが、そうでない場合、Answer-fileに
構成を反映したものをきちんと書いておく必要がある。

(Answer-fileは後述するが、OpenStackをPackstackというツールでインストールする
際に使う自動応答ファイル)

まずは、All-In-One構成でのメモ。All-in-oneなので今回はAnswer-fileは基本的には弄らないで作成する。
一応仮想インスタンスを作成してsshログインまでは成功したので、次は構成を検討して環境を組んでいく。

ちなみに当方の進め方として、「とりあえず動かす」のを先ず優先します。 成功体験を得ることのほうが重要と考えるほうなので。
ある程度組んだら今度は実機複数台、もしくはKVM上にマルチノードで組んでみるなど
次のステップに行きたいと思っています。

1.ベースLinuxのインストール

実機でもVMでもいいがLinuxをインストーする。
今回は実環境がREHLになる予定なので、なるべく合わせるべくCentOSを選択した。

2.インストール時の注意

VM上の場合、VMの「CPUの仮想支援機能」の有効化を
行う必要がある。
(VM上でVMを動かすことになるので)
Vrtual Box、KVM、VMWare等それぞれの設定で
仮想化を有効にすること。
(KVMは下記のNested KVMの有効化、それ以外は
ソフトウェアの仮想マシン作成時のオプション)

また、KVMで構成したい場合、インストール後に以下の
作業を実施する必要がある。
(StackPackがVM上であることを検知してQemuで
VMを構成しようとするので)
/etc/nova/nova.conf
virt_type=qemu

virt_type=kvm
に修正
※資料、Webでは「libvirt_type」となっているものがあるが、
 実際のnova.confを見たところ「virt_type」となっていた。
※別に検証用であればqemu(ソフトウェアエミュレーション)
 でも構わないですが。

※Nested KVMにする場合は、大元のHost Linuxでも
/etc/modprobe.d/kvm-intel.conf

options kvm-intel nested=1
の記述が必要になる模様。
(カーネルオプション有効にして再起動)

3.インストールに先行して行う作業

ここでは真っ新な環境にインストールすることを想定して記載する

3-1.CentOSのインストール
CentOSはminimalインストールする。余分なものは入れない
ただし必要なものがいくつかあるので、それについては別途
インストールする。
minimalインストール時の注意事項はパーティション構成。
一般的に自動割り当てで確保されるパーティションのうち、
/home
に大きい容量が割り振られるので、これを削除して/配下に
容量をつけ加えるか、/usrだかに付け替える(←後で確認)
検証用の環境なので全てまるっと「/」配下でOK

CentOSの場合、インストール時に日本語化して構わない模様
(Ubuntuの場合、コンソールの日本語化がはなはだしいので
英語のまま進めるのが無難な模様)

あとはインストール進行中にrootパスワードとユーザー作成をして
完了

■実環境メモ
VMWare Playerにインストールを実施
VMの構成
メモリ8GB
HDD 200GB
NIC 1つ
VMWareでの仮想支援機構を有効化
ネットワークIFはブリッジを使用

CentOSをMinimal-ISOを使ってインストール

3-2.インストールしたCentOS上での追加作業

・Static-IP化
まずは構築時にStatic-IPが欲しいので設定を変更
ディストリビューションによって異なると思われるが
それぞれのディストリビューションに応じた方法で
設定変更。

■実環境メモ
CentOSの場合、6.5あたりから「NetworkManager」が
導入されていて、こいつが邪魔をするので、無効化する
systemctl stop NetworkManager
systemctl disable NetworkManager

interfaceに個別IPを振る
いわゆるローカル環境のIPアドレスレンジからふっている。
なおいわゆるブロードバンドルータのDHCPは192.168.100~200を
払い出す構成なので、201~250のアドレスをVMおよびOpenStackで使う
vi /etc/sysconfig/network-script/ifcfg-ifxxxxxx

BOOTPROTO=static #dhcpから書換
IPADDR=192.168.2.201
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
DNS=192.168.2.1

ネットワークサービスを起動(再起動)する

systemctl restart network

※必須ではないが有用
NetworkManagerが入っているため既存?のネットワーク関連コマンド類が
入っていません。(ifconfigとか)
なので入れておいた方がトラブルシューティングなどの際に有用かもしれません。
yum -y install net-tools

3-3 NTPの導入
All-in-one構成ではあまり関係ないかもしれないが、複数ノード構成の場合
確実にNTPにて時刻同期を取っておく必要がある。
このためNTPを導入しておく。
また、マルチノード構成の場合、コントロールノードでNTPマスタ的に同期して
各ノードはコントローラノードと同期するのが通常のパターンか。
無論まとめてタイムサーバ的なやつにアクセスしてもいいみたいですが。
■実環境メモ
yum install -y ntp
/etc/ntpd.confにNTPサーバを記載。
systemctl enable ntpd(でいいのかな 昔のコマンドだとchkconfig ntpd on)
systemctl start ntpd(service ntpd start)
systemctlコマンドの挙動は既存のchkconfigを置き換えているもののはずなので
 確認しておく。CentOS使うのが久しぶりなのでとりあえず複数記載しておく

各プロバイダが提供しているNTPサーバ、および公開JSTサーバを指定すればよいかと。
マルチノード構成の場合はコントローラノードは上記の通り、コンピュートノード等は
コントローラノードを指定するのがよいかしら。

3-4 DNS
試験環境としては必須ではないがマルチノード環境やより詳細に検証したい、
あるいは個人のクラウド環境として有効に使いたい、というのであれば
DNSについても検討する必要あり。
ただしインターネットからのアクセスについては検討要。
よくあるDDNSを使ってのアクセスの場合のローカルとリモートでの
参照時の値の違い(インターネットとローカルで同一ドメインの解決結果が違うなど)
が問題になる場合もあるのでそのあたり注意する。
※これはOpenStack関係ない話

4.OpenStack導入準備
順番としては
4-1CentOSのアップデート
4-2RDOリポジトリの設定 ※CentOSでは実際は不要
4-3Openstack-packstackのインストール(Openstackのインストール構成ツール)
■実環境メモ

yum -y install centos-release-openstack-liberty epel release
yum -y update
yum -y install openstack-packstack

資料等見ると
4-1 yum -y update
4-2 yum install -y https://rdoproject.org/repos/openstackrdo-release.rpm
4-3
yum install -y openstack-packstack

という記載もあるがまぁどっちでもいいか

※CentOSの場合は実は4-2は不要で
yum install -y centos-release-openstack-liberty
だけでよいらしい。
(packstack使うならyum install -y openstack-packstackか
理由は簡単で、CentOSの場合はそもそもExtresリポジトリにOpenStackが含まれているのだが、
デフォルトで対象になっているため。
RHELの場合は上記4-2の作業が必要
また、自動更新の類はOFFになっていること(通常OFFかな?)
なおdocs.openstack.orgを見ると
yum install -y python-openstackclient
yum install -y openstack-selinux
をインストールすることになっているが、
packstackを使う場合は不要?
ただSELinuxに関しては悪さをする話もあるので入れておいてもいいのかもしれない。
もしくは、SELinux設定を以下のように変更する情報もあった。
■実環境メモ
/etc/SElinux/config
enforce ⇒ permissive
どの方法が正しいのかは確認する必要がある。
※All-In-Oneの場合は同一ホスト内で完結するのであまり問題にはならなそうだが、

5.OpenStack導入
理想形としては、answer-fileを作成して、必要なオプションを設定したのち、
そのAnswer-fileを用いてインストールを行うことだと思われる。

・Answerファイルの生成
packstack --gen-answer-file xxx.txt
Answerファイルを指定してのpackstackの実行
packstack --answer-file xxx.txt

※各種コマンドでのオプション指定法。
 外部ネットーワークに繋げるときは
 --provision-all-in-one-ovs-bridge=n
 にしておいた方がいい?
 --ntp-servers=xxxxx
 ntpサーバは指定できるなら指定したほうがよろしいらしい
 --cinder-volumes-size=xxG
 Cinderのサイズ指定

■実環境メモ
簡単に環境を作るには--allinoneオプション

packstack --allinone

⇒Keystone Galnce Nova neutron Swift Cinder Ceilometerがインストールされる。

当初検証はこれで良しとする。

  • 2015.12.19 06:58


タイトル :
名前 :
コメント :
トラックバックURL
TOP > TOP
<< 1 >> ページ中ページ目

ページトップに戻る

ページのトップへ戻る