zoukankan      html  css  js  c++  java
  • openstack基础环境部署以及openstack部署架构图

    安装 openstack 基础组件准备

    本次安装 T 版,各种组件最好安装正式版
    
    Alpha:是内部测试版,一般不向外部发布,通常只在软件开发者内部交流,该版本软件的 Bug较多,需要继续修改。
    
    Dev:在软件开发中多用于开发软件的代号,相比于 beta 版本,dev 版本可能出现的更早,甚至还没有发布。这也就意味着,dev 版本的软件通常比 beta 版本的软件更不稳定
    
    Beta:也是测试版,这个阶段的版本会一直加入新的功能。在 Alpha 版之后推出。
    
    RC:(Release Candidate) 就是发行候选版本,RC 版不会再加入新的功能了,主要着重于除错。
    
    GA:General Availability,正式发布的版本。
    
    Release:该版本意味“最终版本”,在前面版本的一系列测试版之后,终归会有一个正式版本,是最终交付用户使用的一个版本。该版本有时也称为标准版。
    

    注意事项

    1、openstack管理端需要运行多个服务,所以内存需要大一些,最少4G;openstack管理端是不运行虚拟机的,可以不开启内核的虚拟化功能;
    
    2、安装openstack时先安装认证服务,只有安装完认证服务(认证服务是使用apache运行的)之后,才可以创建账号进行管理,然后安装镜像服务、计算服务、网络服务,计算服务和网络服务分为管理端和客户端,所以需要在openstack的管理端安装计算服务和网络服务的管理端,在创建虚拟机的node节点上安装计算服务和网络服务的客户端,最后安装dashboard服务,openstack各种组件的API都是通过apache运行的;
    openstack的管理端负责创建虚拟机时的调度;
    通过openstack管理端创建虚拟机的相关数据最终都会记录到mysql中;node节点没有权限往数据库中写数据,只有控制端有权限,并且node节点与控制端通讯是通过rabbitmq间接通讯,node节点会监听rabbitmq,控制端也会监听rabbitmq,控制端把创建虚拟机的指令发送到rabbitmq,由监听rabbitmq指定队列的node节点接收消息并创建虚拟机;
    
    3、在使用RDO软件包时(安装openstack时)禁用EPEL,因为EPEL中的更新会破坏向后兼容性。或者,最好是使用yum-versionlock插件固定封装版本。
    

    安装前准备

    1、yum list centos-release-opensack*  #查看yum能够安装的openstack版本
    

    实现架构

    (01)

    openstack-controler

    https://docs.openstack.org/install-guide/overview.html #安装openstack前需要的硬件及系统配置

    https://docs.openstack.org/install-guide/environment-packages-rdo.html #安装参考文档

    1、hostnamectl set-hostname openstack-controler1.example.local  #修改控制端主机名
    
    2、yum install centos-release-openstack-train.noarch -y  
    #安装官方openstack T版的yum源;node节点、controler节点、mysql服务器都需要安装
    
    3、yum install https://rdoproject.org/repos/rdo-release.rpm  
    #安装RDO存储库RPM以启用OpenStack存储库;安装rdo源,这个源中保存了比较新并且稳定的openstack的包;node节点、controler节点、mysql服务器都需要安装
    
    4、yum install python-openstackclient -y
    #安装openstack客户端,会生成openstack的相关命令;只安装在node节点和controler节点
    
    5、yum install openstack-selinux -y
    #如果启用SELinux。安装 openstack-selinux 软件包以自动管理OpenStack服务的安全策略,就算没有启用selinux也可以安装;只安装在node节点和controler节点
    
    6、yum install python2-PyMySQL -y
    #此包用于openstack的控制端连接mysql所需要的模块,如果不安装,则无法连接数据库;此包只安装在控制端
    
    7、yum install python-memcached -y
    #安装python连接memcached的模块,只安装在控制端;如果不安装,则无法连接到memcached,无法连接到memcached,则账号就无法登录,因为账号信息是写入到memcache中的
    

    准备mysql服务器

    https://docs.openstack.org/install-guide/environment-sql-database-rdo.html #配置数据库

    1、hostnamectl set-hostname openstack-mysql.example.local
    
    2、yum install centos-release-openstack-train.noarch -y 
    #在openstack环境中,安装数据库及其他组件都需要使用openstack的官方源安装,否则会出现版本不兼容;openstack官方源中的数据库版本比centos的更新一些
    
    3、yum install https://rdoproject.org/repos/rdo-release.rpm
    
    4、yum install mariadb mariadb-server -y
    
    5、vim /etc/my.cnf.d/openstack.cnf
    [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 
    
    6、systemctl start mariadb
    
    7、systemctl enable mariadb
    

    准备haproxy服务器

    1、hostnamectl set-hostname openstack-ha1.example.local
    
    2、yum install keepalived haproxy -y
    
    3、vim /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
         acassen@firewall.loc
         failover@firewall.loc
         sysadmin@firewall.loc
       }
       notification_email_from Alexandre.Cassen@firewall.loc
       smtp_server 192.168.200.1
       smtp_connect_timeout 30
       router_id LVS_DEVEL
       vrrp_skip_check_adv_addr
       vrrp_iptables     #centos必须添加此选项,否则会生成iptables规则,造成无法访问
       vrrp_strict
       vrrp_garp_interval 0
       vrrp_gna_interval 0
    }
    
    vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 58
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            172.31.7.248 dev eth0 label eth0:0
        }
    }
    
    4、systemctl restart keepalived.service
    
    5、systemctl enable keepalived.service
    
    6、其余节点尝试VIP是否能够ping通:ping 172.31.7.248
    
    7、vim /etc/haproxy/haproxy.cfg
    listen openstack-mysql-3306
     mode tcp
     bind 172.31.7.248:3306
     server 172.31.7.103 172.31.7.103:3306 check inter 3s fall 3 rise 5
    
    listen openstack-rabbitmq-5672
     mode tcp
     bind 172.31.7.248:5672
     server 172.31.7.103 172.31.7.103:5672 check inter 3s fall 3 rise 5
    
    listen openstack-memcached-11211
     mode tcp
     bind 172.31.7.248:11211
     server 172.31.7.103 172.31.7.103:11211 check inter 3s fall 3 rise 5
     
    8、systemctl restart haproxy.service
    
    9、systemctl enable haproxy.service 
    
    10、在控制端通过telnet命令,测试这几个端口是否能够访问:telnet 172.31.7.248 5672
    

    安装rabbitmq

    https://docs.openstack.org/install-guide/environment-messaging-rdo.html #centos帮助文档

    所有创建虚拟机的指令,控制端都会发送到rabbitmq,node节点监听rabbitmq
    rabbitmq可以与mysql在同一个机器
    
    1、vim /etc/hosts     #rabbitmq需要识别主机名才能够启动,需要把主机名解析放到本地的hosts文件中
    172.31.7.103 openstack-mysql.example.local openstack-mysql
    #添加本机IP地址解析,并且必须是一个全称主机名,一个是短主机名
    
    2、yum install rabbitmq-server -y  
    #必须安装官方openstack源,这样rabbitmq版本才会新一些,与其他组件才兼容
    
    3、systemctl start rabbitmq-server.service  #监听端口是5672
    
    4、systemctl enable rabbitmq-server.service
    
    5、rabbitmqctl add_user openstack openstack123
    #创建一个openstack账号,用于controler和node节点连接rabbitmq的认证
    
    6、rabbitmqctl set_permissions openstack ".*" ".*" ".*"
    #给openstack账号正则配置,拥有读写权限
    
    7、rabbitmq-plugins list
       rabbitmq-plugins enable rabbitmq_management  #开启rabbitmq的web管理界面的插件,端口为15672
       
    8、浏览器访问 http://172.31.7.103:15672   #账号名密码都是guest   
    

    安装memcached

    https://docs.openstack.org/install-guide/environment-memcached-rdo.html #centos参考文档

    安装memcached是用于存储session信息;服务身份验证机制使用Memcached来缓存令牌
    在登录openstack的dashboard时,会产生一些session信息,这些session信息会存放到memcached中
    
    1、yum install memcached -y
    
    2、vim /etc/sysconfig/memcached
    PORT="11211"      #监听端口
    USER="memcached"
    MAXCONN="1024"
    CACHESIZE="1024"  #指定memcached使用的内存大小
    OPTIONS="-l 0.0.0.0,::1"  #指定监听地址
    
    3、systemctl start memcached.service
    
    4、systemctl enable memcached.service 
    
  • 相关阅读:
    Python 面向对象(下)
    Python 面向对象(上)
    《面向对象程序设计概述》 牛咏梅
    lastIndexOf is not a function
    oracle lpad 函数使用介绍
    oracle中length、lengthb、substr、substrb用法小结
    oracle获取字符串长度函数length()和hengthb()
    js获取当前日期时间
    win7系统下查看端口的占用情况以及如何删除端口进程
    IntelliJ IDEA “Finds duplicated code”提示如何关闭
  • 原文地址:https://www.cnblogs.com/dongzhanyi123/p/13299808.html
Copyright © 2011-2022 走看看