LoginSignup
1
1

More than 1 year has passed since last update.

CentOS8にAll-in-One構成のRDOをインストールする

Last updated at Posted at 2022-01-25

環境

  • 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

結果、サクサク動くようになった!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1