こんにちは
先日ガレリアにメモリ増設して40Gバイトくらいのメモリになりましたので、さっそくOpenStackのインストールをやってみています。まあいろいろとあって、もう何回目だ?というくらい入れ直しをしてしまっているのですが、毎回毎回手順が分からなくなってしまってあちこち検索したり、書籍を開いたりとしてしまっているので、一度自分の覚書ということでまとめておきたいと思います。
1.OSのセットアップ
OSはCentOS7をセットアップしました。より新しいほうがいいと思います。私は、CentOS8のほうがいいかなと思って一度途中までやりかけたのですが、なんだがデスクトップがすごく重たいので途中でやめてしまって(それだけ!?)今はCentOS7で設定します。そのうち8も最後までやろうと思います。
セットアップ上の注意としはまあ特にないですが、ネットワーク構成を少し気にしたほうが良いかなと思います。OpenStackがListenするネットワークをDefault Switch にしたり、DHCPにしたりするとIPアドレスが変化してしまいますので、IPアドレスが固定できるI/Fにしたほうが良いと思います。私は、NetworkManagerをONでもIPを固定にすればいいと思います。
あとは、SELinuxをdisabledにして、sysctl.conf に以下の行を追加して、ipv6 を disable にしたくらいだと思います。
net.ipv6.conf.default.disable_ipv6 = 1
2.cinder-volumes 用のパーティションを作ります。
Hyper-V上の環境でやってますので、仮想デバイスとしてディスクを作って/dev/sdbとして接続しました。容量は127GBで可変にしました。テキトーです。。。接続したらまずparted ユーティリティでパーティションを作ります。
parted /dev/sdb
(parted) mklabel gpt
(parted) mkpart primary 0 -1
(parted) set 1 lvm on
(parted) print
モデル: Msft Virtual Disk (scsi)
ディスク /dev/sdb: 34.4GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 17.4kB 34.4GB 34.4GB primary lvm
(parted) quit
3.次に、lvmのボリュームとして設定します。cinder-volumes という名前にします。
設定したら、vg-display cinder-volumesと実行してvolume の情報が表示されれば良いです。
[root@localhost ~]# pvcreate -y -ff /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
[root@localhost ~]# vgcreate -y -f cinder-volumes /dev/sdb1
Volume group "cinder-volumes" successfully created
[root@localhost ~]#
[root@localhost ~]# vgdisplay cinder-volumes
--- Volume group ---
VG Name cinder-volumes
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <127.00 GiB
PE Size 4.00 MiB
Total PE 32511
Alloc PE / Size 0 / 0
Free PE / Size 32511 / <127.00 GiB
VG UUID qXt2tc-UdBL-gIEJ-Q9Rb-fjtL-yRVf-HvaeEF
[root@localhost ~]#
※以下2021/02/17追記
別のディスクが用意できない場合配下のようにして仮想のボリュームを作成する
dd if=/dev/zero of=/root/cinder.img bs=1024M count=32
losetup /dev/loop0 /root/cinder.img
partprobe /dev/loop0
parted -s /dev/loop0 'mklabel gpt'
parted -s /dev/loop0 'mkpart primary 0 -1'
parted -s /dev/loop0 'set 1 lvm on'
pvcreate -y -ff /dev/loop0p1
vgcreate -y -f cinder-volumes /dev/loop0p1
設定が再起動すると消えてしまうので /etc/rc.d/rc.localに以下の行を追記
losetup /dev/loop0 /root/cinder.img
partprobe /dev/loop0
vgcreate -y -f cinder-volumes /dev/loop0p1
追記したらrc.localに実行権限を付ける。
5.openstackのレポジトリを登録します。
yum install -y https://repos.fedorapeople.org/openstack/openstack-train/rdo-release-train-1.noarch.rpm
7.一応アップデートの確認をして。再起動をします。
yum update -y
reboot
8.いよいよ openstack のインストール。以下のコマンドを実行してインストールします。
yum install -y openstack-packstack
9.アンサーファイルの作成
openstack 起動時に読み込むファイルのひな型を作成します。ちょっと一部のパラメータで指定されている機能がサポートされませんといったような表示がされますが気にせず進めてしまいます。
packstack --gen-answer=param.txt
10.先ほど作成した param.txt を修正します。
・中のホストのIPアドレスが指定されている項目をすべて自分のホストのIPアドレスにします。例えば CONFIG_CONTROLLER_HOST=xxx.xxx.xxx.xxx のところを起動したいIPアドレスにします。おそらくI/Fが一つしかないサーバで起動していれば、そのまま起動しても大丈夫だと思います。
・cinder volume をすでに作成していますので、CONFIG_CINDER_VOLUMES_CREATE=n とします。
・管理者のパスワードを指定します。CONFIG_DEFAULT_PASSWORD= に設定したいパスワードを指定します。
11.起動設定をします。
packstack --answer-file=param.txt
12.管理コンソールに接続します
FireFox を起動して先ほどOpenStackのLiten IP として指定したIPアドレスに接続します。
今回の例では、172.16.1.121です。
実は、param.txt のパスワードの設定をしなかったため、ログインできなくて困ってしまったのですが、keystonerc_admin という自動生成されたパスワードが書かれていました。そこのパスワードでログインして自分で好きなものに変更するとよいと思います。