基础部分
DNS配置
在所有节点执行以下操作。
- 修改“/etc/hosts”文件,添加如下信息。
- 修改hosts文件。
1
vim /etc/hosts
- 在空白处按“i”添加以下内容。
1 2 3
<管理节点网卡ip地址> controller <计算节点网卡ip地址> compute <对象存储节点网卡ip地址> object1
- 修改完成后按“Esc”退出编辑模式,输入:wq退出并保存。
修改后的hosts文件如下图所示,此步骤需修改所有节点hosts文件。
- 修改hosts文件。
- 执行如下命令将节点名称改为controller(其余节点改成相对应的名称即可)。
1
hostnamectl set-hostname controller
修改后可使用hostname命令进行检查,反馈正确即可。如图所示:
该操作执行完成后,节点名称已经更改,但是需要重新连接登录窗口才会生效。
NTP配置
在控制节点执行以下操作。
- 安装组件chrony。
1
yum -y install chrony
- 在所有节点上设置统一的时间区域,本文中将其设置为亚洲时区,用户可自行定义。
1
timedatectl set-timezone Asia/Shanghai
- 将控制节点设置为内部NTP Server。
编辑“/etc/chrony.conf”文件,添加“allow 172.168.201.0/24”。
1
vim /etc/chrony.conf
1 2
allow 172.168.201.0/24 local stratum 10
- 启动chrony服务并将其配置为在系统引导时启动。
1 2
systemctl enable chronyd.service systemctl start chronyd.service
- 启用NTP同步。
1
timedatectl set-ntp yes
在计算节点和存储节点执行以下操作。
- 安装chrony。
1
yum -y install chrony
- 编辑“/etc/chrony.conf”文件,添加“server controller iburst”并且删除或者注释掉其余server的选项。
1 2
vim /etc/chrony.conf server controller iburst
- 启动chrony服务并将其配置为在系统引导时启动。
1 2
systemctl enable chronyd.service systemctl restart chronyd.service
- 验证时间同步。
1
chronyc sources
系统升级
在所有节点执行以下操作。
- 修改Yum配置文件禁用内核升级。
1 2
sed -i '$a exclude=kernel*' /etc/yum.conf sed -i '$a exclude=kernel centos-release' /etc/yum.conf
- 升级系统软件。
1
yum -y update
安装OpenStack客户端
在所有节点执行以下操作。
安装OpenStack客户端。
1
|
yum -y install python-openstackclient |
安装与配置数据库
在控制节点执行以下操作。
- 安装数据库。
1
yum -y install mariadb mariadb-server python2-PyMySQL
- 配置数据库。
- 创建并编辑文件“/etc/my.cnf.d/openstack.cnf”。
1
vim /etc/my.cnf.d/openstack.cnf
- 添加如下内容:
1 2 3 4 5 6 7
[mysqld] bind-address = 172.168.201.11 default-storage-engine = innodb innodb_file_per_table = on max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8
bind-address的IP地址为控制节点的管理IP地址。
- 创建并编辑文件“/etc/my.cnf.d/openstack.cnf”。
- 启动数据库服务,并设为开机启动。
1 2
systemctl enable mariadb.service systemctl start mariadb.service
- 数据库配置。
1
mysql_secure_installation
初次安装MariaDB,默认的root密码是空的,直接按“Enter”即可,然后再为root用户设置密码,例如“123456”,其余的操作按照截图操作即可。
- 修改“/usr/lib/systemd/system/mariadb.service”文件,在文件[Service]下添加如下内容。
1 2
LimitNOFILE=65535 LimitNPROC=65535
- 修改“/etc/security/limits.conf”文件,添加如下内容。
1 2
* soft nofile 65536 * hard nofile 65536
- 修改“/etc/pam.d/login”文件,添加如下内容。
1
session required /lib64/security/pam_limits.so
- 修改“/etc/sysctl.conf”文件,添加如下内容。
1
fs.file-max = 65536
并执行如下命令。
1
sysctl -p
- 重启数据库服务。
1 2
systemctl daemon-reload systemctl restart mariadb.service
- 查询是否更改生效。
- 进入MySQL数据库。
1
mysql -u root -p
输入数据库密码:
- 查看MySQL最大连接数。
1
show variables like 'max_connections';
- 查看当前服务器正在使用的连接数。
1
show global status like 'Max_used_connections';
- 执行exit退出数据库。
- 进入MySQL数据库。
安装消息队列
在控制节点执行以下操作。
- 安装rabbitmq-server。
1
yum -y install rabbitmq-server
- 配置消息队列服务启动和开机启动。
1 2
systemctl enable rabbitmq-server.service systemctl start rabbitmq-server.service
- 添加并配置openstack用户。
1 2
rabbitmqctl add_user openstack <PASSWORD> rabbitmqctl set_permissions openstack ".*" ".*" ".*"
<PASSWORD>是RabbitMQ服务为OpenStack用户设置的密码(密码不要包含字符"#")。
- 启动rabbitmq-manager插件。
1
rabbitmq-plugins enable rabbitmq_management
启动了插件后,可以在浏览器访问RabbitMQ服务。访问地址为http://<controller_IP>:15672,用户名为guest,密码为guest。
- 修改RabbitMQ默认参数;编辑文件/usr/lib/systemd/system/rabbitmq-server.service,在Service模块下添加如下参数。
1 2
[Service] LimitNOFILE=16384
- 重启消息队列服务。
1 2
systemctl daemon-reload systemctl restart rabbitmq-server
安装Memcached
在控制节点执行以下操作。
- 安装Memcached。
1
yum -y install memcached python-memcached
- 编辑“/etc/sysconfig/memcached”文件。
1
vim /etc/sysconfig/memcached
- 添加“controller”,配置服务以使用控制器节点的管理IP地址。这是为了通过管理网络启用其他节点的访问。
- 启动Memcached服务,并设为开机启动。
1 2
systemctl enable memcached.service systemctl start memcached.service
安装ETCD
在控制节点执行以下操作。
- 安装ETCD。
1
yum -y install etcd
- 编辑“/etc/etcd/etcd.conf”文件,修改如下9项参数,其余的全部注释掉。
1 2 3 4 5 6 7 8 9 10 11
#[Member] ETCD_DATA_DIR="/var/lib/etcd/default.etcd" ETCD_LISTEN_PEER_URLS="http://172.168.201.11:2380" ETCD_LISTEN_CLIENT_URLS="http://172.168.201.11:2379" ETCD_NAME="controller" #[Clustering] ETCD_INITIAL_ADVERTISE_PEER_URLS="http://172.168.201.11:2380" ETCD_ADVERTISE_CLIENT_URLS="http://172.168.201.11:2379" ETCD_INITIAL_CLUSTER="controller=http://172.168.201.11:2380" ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01" ETCD_INITIAL_CLUSTER_STATE="new"
注意修改IP地址,所有的地址都是控制节点的管理IP地址。
- 启动ETCD服务。
1 2
systemctl enable etcd systemctl start etcd
关闭SELinux
Linux系统默认开启的SELinux安全机制对于OpenStack等相关服务会做安全控制拦截,导致无法正常部署OpenStack组件。这是Linux OS本身的行为,鲲鹏BoostKit
针对此限制,我们提供了快速的禁用SELinux的方法。鲲鹏BoostKit虚拟化使能套件中,提供的SELinux配置方法仅供参考,需用户自行评估并承担相应风险。
禁用SELinux可能会导致安全问题,如果客户最终的解决方案本身就没有规划启用SELinux,建议通过端到端的整体方案来弥补SELinux关闭带来的风险,且需自行承担安全风险。如果客户有SELinux的需求,建议根据实际的SELinux问题进行细粒度的规则配置,并保证整个系统的安全。
在所有节点执行以下操作。
- 临时关闭SELinux。
1
setenforce 0
- 永久关闭SELinux。永久关闭SELinux的方法需要重启服务器才能生效。
1
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
开放防火墙端口
在所有节点执行以下操作。
- 开放TCP端口。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
firewall-cmd --zone=public --add-port=8082/tcp --permanent firewall-cmd --zone=public --add-port=8773-8778/tcp --permanent firewall-cmd --zone=public --add-port=6080-6082/tcp --permanent firewall-cmd --zone=public --add-port=8386/tcp --permanent firewall-cmd --zone=public --add-port=5000/tcp --permanent firewall-cmd --zone=public --add-port=9292/tcp --permanent firewall-cmd --zone=public --add-port=9191/tcp --permanent firewall-cmd --zone=public --add-port=9696/tcp --permanent firewall-cmd --zone=public --add-port=6000-6002/tcp --permanent firewall-cmd --zone=public --add-port=6200-6202/tcp --permanent firewall-cmd --zone=public --add-port=8000-8004/tcp --permanent firewall-cmd --zone=public --add-port=8999/tcp --permanent firewall-cmd --zone=public --add-port=8777/tcp --permanent firewall-cmd --zone=public --add-port=8989/tcp --permanent firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --zone=public --add-port=443/tcp --permanent firewall-cmd --zone=public --add-port=873/tcp --permanent firewall-cmd --zone=public --add-port=3260/tcp --permanent firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --zone=public --add-port=5672/tcp --permanent firewall-cmd --zone=public --add-port=6088/tcp --permanent firewall-cmd --zone=public --add-port=6080/tcp --permanent firewall-cmd --zone=public --add-port=15672/tcp --permanent firewall-cmd --zone=public --add-port=323/tcp --permanent firewall-cmd --zone=public --add-port=11211/tcp --permanent firewall-cmd --zone=public --add-port=123/tcp --permanent firewall-cmd --zone=public --add-port=69/tcp --permanent firewall-cmd --zone=public --add-port=5900-5999/tcp --permanent firewall-cmd --zone=public --add-port=2379-2380/tcp --permanent firewall-cmd --zone=public --add-port=6640/tcp --permanent firewall-cmd --zone=public --add-port=22/tcp --permanent
- 开放UDP端口。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
firewall-cmd --zone=public --add-port=6640/udp --permanent firewall-cmd --zone=public --add-port=8082/udp --permanent firewall-cmd --zone=public --add-port=8773-8778/udp --permanent firewall-cmd --zone=public --add-port=6080-6082/udp --permanent firewall-cmd --zone=public --add-port=8386/udp --permanent firewall-cmd --zone=public --add-port=5000/udp --permanent firewall-cmd --zone=public --add-port=9292/udp --permanent firewall-cmd --zone=public --add-port=9191/udp --permanent firewall-cmd --zone=public --add-port=9696/udp --permanent firewall-cmd --zone=public --add-port=6000-6002/udp --permanent firewall-cmd --zone=public --add-port=6200-6202/udp --permanent firewall-cmd --zone=public --add-port=8000-8004/udp --permanent firewall-cmd --zone=public --add-port=8999/udp --permanent firewall-cmd --zone=public --add-port=8777/udp --permanent firewall-cmd --zone=public --add-port=8989/udp --permanent firewall-cmd --zone=public --add-port=80/udp --permanent firewall-cmd --zone=public --add-port=8080/udp --permanent firewall-cmd --zone=public --add-port=443/udp --permanent firewall-cmd --zone=public --add-port=873/udp --permanent firewall-cmd --zone=public --add-port=3260/udp --permanent firewall-cmd --zone=public --add-port=3306/udp --permanent firewall-cmd --zone=public --add-port=5672/udp --permanent firewall-cmd --zone=public --add-port=6088/udp --permanent firewall-cmd --zone=public --add-port=6080/udp --permanent firewall-cmd --zone=public --add-port=15672/udp --permanent firewall-cmd --zone=public --add-port=323/udp --permanent firewall-cmd --zone=public --add-port=11211/udp --permanent firewall-cmd --zone=public --add-port=123/udp --permanent firewall-cmd --zone=public --add-port=69/udp --permanent firewall-cmd --zone=public --add-port=5900-5999/udp --permanent firewall-cmd --zone=public --add-port=2379-2380/udp --permanent firewall-cmd --zone=public --add-port=22/udp --permanent
- 重新加载生效。
1
firewall-cmd --reload