中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

基础部分

DNS配置

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

  1. 修改“/etc/hosts”文件,添加如下信息。
    1. 修改hosts文件。
      1
      vim /etc/hosts
      
    2. 在空白处按“i”添加以下内容。
      1
      2
      3
      <管理节点网卡ip地址> controller
      <计算节点网卡ip地址> compute
      <对象存储节点网卡ip地址> object1
      
    3. 修改完成后按“Esc”退出编辑模式,输入:wq退出并保存。

      修改后的hosts文件如下图所示,此步骤需修改所有节点hosts文件。

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

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

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

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
    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
    systemctl enable chronyd.service
    systemctl restart chronyd.service
    
  4. 验证时间同步。
    1
    chronyc sources
    
    • 控制节点显示外部的时钟源。

    • 计算节点和存储节点显示controller为时钟源。

安装OpenStack客户端

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

安装OpenStack客户端。

1
yum -y install python2-openstackclient

安装与配置数据库

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

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

  2. 配置数据库。
    1. 创建并编辑文件“/etc/my.cnf.d/openstack.cnf”。
      1
      vim /etc/my.cnf.d/openstack.cnf
      
    2. 添加如下内容:
      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
    

    该章节中的68需要在所有的节点都执行。

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

  7. 修改“/etc/pam.d/login”文件,添加如下内容:
    1
    session required /lib64/security/pam_limits.so
    

  8. 修改“/etc/sysctl.conf”文件,添加如下内容。
    1
    fs.file-max = 65536
    

    并执行如下命令。

    1
    sysctl -p
    

  9. 重启数据库服务。
    1
    2
    systemctl daemon-reload
    systemctl restart mariadb.service
    
  10. 查询是否更改生效。
    1. 进入mysql数据库。
      1
      mysql -u root -p
      

      输入数据库密码:

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

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

    4. 执行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 python-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
    

安装ETCD

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

  1. 安装ETCD。
    1
    yum -y install etcd
    
  2. 编辑“/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地址。

  3. 启动ETCD服务。
    1
    2
    systemctl enable etcd
    systemctl start etcd
    

关闭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