Packstackを使ってCentOS7.7にOpenstack SteinのAll in One環境を立ててみる


目次

  • OpenstackのAll in One環境
  • 環境
  • 手順
  • やらかしたこと
  • 参考サイト

OpenstackのAll in One環境

私のOpenstackのイメージはコンピュートノードとそれを制御するコントローラがバラバラのマシンに乗っているイメージだったのだが、RDOにて用意されているPackstackを使うことで、一つのマシン上に全てを立ち上げるAll in Oneという構成が作れるようだ。
https://www.rdoproject.org/install/packstack/
Qiitaの先輩方の記事を参考に私も自宅にOpenstack環境を作ってみようとチャレンジしてみる。

環境

Windows10にインストールしたVMWareplayer上にCentOS7を用意した。
OSはyum update後にver7.7
リソースはCPU4コア、MEM4GB、HDD80GBを振った。
(ネタバレになるが、失敗したのでメモリを8GBに増量した。)
今回はお試しに立ち上げるので、NICは1つのみ用意。
NICはブリッジの設定にし、192.168.1.20/24を設定。
デフォルトゲートウェイはWindowsに合わせ、192.168.1.1
DNSは過去の成功例に倣い、8.8.8.8

手順

手順は以下を参考に進めた。
https://qiita.com/mfujita/items/ee2da9d1e241926fc790
https://www.rdoproject.org/install/packstack/

ファイアウォールの無効化とNetworkManagerの無効化。
RDOの推奨です。

# systemctl disable firewalld
# systemctl stop firewalld
# systemctl disable NetworkManager
# systemctl stop NetworkManager
# systemctl enable network
# systemctl start network

SE Linuxも無効化します。
リブート、忘れずに。

# vi /etc/sysconfig/selinux
SELINUX=disabled  ←書き換える

# shutdown -r now

アップデートと、必要なものをインストールしていきます。

# yum update -y
# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
# yum install -y centos-release-openstack-stein
# yum update -y
# yum install -y openstack-packstack

answer.txtの作成・編集
packstack構築時の読み込ませる設定ファイルがこのanswer.txt

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

以下の項目を変更
ダッシュボード画面のパスワードをhoge12345に変更

CONFIG_KEYSTONE_ADMIN_PW=hoge12345

タイムアウトの時間設定を300→0に変更

# cd /usr/share/
# grep -Ri "timeout = 30"

以下の4つの"db_sync timeout = 300"を"db_sync timeout = 0"にviで編集する。

openstack-puppet/modules/nova/manifests/db/online_data_migrations.pp:  $db_sync timeout = 300,
openstack-puppet/modules/nova/manifests/db/sync.pp:  $db_sync_timeout = 300,
openstack-puppet/modules/nova/manifests/db/sync_api.pp:  $db_sync_timeout = 300,
openstack-puppet/modules/neutron/manifests/db/sync.pp:  $db_sync_timeout = 300,

編集したら念のため、0になっていることを確認しましょう。

# grep -Ri "timeout = 0"

いよいよ肝が冷えるpackstackコマンド。ディレクトリはrootに戻ります。

# cd
# packstack --answer-file=answer.txt --timeout=0 --debug

下の画面で10分ほど固まります。本当に冷や冷やします。

...どーん!

ERROR : Error appeared during Puppet run: 192.168.1.20_controller.pp
Error: Cannot allocate memory - fork(2)

どうやらメモリ不足で失敗しました。

一度、VMを落として、メモリを8GBにしてみます。なぜ最初にケチった?

# cat /proc/meminfo
MemTotal:        7990124 kB

もう一度流してみましょう。

# packstack --answer-file=answer.txt --timeout=0 --debug

Installation completed successfully!

どうやら成功したようです。
成功すると(しなくても)Horizonと呼ばれるダッシュボードのアドレスを教えてくれます。
answerファイルで設定したパスワードでログインできます。
answer.txtを弄らなくても、adminパスワードは/root/keystonerc_adminというファイルの中に入っています。

HORIZONの画面はこのような感じです。

これで、インスタンスを立ち上げたり、ネットワークを構築したりする最初の土台の部分が作れました。
もう少し進めたかったのですが、予想外にトラブったのでここまでとします。

次回は、この上にインスタンスを立ち上げます。
自宅に構築したOpenStack環境にインスタンスを立ち上げてみるまでの話…

やらかしたこと

・SELINUXを無効化しようとして、違う箇所を書き換える。
 結果、カーネルパニックを起こす。
 以下を参考に起動DISKからレスキューモードに入り、救出。
SElinuxの無効化に失敗してOSが起動しなくなった話

参考サイト

非常にお世話になりました。
【OpenStackチャレンジ】 第1回 OpenStackインストール編
DbsyncのエラーでOpenStackがインストールできない。トラブルシュートを備忘録
OpenStack Mitakaの導入 (Win7, Virtual Box, CentOS 7, RDO)