zoukankan      html  css  js  c++  java
  • CentOS7安装OpenStack(Rocky版)-01.控制节点的系统环境准备

    分享一下Rocky版本的OpenStack安装管理经验:

    OpenStack每半年左右更新一版,目前是版本是201808月发布的版本-R版(Rocky),目前版本安装方法优化较好,不过依然是比较复杂

    官方文档地址:https://docs.openstack.org/install-guide/openstack-services.html

    本文主要分享控制节点的环境配置方法:

    ----------------  完美的分割线  ------------------

    1.0.系统环境

    1)生产测试应用的服务器最好是物理机,虚拟目前可以完成搭建测试体验

    2)系统选择是目前的最新版本:CentOS Linux release 7.5.1804 (Core) 

    3)控制节点Controller :192.168.1.81
          计算节点Nova:192.168.1.82

    1.1.配置域名解析 

    1)配置主机名

    # 主机名设置好就不能修改,否则会出问题,控制节点和计算节点配置相同,且都需要配置

    hostname openstack01.zuiyoujie.com
    hostname
    echo "openstack01.zuiyoujie.com"> /etc/hostname
    cat /etc/hostname

    2)配置主机名解析

    vim /etc/hosts
    -----------------------------------
    192.168.1.81    openstack01.zuiyoujie.com controller
    192.168.1.82    openstack02.zuiyoujie.com compute02 block02 object02
    -----------------------------------

    # 配置主机名的FQDN格式,和集群内部角色名称方便后续配置

    1.2.关闭防火墙和selinux

    1)关闭iptables

    # 在CentOS7上面是firewalld

    systemctl stop firewalld.service
    systemctl disable firewalld.service
    systemctl status firewalld.service

    2)关闭 selinux

    setenforce 0
    getenforce
    sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
    grep SELINUX=disabled /etc/sysconfig/selinux

    1.3.配置时间同步

    1)在控制端配置时间同步服务

    yum install chrony -y

    2)编辑配置文件确认有以下配置

    vim /etc/chrony.conf
    --------------------------------
    server ntp1.aliyun.com iburst
    server ntp2.aliyun.com iburst
    allow 192.168.1.0/24
    --------------------------------

    3)重启ntp服务,并配置开机自启动

    systemctl restart chronyd.service
    systemctl status chronyd.service
    systemctl enable chronyd.service
    systemctl list-unit-files |grep chronyd.service

    4)设置时区,同步时间

    timedatectl set-timezone Asia/Shanghai
    chronyc sources
    timedatectl status

    # 配置完成,如下显示

    [root@openstack01 ~]# chronyc sources                  
    210 Number of sources = 2
    MS Name/IP address         Stratum Poll Reach LastRx Last sample               
    ==================================================================================
    ^* 120.25.115.20                 2   6    17     9    +17ms[  +22ms] +/-   34ms
    ^+ 203.107.6.88                  2   6    17     9  +3029us[+8251us] +/-   54ms
    [root@openstack01 ~]# timedatectl status
          Local time: 一 2018-10-22 15:13:51 CST
      Universal time: 一 2018-10-22 07:13:51 UTC
            RTC time: 一 2018-10-22 07:13:52
           Time zone: Asia/Shanghai (CST, +0800)
         NTP enabled: yes
    NTP synchronized: yes
     RTC in local TZ: no
          DST active: n/a

    1.4.配置相关yum源 

    1)配置阿里云的base和epel源

    mv -f /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    
    mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

    2)安装openstack-rocky的仓库

    yum install centos-release-openstack-rocky -y
    yum clean all
    yum makecache

    # 也可以手动创建OpenStack的阿里云yum源地址

    vim /etc/yum.repos.d/CentOS-OpenStack-Rocky.repo
    ----------------------------------
    [centos-openstack-rocky]
    name=CentOS-7 - OpenStack rocky
    baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/openstack-rocky/
    gpgcheck=1
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud
    
    [centos-openstack-rocky-test]
    name=CentOS-7 - OpenStack rocky Testing
    baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/openstack-rocky/
    gpgcheck=0
    enabled=0
    
    [centos-openstack-rocky-debuginfo]
    name=CentOS-7 - OpenStack rocky - Debug
    baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud
    
    [centos-openstack-rocky-source]
    name=CentOS-7 - OpenStack rocky - Source
    baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/openstack-rocky/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud
    
    [rdo-trunk-rocky-tested]
    name=OpenStack rocky Trunk Tested
    baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/rdo-trunk-rocky-tested/
    gpgcheck=0
    enabled=0
    -----------------------------------

    3)更新软件包

    yum update -y

    4)安装openstack客户端相关软件

    yum install python-openstackclient openstack-selinux -y

    1.5.在控制节点安装数据库

    # 可以修改系统内核更改最大连接数和文件句柄数

    1)安装mariadb相关软件包

    # CentOS7.5默认数据库为maraidb

    yum install mariadb mariadb-server MySQL-python python2-PyMySQL -y

    2)创建openstack的数据库配置文件

    vim /etc/my.cnf.d/mariadb_openstack.cnf
    # 在[mysqld]添加以下配置
    -----------------------------------
    [mysqld]
    bind-address = 0.0.0.0
    default-storage-engine = innodb
    innodb_file_per_table = on
    max_connections = 4096
    collation-server = utf8_general_ci
    character-set-server = utf8
    init-connect = 'SET NAMES utf8'
    -----------------------------------

    # 配置解释:

    default-storage-engine = innodb    默认存储引擎
    innodb_file_per_table            使用独享表空间模式,每一个表都会建一个表空间,都会有索引文件,查索引快,共享表空间,共用一个表空间和索引,如果有损坏很难修复,比如说zabbix用到的数据库如果不使用的独享表空间,很难进行优化
    collation-server = utf8_general_ci
    init-connect = 'SET NAMES utf8'
    character-set-server = utf8

    3)启动数据库设置开机启动

    systemctl restart mariadb.service
    systemctl status mariadb.service 
    
    systemctl enable mariadb.service 
    systemctl list-unit-files |grep mariadb.service

    4)初始化数据库并重新启动

    # 设置密码,默认密码为空,然后输入密码123456,一路y回车

    /usr/bin/mysql_secure_installation                                                                 
    systemctl restart mariadb.service

    # 注意:生产环境可以使用pwgen工具生成数据库密码

    openssl rand -hex 10

    5)创建openstack相关数据库,进行授权

    # 测试下数据库,相关的数据库在需要时单独创建

    mysql -p123456
    -----------------------------------
    flush privileges; show databases; select user,host from mysql.user; exit -----------------------------------

    # 至此,数据库配置完毕

    1.6.在控制节点安装消息队列rabbitmq

    消息队列( MQ)全称为 Message Queue, 是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。
    消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。
    队列的使用除去了接收和发送应用程序同时执行的要求。
    RabbitMQ 是一个在 AMQP 基础上完整的,可复用的企业消息系统。他遵循 Mozilla Public License 开源协议。

    1)安装rabbitmq-server

    yum install rabbitmq-server -y

    2)启动rabbitmq,并配置自启动

    # 端口5672,15672,用于拍错

    systemctl start rabbitmq-server.service
    systemctl status rabbitmq-server.service
    
    systemctl enable rabbitmq-server.service
    systemctl list-unit-files |grep rabbitmq-server.service

    3)创建消息队列中openstack账号及密码

    # 添加openstack用户和密码,配置用户权限,配置读,写权限

    rabbitmqctl add_user openstack openstack
    rabbitmqctl set_permissions openstack ".*" ".*" ".*"
    rabbitmqctl set_permissions -p "/" openstack ".*" ".*" ".*"

    4)启用rabbitmq_management插件实现 web 管理

    # 查看支持的插件

    rabbitmq-plugins list

    # 启用web管理插件,需要重启服务使之生效

    rabbitmq-plugins enable rabbitmq_management
    systemctl restart rabbitmq-server.service
    rabbitmq-plugins list
    lsof -i:15672

    5)浏览器访问RabbitMQ进行测试

    访问地址:http://192.168.1.81:15672

    # 默认用户名密码都是guest
    # web界面可以管理创建用户,管理权限

    # rabbitmq配置完毕

    1.7.在控制节点上安装Memcached

    认证服务认证缓存使用Memcached缓存令牌。缓存服务memecached运行在控制节点。在生产部署中,推荐联合启用防火墙、认证和加密保证它的安全。

    1)安装Memcached用于缓存令牌

    yum install memcached python-memcached -y

    2)修改memcached配置文件

    vim /etc/sysconfig/memcached
    ----------------------------------
    OPTIONS="-l 127.0.0.1,controller"
    ----------------------------------

    # 如果没有启用IPv6地址需要删掉::1的地址绑定

    3)启动memcached并设置开机自启动

    systemctl start memcached.service
    systemctl status memcached.service
    netstat -anptl|grep memcached
    
    systemctl enable memcached.service
    systemctl list-unit-files |grep memcached.service

    # memcached参数说明:

    -d选项是作为守护进程在后台运行 
    -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB, 
    -u是运行Memcache的用户,我这里是root, 
    -l是监听的服务器IP地址,如果有多个地址的话 
    -p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口, 
    -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定, 
    -P是设置保存Memcache的pid文件
    -vv是以very vrebose模式启动,将调试信息和错误输出到控制台

    # 至此,memcached配置完毕

    1.8.在控制节点上安装Etcd服务

    # 这个Etcd服务是新加入的,用于自动化配置

    1)安装etcd服务

    yum install etcd -y

    2)修改etcd配置文件

    vim /etc/etcd/etcd.conf
    -----------------------------------
    #[Member]
    ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
    ETCD_LISTEN_PEER_URLS="http://192.168.1.81:2380"
    ETCD_LISTEN_CLIENT_URLS="http://192.168.1.81:2379"
    ETCD_NAME="controller"
    
    #[Clustering]
    ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.1.81:2380"
    ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.81:2379"
    ETCD_INITIAL_CLUSTER="controller=http://192.168.1.81:2380"
    ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
    ETCD_INITIAL_CLUSTER_STATE="new"
    ------------------------------------

    # 注意上面的IP地址不能用controller替代,无法解析

    3)启动etcd并设置开机自启动

    systemctl start etcd.service
    systemctl status etcd.service
    netstat -anptl|grep etcd
    
    systemctl enable etcd.service
    systemctl list-unit-files |grep etcd.service

    # 至此,控制节点controller就完成基础环境的配置,下面可以开始安装 openstack 的组件

    # 虚拟机的话配置完成可以关机做快照

    ======== 完毕,呵呵呵呵 ========

    附:openstack计算节点的系统环境配制方法:https://www.cnblogs.com/tssc/p/9857647.html

  • 相关阅读:
    hdu 6836
    2019 树形—DP
    2020牛客暑期多校训练营(第六场)
    hdu 6756 Finding a MEX 线段树
    2020 Multi-University Training Contest 2
    spring boot maven 打jar包 不能引入外部jar
    git 操作命令
    homestead 安装swoole
    MYSQL-触发器
    再次认知const
  • 原文地址:https://www.cnblogs.com/tssc/p/9857526.html
Copyright © 2011-2022 走看看