3.1 控制节点环境准备

1. 基础安全设置
为了避免实验过程中受到干扰,我们需要先关闭防火墙和 SELinux。
# 关闭防火墙并设置开机不启动
systemctl stop firewalld
systemctl disable firewalld
# 临时关闭 SELinux
setenforce 0
# 修改配置文件,永久关闭 SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
2. 配置主机名
为了让集群里的机器互相认识,我们需要给控制节点起一个规范的名字。
# 设置主机名为 controller
hostnamectl set-hostname controller
[root@controller ~]。3. 配置 NTP 时间同步
OpenStack 的各个组件对时间非常敏感,如果机器之间时间不同步,会导致各种奇怪的报错。我们使用 chrony 来同步时间。
安装 chrony 包:
yum install chrony -y
修改配置文件 /etc/chrony.conf:
我们需要让控制节点作为时间服务器,允许局域网内的其他机器(如计算节点)来同步时间。在文件中添加或修改以下内容:
# 允许 192.168.192.0 网段的机器访问
allow 192.168.192.0/24
启动服务:
systemctl enable chronyd
systemctl start chronyd
4. 安装 OpenStack 运行环境
我们要安装的是 OpenStack 的 Rocky 版本。
安装软件源:
yum install centos-release-openstack-rocky -y
替换为国内镜像源:
由于默认的官方源在国外,下载速度很慢,我们将其替换为阿里云的镜像站。
sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-OpenStack-*.repo
sed -i 's|^#baseurl=|baseurl=|g' /etc/yum.repos.d/CentOS-OpenStack-*.repo
sed -i 's|http://mirror.centos.org|http://mirrors.aliyun.com/centos-vault|g' /etc/yum.repos.d/CentOS-OpenStack-*.repo
sed -i 's|http://buildlogs.centos.org|http://mirrors.aliyun.com/centos-vault|g' /etc/yum.repos.d/CentOS-OpenStack-*.repo
更新系统并安装基础工具:
# 升级所有软件包到最新版本
yum upgrade -y
# 安装 OpenStack 客户端和相关的安全插件
yum install python-openstackclient openstack-selinux -y
5. 安装并配置数据库
OpenStack 使用 MariaDB 数据库来存储大部分的状态信息。
安装数据库软件:
yum install mariadb mariadb-server python2-PyMySQL -y
创建并编辑配置文件 /etc/my.cnf.d/openstack.cnf:
[mysqld]
# 这里的 IP 地址要替换成你控制节点自己的管理 IP
bind-address = 192.168.192.202
default-storage-engine = innodb # 设置默认存储引擎
innodb_file_per_table = on # 每个表的数据独立保存成文件
max_connections = 4096 # 调高最大连接数,防止服务多了连不上
collation-server = utf8_general_ci # 设置字符集为 UTF-8,避免乱码
character-set-server = utf8
启动数据库:
systemctl start mariadb
systemctl enable mariadb
数据库安全初始化:
执行下面的命令来设置数据库密码并清理测试数据。
mysql_secure_installation

Y 回车即可。6. 安装消息队列 RabbitMQ
OpenStack 的各个服务之间是通过消息队列进行通信的,RabbitMQ 就像是它们之间的“邮递员”。
安装并启动:
yum install rabbitmq-server -y
systemctl start rabbitmq-server
systemctl enable rabbitmq-server

配置用户:
我们需要创建一个名为 openstack 的用户,密码也设为 openstack。
rabbitmqctl add_user openstack openstack

配置权限:
给 openstack 用户授予读、写和配置的权限:
rabbitmqctl set_permissions openstack ".*" ".*" ".*"

7. 安装 Memcached 缓存服务
Memcached 主要用于缓存身份认证令牌,可以显著提高 OpenStack 的响应速度。
安装软件:
yum install memcached python-memcached -y
修改配置文件 /etc/sysconfig/memcached:
修改 OPTIONS 这一行,确保它监听在控制节点的主机名或 IP 上。
OPTIONS="-l 127.0.0.1,::1,controller"
启动服务:
systemctl start memcached
systemctl enable memcached

8. 安装 Etcd 服务
Etcd 是一个分布式的键值存储系统,OpenStack 使用它来保存一些关键的配置同步信息。
安装软件:
yum install etcd -y
修改配置文件 /etc/etcd/etcd.conf:
192.168.192.212 替换为你自己控制节点的实际 IP 地址。#[Member]
ETCD_LISTEN_PEER_URLS="http://192.168.192.212:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.192.212:2379"
ETCD_NAME="controller"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.192.212:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.192.212:2379"
ETCD_INITIAL_CLUSTER="controller=http://192.168.192.212:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
启动服务:
systemctl start etcd
systemctl enable etcd