OpenStack_Rocky版-1.基础环境配置
1.基础环境配置
1.1 节点硬件规划
1.2 节点网络规划
本次网络使用linuxbridge+vxlan模式,包含三个网络平面:管理网络、外部网络和租户隧道网络。
节点网络规划如下:
节点名称 | 网卡名称 | 网卡模式 | 虚拟交换机 | 网络类型 | IP地址 |
---|---|---|---|---|---|
controller | ens32 | NAT | VMnet8 | 外部网络/管理网络 | 192.168.1.10 |
ens33 | 仅主机 | VMnet8 | 隧道网络 | 192.168.2.10 | |
compute | ens32 | NAT | VMnet8 | 外部网络/管理网络 | 192.168.1.20 |
ens33 | 仅主机 | VMnet1 | 隧道网络 | 192.168.2.20 |
网络规划说明:
- 这里只用了两块网卡,因为我这里管理网络和外部网络可以使用同一个
- 其实正常应该是三块网卡
- 管理网络配置为仅主机模式,作用不大仅仅用来局域网内的主机管理,如果内部有yum源,这个模式也是可以的
- 隧道网络配置为仅主机模式,因为隧道网络不需要访问互联网,仅用来承载openstack内部租户的网络流量
- 外部网络配置为NAT模式,主要是实现openstack租户网络对外网的访问,另外openstack软件包的部署安装也走这个网络,所以这里我把外部网络和管理网络用的是同一块网卡
三种网络平面说明:
- 管理网络(management/API网络):
提供系统管理相关功能,用于节点之间各服务组件内部通信以及对数据库服务的访问,所有节点都需要连接到管理网络,这里管理网络也承载了API网络的流量,将API网络和管理网络合并,OpenStack各组件通过API网络向用户暴露API服务。 - 隧道网络(tunnel网络或self-service网络):
提供租户虚拟网络的承载网络(VXLAN or GRE)。OpenStack里面使用gre或vxlan模式,需要有隧道网络;隧道网络采用了点到点通信协议替代了交换连接,在openstack里,这个tunnel就是虚拟机走网络数据流量的。 - 外部网络(external网络或provider网络):
openstack网络至少包括一个外部网络,这个网络能够访问OpenStack安装环境之外的网络,并且非openstack环境中的设备能够访问openstack外部网络的某个IP。另外外部网络为openstack环境中的虚拟机提供浮动IP,实现openstack外部网络对内部虚拟机实例的访问。
1.3 节点环境配置
#controller节点IP配置
[root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens32
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.2
DNS1=114.114.114.114
[root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
IPADDR=192.168.2.10
NETMASK=255.255.255.0
#compute节点IP配置
[root@compute ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens32
BOOTPROTO=static
IPADDR=192.168.1.20
NETMASK=255.255.255.0
GATEWAY=192.168.1.2
DNS1=114.114.114.114
[root@compute ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
IPADDR=192.168.2.20
NETMASK=255.255.255.0
#controller和compute节点修改主机名
[root@controller ~]# hostnamectl set-hostname controller
[root@localhost ~]# hostnamectl set-hostname compute
#controller和compute节点关闭防火墙
[root@controller ~]# systemctl stop firewalld
[root@controller ~]# systemctl disable firewalld
[root@controller ~]# setenforce 0
#controller和compute配置主机解析
[root@controller ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.10 controller
192.168.1.20 compute
#测试
[root@compute ~]# ping -c 4 controller
[root@controller ~]# ping -c4 compute
1.4 配置yum源
#两个节点都要配置yum
[root@controller ~]# vi /etc/yum.repos.d/openstack.repo
[openstack-rocky]
name=openstack-rocky
baseurl=https://mirrors.aliyun.com/centos/7/cloud/x86_64/openstack-rocky/
enabled=1
gpgcheck=0
[qume-kvm]
name=qemu-kvm
baseurl= https://mirrors.aliyun.com/centos/7/virt/x86_64/kvm-common/
enabled=1
gpgcheck=0
[root@controller ~]# scp /etc/yum.repos.d/openstack.repo compute:/etc/yum.repos.d/
1.5 安装NTP服务
#以下在controller节点执行
[root@controller ~]# yum install -y chrony
allow 192.168.0.0/16 #去掉注释 指定网段访问
[root@controller ~]# systemctl enable chronyd && systemctl start chronyd
#以下在compute节点执行
[root@compute ~]# yum install -y chrony
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst #都注释掉
server controller iburst #添加这一行
[root@compute ~]# systemctl enable chronyd && systemctl restart chronyd
#查看同步状态
2. 安装基础软件包
2.1 安装OpenStack软件包
#系统upgrade(若升级后内核更新,则需要重启使用新内核)
[root@controller ~]# yum upgrade -y
[root@compute ~]# yum upgrade -y
#安装openstack客户端(controller、compute)
[root@controller ~]# yum install python-openstackclient -y
[root@compute ~]# yum install python-openstackclient -y
#安装openstack-selinux(controller、compute)
[root@controller ~]# yum install openstack-selinux -y
[root@compute ~]# yum install openstack-selinux -y
2.2 安装数据库(controller)
1.安装mariadb
[root@controller ~]# yum install mariadb mariadb-server python2-PyMySQL -y
2.配置数据库
[root@controller ~]# vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address=192.168.1.10 #IP本机IP
default-storage-engine=innodb
innodb_file_per_table=on
max_connections=4096
collation-server=utf8_general_ci
character-set-server=utf8
3.启动服务
[root@controller ~]# systemctl enable mariadb && systemctl start mariadb
4.数据库初始化
[root@controller ~]# mysql_secure_installation
Set root password? [Y/n] y
New password: #密码设置为000000
Re-enter new password: #再次确认密码
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
Thanks for using MariaDB!
2.3 安装消息队列(controller)
1.安装rabbitmq-server
[root@controller ~]# yum install rabbitmq-server -y
2.启动服务
[root@controller ~]# systemctl enable rabbitmq-server && systemctl start rabbitmq-server
3.创建OpenStack用户并设置密码赋予权限
[root@controller ~]# rabbitmqctl add_user openstack 000000
Creating user "openstack"
[root@controller ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/"
2.4 安装Memcached缓存服务(controller)
1.安装Memcached
[root@controller ~]# yum install -y memcached
2.修改配置文件
[root@controller ~]# vim /etc/sysconfig/memcached
OPTIONS="-l 127.0.0.1,::1,controller" #添加本机节点
3.启动服务
[root@controller ~]# systemctl enable memcached && systemctl start memcached