OpenStackとは
OpenStackはオープンソースで開発されているクラウド環境構築用のソフトウェア群。
IaaSとして仮想クラウド環境 (ネットワーク/サーバ(instance)/ルータ/NWインターフェース等)一式が構築可能。
- 公式サイト(https://docs.openstack.org/ )
英語で扱い辛いのが難点だが、良質なネット記事や書籍もある。
- コラム ゼロから始めるOpenStack
- 書籍 OpenStack 実践ガイド
上記等と併用して読み進めると理解が深まる。
OpenStackネットワーク(neutron)の全体像、FloatingIPの仕組みは右記 OpenStack Networking の仕組み が解りやすかった。
RDO(Red Hat OpenStack)プロジェクト よりPackStackを使ったインストール
RDOではBash引数で外部ネットワークへの接続 を提示しているが、下記ではAnswerファイルの生成/編集により対話的にインストールする方法を記載する。
●前提条件
公式のハードウェア要件は満たしていること。
-
OS:CentOS7-Minimal
-
NICx2
NICの1枚目に
Controllerのホストアドレス
となる、外部接続可能なアドレスが設定されていること(2枚目NICはIP不要)例)10.200.20.2 →Controllerのホストアドレスとなる
-
FloatingIP用アドレス帯x1
例)10.100.20.160/27 →OpenStack内部でのPublicネットワーク。FloatingIPはこのアドレス帯より動的に確保できる。FloatingIPをインスタンスに割り当てるとNATされ、インスタンスが外部通信可能となる
1.Packstackのインストール
https://www.rdoproject.org/install/packstack/ 上記のStep 0-Step 2
$sudo yum install -y openstack-packstack
までを
実行する。
Step 0の下記コマンドは必須。
$ sudo systemctl disable firewalld $ sudo systemctl stop firewalld $ sudo systemctl disable NetworkManager $ sudo systemctl stop NetworkManager $ sudo systemctl enable network $ sudo systemctl start network
-
$ sudo yum install -y centos-release-openstack-xxxxx (xxxxxはpike,queens,rockyなどのバージョン名に置き換えて下さい) queensではopenvswitch-agentでcpuが高負荷になる現象を複数環境で確認
-
RHELとCentOSでは インストールパッケージが異なる。 CentOS用のコマンドを使用することに注意
-
以降でAnswerファイルを出力後修正するため、サイトにある$ sudo packstack --allinoneは実行しない
2.Answerfile生成
$packstack --gen-answer-file=answer.txt
カレントディレクトリにanswer.txtが生成される。
- queensではpythonセットアップツールがないとAnswerファイル生成は失敗するためインストールする(queens:2018/5/1時点) https://bugzilla.redhat.com/show_bug.cgi?id=1526064
$yum install -y python-setuptools
-
rockyでは問題なし
3.Answerfile編集
変更は2箇所
-
箇所1
- CONFIG_PROVISION_DEMO_FLOATRANGE=
[FloatingIPを使用するサブネット]
ex.)CONFIG_PROVISION_DEMO_FLOATRANGE=10.100.20.160/27
- CONFIG_PROVISION_DEMO_FLOATRANGE=
-
箇所2
- CONFIG_NEUTRON_OVS_BRIDGE_IFACES=
[Bridge設定ファイル名]:[2枚目NICデバイス名]
ex.)CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:ens224
- CONFIG_NEUTRON_OVS_BRIDGE_IFACES=
4.OpenStackのインストール
$packstack --answer-file=answer.txt
各種設定ファイルが自動生成/更新され、OpenStackがインストールされる
-
puppetによる設定時間が30分位は掛かるので気長に待つこと
-
ifcfg-br-ex等は自動生成されない場合は、インストール手順が間違ってます。
/etc/配下に nova/newtron/keystone等のディレクトリが作成され、設定ファイルが格納されます。
5.Horizonにログイン確認
http://コントローラアドレス
orホスト名
/dashboard/
- アカウント:admin
- パスワード:カレントに生成されたkeystonerc_adminファイル参照
インストールは以上です。
以降はログイン後の設定 (作成中)
-
最初はpublicネットワーク一つだけが存在する。 [ネットワーク]→[ネットワークの作成]で
privateネットワーク作成
を行う。 privateネットワークに使うアドレスは任意。設定項目 値 【ネットワーク種別】 VXLAN 【ネットワークアドレス】 192.168.1.0/24 【ゲートウェイIP(ルータ)】 192.168.1.1 【IPアドレス割り当てプール[=インスタンスのアドレス範囲]】 192.168.1.10,192.168.1.30 【DNS】 8.8.8.8 【DHCP】 有効 -
[ネットワーク]→[ルータ]→
ルータの作成
を実行する。ゲートウェイ(public側)及びインターフェース(private側)を追加- 作成時に[外部][SNAT]をチェックすると、ルータにpublic側の空きIPが振られる
- タブ
インターフェースの追加
でprivate側から見たルータのアドレス(=サブネットのGWアドレス)を付与
-
セキュリティールール
にpingとsshを追加 -
ssh用の
キーペア作成
(novaコマンドを使い、controllerホストのコンソールで作成する方が簡単)$ source keystonerc_admin # novaコマンドを使用するために認証ファイルを噛ます $ nova keypair-add admin > admin_key.pem # adminにキーを追加
-
[インスタンス]→[インスタンスの起動]にてprivate側のネットワークに
インスタンスを作成
-
インスタンスと外部をNATするために
FloatingIP確保
- publicネットワークから動的にFloatingIPが確保されます。
-
インスタンスへ
FloatingIP割り当て
→インスタンス再起動
-
インスタンスのnoVNCコンソールからホスト/ルータ/外部に
ping確認
- packstackに含まれるcirrosパスワード
:)
の入力にはUSキーボードを使用する。 - 面倒なら別Linuxのイメージを登録してbootしてね(イメージの登録方法は割愛)
- packstackに含まれるcirrosパスワード
-
インスタンスの
ssh通信確認
インスタンスからルータ/外部/コントローラへの通信の様子
- インフラ勉強会検証環境ではインスタンス画面を表示する「noVNCコンソール」で使用する6080ポートを共用していたため、「localhost」へSSH転送で画面表示してURLがlocalhostとなっていることをご承知置き下さい。インストール後はcontrollerのIPアドレスとなるので、ドメイン名を使用する場合は要変更。公開するにはHTTPS(証明書)対応も必要です。
memo
-
VNCのアドレスをドメイン表示にしたい場合 (インフラ勉強会検証環境の例)
/etc/nova/nova.confnova.confの設定を以下に変更
#novncproxy_base_url=http://10.100.20.1:6080/vnc_auto.html
restart openstack-nova-computenovncproxy_base_url=http://vm01.infra-workshop.tech:6080/vnc_auto.html
(0Δさん情報ありがとうございます!)
ドメイン名を付けるならインストール前に上位(nginx)の設定を予め設定済ませておいた方がよいかも。VLANを使う場合trunkの設定も必要(trunkの設定はどうぞのさんに担当して頂いた)
- cirrOSログイン時に使うUSキーボード対応の例(詳しくはUSキーボードの配置の画像を検索して下さい)
:
キーボードの「Shift」+「れ」)
キーボードの「Shift」+「0」@
キーボードの「Shift」+「2」~
キーボードの「Shift」+「全角半角」_
キーボードの「Shift」+「-」
- Horizonの画面(ネタです)
参考サイト
- OpenStack Mitakaの導入
- RDOを用いたOpenStack Mitakaの構築
- Server Worldさん
wiki情報は前提としてインフラ勉強会、及びStudy-Infraチャンネルの皆様の協力によるものです。