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
原文地址:https://www.cnblogs.com/fina/p/11592491.html