zoukankan      html  css  js  c++  java
  • openstack-2环境准备

    openstack-2环境准备

    硬件要求

    • 控制器
      控制器节点运行身份服务,映像服务,计算的管理部分,网络的管理部分,各种网络代理和仪表板。它还包括支持服务,如SQL数据库,消息队列和NTP。
      可选地,控制器节点运行块存储,对象存储,编排和遥测服务的部分。
      计算节点上需要至少两块网卡。

    • 计算
      计算节点运行操作实例的:term:hypervisor计算部分。默认情况下使用:term:KVM <基于内核的VM(KVM)>作为hypervisor。计算节点同样运行网络服务代理,用来连接实例到虚拟网络,通过:term:security groups <security group>为实例提供防火墙服务.instances via。
      你可以部署超过一个计算节点。每个结算节点至少需要两块网卡。

    • 设备块存储
      可选的块存储节点上包含了磁盘,块存储服务和共享文件系统会向实例提供这些磁盘。
      为了简单起见,计算节点和本节点之间的服务流量使用管理网络。生产环境中应该部署一个单独的存储网络以增强性能和安全。
      你可以部署超过一个块存储节点。每个块存储节点要求至少一块网卡。

    • 存储对象
      可选的对象存储节点包含了磁盘。对象存储服务用这些磁盘来存储账号,容器和对象。
      为了简单起见,计算节点和本节点之间的服务流量使用管理网络。生产环境中应该部署一个单独的存储网络以增强性能和安全。
      这个服务要求两个节点。每个节点要求最少一块网卡。你可以部署超过两个对象存储节点。

    • 网络

      • 网络选项1:者提供网络
        提供商网络选项以最简单的方式部署OpenStack Networking服务,主要是第2层(桥接/交换)服务和网络的VLAN分段。从本质上讲,它将虚拟网络桥接到物理网络,并依赖于物理网络基础设施来实现第3层(路由)服务。此外,DHCP服务还为实例提供IP地址信息。

      • 网络选项2:服务自网络
        自助服务网络选项通过第3层(路由)服务增强了提供商网络选项,这些服务使用覆盖分段方法(如VXLAN)实现 自助服务网络。从本质上讲,它使用NAT将虚拟网络路由到物理网络。此外,此选项为LBaaS和FWaaS等高级服务奠定了基础。

    最小需求支持概念验证环境

    控制节点:1处理器,4 GB内存,及5 GB存储
    计算节点:1处理器,2 GB内存,及10 GB存储

    安全

    OpenStack服务支持各种安全方法,包括密码,策略和加密。此外,支持服务(包括数据库服务器和消息代理)支持密码安全性。

    为简化安装过程,本指南仅适用于密码安全性。您可以手动创建安全密码,但服务配置文件中的数据库连接字符串不能接受“@”之类的特殊字符。我们建议您使用pwgen等工具生成它们 ,或者运行以下命令

    openssl rand -hex 10

    主机网络

    控制节点服务器

    配置网络接口

    第一个接口配置为管理网络接口

    cat /etc/sysconfig/network-scripts/ifcfg-eth0
    TYPE=Ethernet
    BOOTPROTO=none
    IPADDR=192.168.10.253
    PREFIX=24
    NAME=eth0
    DEVICE=eth0
    ONBOOT=yes

    配置第二块网卡作为提供者网络

    /etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME
    DEVICE=INTERFACE_NAME
    TYPE=Ethernet
    ONBOOT="yes"
    BOOTPROTO="none"

    配置名称解析

    # controller
    10.0.0.11       controller
    # compute1
    10.0.0.31       compute1
    # block1
    10.0.0.41       block1
    # object1
    10.0.0.51       object1
    # object2
    10.0.0.52       object

    计算节点

    配置网络接口

    第一个接口配置为管理网络接口

    cat /etc/sysconfig/network-scripts/ifcfg-eth0
    TYPE=Ethernet
    BOOTPROTO=none
    IPADDR=192.168.10.253
    PREFIX=24
    NAME=eth0
    DEVICE=eth0
    ONBOOT=yes

    配置第二块网卡作为提供者网络

    /etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME
    DEVICE=INTERFACE_NAME
    TYPE=Ethernet
    ONBOOT="yes"
    BOOTPROTO="none"

    配置名称解析

    # node
    192.168.10.254      node
    # controller
    192.168.10.201      controller
    # compute1
    192.168.10.203      compute1
    

    块存储节点(可选)

    配置网络接口

    第一个接口配置为管理网络接口

    cat /etc/sysconfig/network-scripts/ifcfg-eth0
    TYPE=Ethernet
    BOOTPROTO=none
    IPADDR=192.168.10.253
    PREFIX=24
    NAME=eth0
    DEVICE=eth0
    ONBOOT=yes

    配置第二块网卡作为提供者网络

    /etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME
    DEVICE=INTERFACE_NAME
    TYPE=Ethernet
    ONBOOT="yes"
    BOOTPROTO="none"

    配置名称解析

    # controller
    10.0.0.11       controller
    # compute1
    10.0.0.31       compute1
    # block1
    10.0.0.41       block1
    # object1
    10.0.0.51       object1
    # object2
    10.0.0.52       object

    验证连通性

    我们建议您在继续进行之前,验证到 Internet 和各个节点之间的连通性

    网络时间协议(NTP)

    方法一 ntp

    [root@node ~]# grep ^[a-z] /etc/ntp.conf 
    driftfile /var/lib/ntp/drift
    restrict default nomodify 
    restrict 127.0.0.1 
    restrict ::1
    restrict 192.168.10.0 mask 255.255.255.0 nomodify 
    server ntp.aliyun.com 
    server 127.127.1.0 iburst  local clock
    includefile /etc/ntp/crypto/pw
    keys /etc/ntp/keys
    disable monitor
    
    systemctl enable ntpd
    systemctl start ntpd

    方法二 chrony

    [root@node ~]# grep ^[a-Z] /etc/chrony.conf 
    server ntp.aliyun.com iburst
    driftfile /var/lib/chrony/drift
    makestep 1.0 3
    rtcsync
    allow 192.168.10.0/24
    logdir /var/log/chrony
    
    systemctl enable chronyd.service
    systemctl start chronyd.service

    控制节点服务器

    ntp

    crontab -l
    * */2 * * * /usr/sbin/ntpdate node && hwclock -w

    chrony

    grep ^[a-Z] /etc/chrony.conf 
    server node iburst
    driftfile /var/lib/chrony/drift
    makestep 1.0 3
    rtcsync
    logdir /var/log/chrony
    
    systemctl enable chronyd.service
    systemctl start chronyd.service

    其它节点服务器和控制节点服务一样

    验证操作

    [root@node ~]# chronyc sources
    210 Number of sources = 1
    MS Name/IP address         Stratum Poll Reach LastRx Last sample               
    ===============================================================================
    ^* 203.107.6.88                  2   6   377     5  +1030us[+2109us] +/-   25ms
    [root@control1 ~]# chronyc sources
    210 Number of sources = 1
    MS Name/IP address         Stratum Poll Reach LastRx Last sample               
    ===============================================================================
    ^* node                          3   6   363    21   -952us[-6526us] +/-   27ms

    OpenStack的包

    启用OpenStack库

    [root@control1 ~]# cat /etc/redhat-release 
    CentOS Linux release 7.6.1810 (Core) 
    
    yum install centos-release-openstack-ocata
    yum install https://rdoproject.org/repos/rdo-release.rpm
    
    [root@control1 ~]# ll /etc/yum.repos.d/
    total 48
    -rw-r--r--. 1 root root 1664 Nov 23  2018 CentOS-Base.repo
    -rw-r--r--  1 root root 1056 Sep  6  2016 CentOS-Ceph-Jewel.repo
    -rw-r--r--. 1 root root 1309 Nov 23  2018 CentOS-CR.repo
    -rw-r--r--. 1 root root  649 Nov 23  2018 CentOS-Debuginfo.repo
    -rw-r--r--. 1 root root  314 Nov 23  2018 CentOS-fasttrack.repo
    -rw-r--r--. 1 root root  630 Nov 23  2018 CentOS-Media.repo
    -rw-r--r--  1 root root 1170 Jun 23  2017 CentOS-OpenStack-ocata.repo
    -rw-r--r--  1 root root  612 Feb  1  2019 CentOS-QEMU-EV.repo
    -rw-r--r--. 1 root root 1331 Nov 23  2018 CentOS-Sources.repo
    -rw-r--r--  1 root root  353 Jul 31  2018 CentOS-Storage-common.repo
    -rw-r--r--. 1 root root 5701 Nov 23  2018 CentOS-Vault.repo

    完成安装

    安装 OpenStack 客户端

    yum install python-openstackclient

    RHEL和 CentOS 默认启用 SELinux 。安装 openstack-selinux 包实现对OpenStack服务的安全策略进行自动管理:

    yum install openstack-selinux

    SQL数据库

    安全并配置组件

    在的[mysqld]中,设置“绑定地址”值为控制节点的管理网络IP地址以是的其他节点可以通过管理网络访问访问数据库设置其他关键字来设置一些有用的选项和UTF-8编码

    yum install mariadb mariadb-server python2-PyMySQL
    /etc/my.cnf.d/openstack.cnf
    [mysqld]
    bind-address = 192.168.10.254
    
    default-storage-engine = innodb
    innodb_file_per_table = on
    max_connections = 4096
    collation-server = utf8_general_ci
    character-set-server = utf8

    完成安装

    启动数据库服务,并将其配置为开机自启

    systemctl enable mariadb.service
    systemctl start mariadb.service

    通过运行mysql_secure_installation 脚本来保护数据库服务。特别是,为数据库root帐户选择合适的密码

    mysql_secure_installation

    消息队列

    安装包

    yum install rabbitmq-server

    启动消息队列服务并将其配置为随系统启动

    systemctl enable rabbitmq-server.service
    systemctl start rabbitmq-server.service

    添加 openstack 用户

    [root@node ~]# rabbitmqctl add_user openstack openstackpass
    Creating user "openstack" ...

    openstack用户配置写和读权限

    [root@node ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
    Setting permissions for user "openstack" in vhost "/" ...

    打开 rabbitMQ 的 web 插件

    rabbitmq-plugins enable rabbitmq_management

    查看插件

    rabbitmq-plugins list 

    访问 rabbitMQ 的 web 界面
    默认用户名密码都是 guest,可以更改,web 访问端口为 15672

    ss -tnl|grep 15672

    web界面
    rabbitmq

    rabbitmq
    rabbitmq

    Memcached

    安装软件包

    yum install memcached python-memcached

    配置服务以使用控制器节点的管理IP地址

    [root@node ~]# cat /etc/sysconfig/memcached 
    PORT="11211"
    USER="memcached"
    MAXCONN="1024"
    CACHESIZE="64"
    OPTIONS="-l 192.168.10.254"

    启动Memcached服务,并且配置它随机启动

    systemctl start memcached
    systemctl enable memcached
    ss -tnl|grep 11211

    keepalived+haproxy

    [root@keepalivedhaproxy1 ~]# cat /etc/keepalived/keepalived.conf 
    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
         acassen@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_strict
       vrrp_iptables
       vrrp_garp_interval 0
       vrrp_gna_interval 0
    }
    
    vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
           192.168.10.233/24 dev eth0 label eth0:0
        }
    }
    
    [root@keepalivedhaproxy1 ~]# cat /etc/keepalived/keepalived.conf 
    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
         acassen@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_strict
       vrrp_iptables
       vrrp_garp_interval 0
       vrrp_gna_interval 0
    }
    
    vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
           192.168.10.233/24 dev eth0 label eth0:0
        }
    }
    [root@keepalivedhaproxy1 ~]# cat /etc/haproxy/haproxy.cfg 
    #---------------------------------------------------------------------
    # Example configuration for a possible web application.  See the
    # full configuration options online.
    #
    #   http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
    #
    #---------------------------------------------------------------------
    
    #---------------------------------------------------------------------
    # Global settings
    #---------------------------------------------------------------------
    global
        # to have these messages end up in /var/log/haproxy.log you will
        # need to:
        #
        # 1) configure syslog to accept network log events.  This is done
        #    by adding the '-r' option to the SYSLOGD_OPTIONS in
        #    /etc/sysconfig/syslog
        #
        # 2) configure local2 events to go to the /var/log/haproxy.log
        #   file. A line like the following can be added to
        #   /etc/sysconfig/syslog
        #
        #    local2.*                       /var/log/haproxy.log
        #
        log         127.0.0.1 local2
    
        chroot      /var/lib/haproxy
        pidfile     /var/run/haproxy.pid
        maxconn     4000
        user        haproxy
        group       haproxy
        daemon
    
        # turn on stats unix socket
        stats socket /var/lib/haproxy/stats
    
    #---------------------------------------------------------------------
    # common defaults that all the 'listen' and 'backend' sections will
    # use if not designated in their block
    #---------------------------------------------------------------------
    defaults
        mode                    http
        log                     global
        option                  httplog
        option                  dontlognull
        option http-server-close
        option forwardfor       except 127.0.0.0/8
        option                  redispatch
        retries                 3
        timeout http-request    10s
        timeout queue           1m
        timeout connect         10s
        timeout client          1m
        timeout server          1m
        timeout http-keep-alive 10s
        timeout check           10s
        maxconn                 3000
    
    listen stats
    mode http
    bind 0.0.0.0:9999
    stats enable
    log global
    stats uri /s
    
    listen mysql-3306
    bind 192.168.10.233:3306
    mode tcp
    server 192.168.10.254 192.168.10.254:3306 check inter 2000 fall 3 rise 5
    
    listen rabbit-5672
    bind 192.168.10.233:5672
    mode tcp
    server 192.168.10.254 192.168.10.254:5672 check inter 2000 fall 3 rise 5
    
    listen rabbit-15672
    bind 192.168.10.233:5672
    mode tcp
    server 192.168.10.254 192.168.10.254:15672 check inter 2000 fall 3 rise 5
    
    listen memcached-11211
    bind 192.168.10.233:11211
    mode tcp
    server 192.168.10.254 192.168.10.254:11211 check inter 2000 fall 3 rise 5
    
    listen keystone-5000
    bind 192.168.10.233:5000
    mode tcp
    server 192.168.10.201 192.168.10.201:5000 check inter 2000 fall 3 rise 5
    
    listen keystone-35357
    bind 192.168.10.233:35357
    mode tcp
    server 192.168.10.201 192.168.10.201:35357 check inter 2000 fall 3 rise 5
    
    listen glance-9292
    bind 192.168.10.233:9292
    mode tcp
    server 192.168.10.201 192.168.10.201:9292 check inter 2000 fall 3 rise 5
    
    listen glance-9191
    bind 192.168.10.233:9191
    mode tcp
    server 192.168.10.201 192.168.10.201:9191 check inter 2000 fall 3 rise 5
    
    listen nova-8774
    bind 192.168.10.233:8774
    mode tcp
    server 192.168.10.201 192.168.10.201:8774 check inter 2000 fall 3 rise 5
    
    listen nova-8778
    bind 192.168.10.233:8778
    mode tcp
    server 192.168.10.201 192.168.10.201:8778 check inter 2000 fall 3 rise 5
    
    listen neutron-9696
    bind 192.168.10.233:9696
    mode tcp
    server 192.168.10.201 192.168.10.201:9696 check inter 2000 fall 3 rise 5
    
    listen dashborad-80
    bind 192.168.10.233:80
    mode tcp
    server 192.168.10.201 192.168.10.201:80 check inter 2000 fall 3 rise 5
    
    listen vnc-6080
    bind 192.168.10.233:6080
    mode tcp
    server 192.168.10.201 192.168.10.201:6080 check inter 2000 fall 3 rise 5
    
    listen cinder-8776
    bind 192.168.10.233:8776
    mode tcp
    server 192.168.10.201 192.168.10.201:8776 check inter 2000 fall 3 rise 5
  • 相关阅读:
    【转】内部Handler类引起内存泄露
    检测是否存在相机硬件代码
    asp.net 过滤器
    iis 中经典和集成模式对应webconfig节点
    事务
    C# Excel操作
    一步一步部署SSIS包图解教程
    js和.net操作Cookie遇到的问题
    File,FileInfo,Directory,DirectoryInfo
    C#文件Copy
  • 原文地址:https://www.cnblogs.com/fina/p/11592491.html
Copyright © 2011-2022 走看看