---
title: 基础部分
description: "在所有节点执行以下操作。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/ecosystemEnable/OpenStack/kunpengopenstackqueens_04_005.html
sourcePath: /source/zh/kunpengcpfs/ecosystemEnable/OpenStack/kunpengopenstackqueens_04_005.html
indexId: 3324feaa1d000921d719bb3be314546fb4f3933415a9a01db27bd29013f40e9483
---
# 基础部分

#### DNS配置

在所有节点执行以下操作。

1. 修改“/etc/hosts”文件，添加如下信息。

  a. 修改hosts文件。
    1 vim /etc/hosts

  b. 在空白处按“i”添加以下内容。
    1 2 3 <管理节点网卡ip地址> controller <计算节点网卡ip地址> compute <对象存储节点网卡ip地址> object1

  c. 修改完成后按“Esc”退出编辑模式，输入:wq退出并保存。
    修改后的hosts文件如下图所示，此步骤需修改所有节点hosts文件。

2. 执行如下命令将节点名称改为controller（其余节点改成相对应的名称即可）。
  1 hostnamectl set-hostname controller

  修改后可使用hostname命令进行检查，反馈正确即可。如图所示：

  该操作执行完成后，节点名称已经更改，但是需要重新连接登录窗口才会生效。


#### 关闭SELinux

Linux系统默认开启的SELinux安全机制对于OpenStack等相关服务会做安全控制拦截，导致无法正常部署OpenStack组件。这是Linux OS本身的行为，鲲鹏BoostKit 虚拟化 使能套件并不对此提供的详细解决方案。如果客户想在自己的系统中使用SELinux，则需要自行寻找解决方法。

针对此限制，我们提供了快速的禁用SELinux的方法。鲲鹏BoostKit虚拟化使能套件中，提供的SELinux配置方法仅供参考，需用户自行评估并承担相应风险。

禁用SELinux可能会导致安全问题，如果客户最终的解决方案本身就没有规划启用SELinux，建议通过端到端的整体方案来弥补SELinux关闭带来的风险，且需自行承担安全风险。如果客户有SELinux的需求，建议根据实际的SELinux问题进行细粒度的规则配置，并保证整个系统的安全。


在所有节点执行以下操作。

- 临时关闭SELinux：
  1 setenforce 0

- 永久关闭SELinux（永久关闭的方法需要重启机器才能生效）：
  1 sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config


#### 开放防火墙端口

在所有节点执行以下操作。

1. 开放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

2. 开放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

3. 重新加载生效。
  1 firewall-cmd --reload


#### NTP配置

在控制节点执行以下操作。

1. 安装组件chrony。
  1 yum -y install chrony

2. 在所有节点上设置统一的时区，本文中将其设置为亚洲时区，用户可自行定义。
  1 timedatectl set-timezone Asia/Shanghai

3. 将控制节点设置为内部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

4. 启动chrony服务并将其配置为在系统引导时启动。
  1 2 systemctl enable chronyd.service systemctl start chronyd.service

5. 启用NTP同步。
  1 2 timedatectl set-ntp no timedatectl set-ntp yes


在计算节点和存储节点执行以下操作。

1. 安装chrony。
  1 yum -y install chrony

2. 编辑“/etc/chrony.conf”文件，添加“server controller iburst”并且删除或者注释掉其余server的选项。
  1 2 vim /etc/chrony.conf server controller iburst

3. 启动chrony服务并将其配置为在系统引导时启动。
  1 2 3 4 systemctl enable chronyd.service systemctl restart chronyd.service timedatectl set-ntp no timedatectl set-ntp yes

4. 验证时间同步。
```
chronyc sources
```


  - 控制节点显示外部的时钟源。
  - 计算节点和存储节点显示controller为时钟源。


#### 安装OpenStack客户端

在所有节点执行以下操作。

安装OpenStack客户端。

```
yum -y install python2-openstackclient
```


#### 安装与配置数据库

在控制节点执行以下操作。

1. 安装数据库。
  1 yum -y install mariadb mariadb-server python2-PyMySQL

2. 配置数据库。

  a. 创建并编辑文件“/etc/my.cnf.d/openstack.cnf”。
    1 vim /etc/my.cnf.d/openstack.cnf

  b. 添加如下内容：
    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地址。

3. 启动数据库服务，并设为开机启动。
  1 2 systemctl enable mariadb.service systemctl start mariadb.service

4. 数据库配置。
  1 mysql_secure_installation

  初次安装MariaDB，默认的root密码是空的，直接按“Enter”即可，然后再为root用户设置密码，例如“123456”，其余的操作按照截图操作即可。

5. 修改“/usr/lib/systemd/system/mariadb.service”文件，在文件[Service]下添加如下内容：
  1 2 LimitNOFILE=65535 LimitNPROC=65535

6. 修改“/etc/security/limits.conf”文件，添加如下内容：
  1 2 * soft nofile 65536 * hard nofile 65536

7. 重启数据库服务。
  1 2 systemctl daemon-reload systemctl restart mariadb.service

8. 查询是否更改生效。

  a. 进入mysql数据库。
    1 mysql -u root -p

    输入数据库密码：

  b. 查看MySQL最大连接数。
    1 show variables like 'max_connections';

  c. 查看当前服务器正在使用的连接数。
    1 show global status like 'Max_used_connections';

  d. 执行exit退出数据库。


#### 安装消息队列

在控制节点执行以下操作。

1. 安装rabbitmq-server。
  1 yum -y install rabbitmq-server

2. 配置消息队列服务启动和开机启动。
  1 2 systemctl enable rabbitmq-server.service systemctl start rabbitmq-server.service

3. 添加并配置openstack用户。
  1 2 rabbitmqctl add_user openstack <PASSWORD> rabbitmqctl set_permissions openstack ".*" ".*" ".*"

  <PASSWORD>是RabbitMQ服务为OpenStack用户设置的密码（密码不要包含字符"#"）。

4. 启动rabbitmq-manager插件。
  1 rabbitmq-plugins enable rabbitmq_management

  启动了插件后，可以在浏览器访问RabbitMQ服务。访问地址为“http://<controller_IP>:15672”，用户名为guest，密码为guest。

5. 修改RabbitMQ默认参数；编辑文件“/usr/lib/systemd/system/rabbitmq-server.service”在Service模块下添加如下参数。
  1 2 [Service] LimitNOFILE=16384

6. 重启消息队列服务。
  1 2 systemctl daemon-reload systemctl restart rabbitmq-server


#### 安装Memcached

在控制节点执行以下操作。

1. 安装Memcached。
  1 yum -y install memcached python2-memcached

2. 编辑“/etc/sysconfig/memcached”文件。
  1 vim /etc/sysconfig/memcached

3. 添加“controller”，配置服务以使用控制器节点的管理IP地址。这是为了通过管理网络启用其他节点的访问。
4. 启动Memcached服务，并设为开机启动。
  1 2 systemctl enable memcached.service systemctl start memcached.service
