環境
- RDOのホスト
- ベアメタル
- CentOS 8.5
- プロキシ環境
- RDO
- PackStack 17.0.0
- OpenStack Victoria
ネットワーク構成

作業ログ
以下の公式手順を参考にインストールする。
https://www.rdoproject.org/install/packstack/
事前準備
言語設定がen_US.utf-8
であることを確認。
[centos@rdo ~]$ localectl status
System Locale: LANG=en_US.utf-8
VC Keymap: jp
X11 Layout: jp
SELnuxの無効化
公式手順にはないが、設定が面倒なので無効化する。
[centos@rdo ~]$ sudo setenforce 0
[centos@rdo ~]$ getenforce
Permissive
[centos@rdo ~]$ sudo vim /etc/selinux/config
[centos@rdo ~]$ cat /etc/selinux/config
...
SELINUX=disabled
...
NTPの設定
[centos@rdo ~]$ sudo dnf install chrony
...
Complete!
[centos@rdo ~]$ sudo vim /etc/chrony.conf
[centos@rdo ~]$ cat /etc/chrony.conf
...
pool <ntp-host> iburst
...
allow 0.0.0.0/16
...
dnfのプロキシ設定
[centos@rdo ~]$ sudo vim /etc/dnf/dnf.conf
[centos@rdo ~]$ cat /etc/dnf/dnf.conf
[main]
...
proxy=http://<proxy-host>:<proxy-port>/
インストール済みパッケージのアップデート
[centos@rdo ~]$ sudo dnf update -y
...
Complete!
fairewalldの無効化
[centos@rdo ~]$ sudo systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[centos@rdo ~]$ sudo systemctl stop firewalld
NetworkManagerを無効化して、network-scriptを有効化
[centos@rdo ~]$ sudo systemctl stop firewalld
[centos@rdo ~]$ sudo systemctl disable NetworkManager
Removed /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
Removed /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
[centos@rdo ~]$ sudo systemctl enable network
Failed to enable unit: Unit file network.service does not exist.
[centos@rdo ~]$ sudo dnf install network-scripts
...
Complete!
[centos@rdo ~]$ sudo systemctl enable network
network.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable network
[centos@rdo ~]$ sudo systemctl start network
bond, VLAN, IPアドレスの設定
[centos@rdo ~]$ cat <<EOF |sudo tee /etc/sysconfig/network-scripts/ifcfg-bond0 > /dev/null
> BONDING_OPTS=mode=802.3ad
> TYPE=Bond
> BONDING_MASTER=yes
> BOOTPROTO=static
> NAME=bond0
> DEVICE=bond0
> ONBOOT=yes
> EOF
[centos@rdo ~]$ sudo vim /etc/sysconfig/network-scripts/ifcfg-enp94s0f0
[centos@rdo ~]$ diff ifcfg-enp94s0f0 /etc/sysconfig/network-scripts/ifcfg-enp94s0f0
4c4
< BOOTPROTO=dhcp
---
> BOOTPROTO=static
14c14,16
< ONBOOT=no
---
> ONBOOT=yes
> MASTER=bond0
> SLAVE=yes
[centos@rdo ~]$ diff ifcfg-enp94s0f1 /etc/sysconfig/network-scripts/ifcfg-enp94s0f1
4c4
< BOOTPROTO=dhcp
---
> BOOTPROTO=static
14c14,16
< ONBOOT=no
---
> ONBOOT=yes
> MASTER=bond0
> SLAVE=yes
[centos@rdo ~]$ cat <<EOF |sudo tee /etc/sysconfig/network-scripts/ifcfg-bond0.183 > /dev/null
> VLAN=yes
> TYPE=Vlan
> PHYSDEV=bond0
> VLAN_ID=183
> BOOTPROTO=static
> NAME=bond0.183
> DEVICE=bond0.183
> ONBOOT=yes
> PREFIX=24
> IPADDR=172.16.93.2
> EOF
> EOF
[centos@rdo ~]$ cat <<EOF |sudo tee /etc/sysconfig/network-scripts/ifcfg-bond0.184 > /dev/null
> VLAN=yes
> TYPE=Vlan
> PHYSDEV=bond0
> VLAN_ID=184
> BOOTPROTO=static
> NAME=bond0.184
> DEVICE=bond0.184
> ONBOOT=yes
> EOF
[centos@rdo ~]$ sudo reboot
[centos@rdo ~]$ ip a
...
10: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
...
11: bond0.183@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
...
inet 172.16.183.2/24 brd 172.16.183.255 scope global bond0.183
valid_lft forever preferred_lft forever
inet6 fe80::42a6:b7ff:fe0e:56a4/64 scope link
valid_lft forever preferred_lft forever
12: bond0.184@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
...
パッケージのインストール
[centos@rdo ~]$ sudo dnf config-manager --enable powertools
[centos@rdo ~]$ sudo dnf install -y centos-release-openstack-victoria
...
Complete!
[centos@rdo ~]$ sudo dnf update -y
...
Complete!
packstackのインストール
[centos@rdo ~]$ sudo dnf install -y openstack-packstack
...
Complete!
[centos@rdo ~]$ packstack --version
packstack 17.0.0
OpenStackのインストール
answer-fileの出力
[centos@rdo ~]$ packstack --gen-answer-file packstack-answer.txt
Additional information:
* Parameter CONFIG_NEUTRON_L2_AGENT: You have chosen OVN Neutron backend. Note that this backend does not support the VPNaaS plugin. Geneve will be used as the encapsulation method for tenant networks
[centos@rdo ~]$ ll packstack-answer.txt
-rw------- 1 centos centos 51374 Jan 24 18:26 packstack-answer.txt
[centos@rdo ~]$ cp packstack-answer.txt packstack-answer.txt.bk
packstackの処理でデモ用イメージのダウンロードが実施されるが、プロキシに対応していないため、別途ダウンロードしてanswerフィルにパスを指定する必要がある。
- Run packstack behind a proxy
[centos@rdo ~]$ http_proxy=http://172.16.183.1:63128/ curl -O http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 273 100 273 0 0 530 0 --:--:-- --:--:-- --:--:-- 529
answer-fileの出力
ネットワークプラグインのデフォルトはOVNだが、今回はOVSを使用する。
[centos@rdo ~]$ packstack --gen-answer-file packstack-answer.txt --allinone --os-neutron-l2-agent=openvswitch --os-neutron-ml2-mechanism-drivers=openvswitch
--os-neutron-ml2-tenant-network-types=vxlan --os-neutron-ml2-type-drivers=vxlan,flat --os-neutron-ovs-bridge-mappings=extnet:br-ex --os-neutron-ovs-bridge-interfaces=br-ex:bond0.184 --provision-image-url=/home/centos/cirros-0.3.5-x86_64-disk.img
[centos@rdo ~]$ cp packstack-answer.txt packstack-answer.txt.bk
作成したanswerファイルのIPアドレスの指定を修正する、
[centos@rdo ~]$ vim packstack-answer.txt
[centos@rdo ~]$ diff packstack-answer.txt.bk packstack-answer.txt
94c94
< CONFIG_CONTROLLER_HOST=<メンテナンス用IP>
---
> CONFIG_CONTROLLER_HOST=172.16.183.2
97c97
< CONFIG_COMPUTE_HOSTS=<メンテナンス用IP>
---
> CONFIG_COMPUTE_HOSTS=172.16.183.2
101c101
< CONFIG_NETWORK_HOSTS=<メンテナンス用IP>
---
> CONFIG_NETWORK_HOSTS=172.16.183.2
137c137
< CONFIG_STORAGE_HOST=<メンテナンス用IP>
---
> CONFIG_STORAGE_HOST=172.16.183.2
141c141
< CONFIG_SAHARA_HOST=<メンテナンス用IP>
---
> CONFIG_SAHARA_HOST=172.16.183.2
274c274
< CONFIG_AMQP_HOST=<メンテナンス用IP>
---
> CONFIG_AMQP_HOST=172.16.183.2
296c296
< CONFIG_MARIADB_HOST=<メンテナンス用IP>
---
> CONFIG_MARIADB_HOST=172.16.183.2
339c339
< CONFIG_KEYSTONE_LDAP_URL=ldap://<メンテナンス用IP>
---
> CONFIG_KEYSTONE_LDAP_URL=ldap://172.16.183.2
1177c1177
< CONFIG_PROVISION_DEMO_FLOATRANGE=172.24.4.0/24
---
> CONFIG_PROVISION_DEMO_FLOATRANGE=172.16.184.0/24
1226c1226
< CONFIG_PROVISION_TEMPEST_FLOATRANGE=172.24.4.0/24
---
> CONFIG_PROVISION_TEMPEST_FLOATRANGE=172.16.184.0/24
1294c1294
< CONFIG_REDIS_HOST=<メンテナンス用IP>
---
> CONFIG_REDIS_HOST=172.16.183.2
packstackを実行
[centos@rdo ~]$ sudo packstack --answer-file=./packstack-answer.txt
Welcome to the Packstack setup utility
The installation log file is available at: /var/tmp/packstack/20220125-095030-h47zrb1a/openstack-setup.log
...
**** Installation completed successfully ******
Additional information:
* Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
* File /root/keystonerc_admin has been created on OpenStack client host 172.16.183.2. To use the command line tools you need to source the file.
* To access the OpenStack Dashboard browse to http://172.16.183.2/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
* The installation log file is available at: /var/tmp/packstack/20220125-095030-h47zrb1a/openstack-setup.log
* The generated manifests are available at: /var/tmp/packstack/20220125-095030-h47zrb1a/manifests
RDOの構築に成功!
packstackの処理では、sshでroot@172.16.183.2に接続するため、あらかじめキーペアの設定をしておく必要がある。
構築後のトラブル対応
Horizonをしばらく使っていると、だんだん動きが遅くなってきて、ゲートウェイタイムアウトしてしまった。
ログを確認すると、/var/log/mariadb/mariadb.log
で以下のエラーメッセージを見つけた。
2022-01-25 10:16:09 0 [ERROR] Error in accept: Too many open files
ググったところ、以下の記事を見つけた。
https://qiita.com/smallpalace/items/dff0eb8cb65497b02800
ファイルディスクリプタが枯渇してしまっているようである。
なので、ファイルディスクリプタの上限を大きくする。
MariaDBのファイルディスクリプタの上限を無限にする。
[centos@rdo ~]$ sudo vim /etc/systemd/system/mysql.service
[centos@rdo ~]$ cat /etc/systemd/system/mysql.service
...
[Service]
...
LimitNOFILE=infinity
[centos@rdo ~]$ sudo systemctl daemon-reload
[centos@rdo ~]$ sudo systemctl restart mysql
上記に加えて、システム全体を制御する設定?の方のファイルディスクリプタの上限も変更する必要がある。
[centos@rdo ~]$ sudo vim /etc/security/limits.conf
[centos@rdo ~]$ cat /etc/security/limits.conf
...
mysql soft nofile 65535
mysql hard nofile 65535
...
[centos@rdo ~]$ sudo reboot
参考:https://gist.github.com/fedir/a02d87a2f4ea53a961fe25256961bfdf
結果、サクサク動くようになった!