本节目录:

1 实验环境说明

2 网络规划

3 网络配置

3.1 控制节点

3.2 计算节点

3.3 网络测试

4 NTP配置

4.1 控制节点配置

4.2 计算节点配置

4.3 服务验证

5 安装软件包

5.1 控制节点安装与配置

5.1.1 openstack

5.1.2 数据库服务

5.1.3 Message queue消息队列服务

5.1.4 Memcached缓存服务

5.1.5 键值存储服务

1 实验环境说明

计算机:8核,8GB内存

虚拟机软件:vmware workstation 15.5

虚拟网络:使用vmware虚拟网络,NAT和桥接

虚拟机1-控制节点:2核,4G内存,centos 7.6,网卡1设置为NAT,网卡2设置为桥接

虚拟机2-计算节点:2核,2G内存,centos 7.6,网卡1设置为NAT,网卡2设置为桥接

2 网络规划

openstack的网络至少划分为2个独立的网络,一个用于管理流量的通信,一个用于业务流量的通信,除了IP地址外,每个节点还必须配置域名用于解析。

本实验使用了openstack的简单网络模式,通过路由与互联网通信。规划如下:

管理网络:192.168.223.0/24,网关192.168.223.2/24

营运商网络:10.0.0.0/24,网关10.0.0.2/24

控制节点:

网卡1:192.168.223.11/24,接入管理网络

网卡2:未分配,接入营运商网络

计算节点:

网卡1:192.168.223.31/24,接入管理网络

网卡2:未分配,接入营运商网络

3 网络配置

3.1 控制节点

修改计算机网络名称

修改/etc/hostname配置文件

# echo 'controller' > /etc/hostname

网络接口配置

通过nmtui界面程序或修改网络配置文件,如/etc/sysconfig/network-scripts/ifcfg-ens33,配置如下所示,配置文件中的其他参数不用改动,也不要删掉。

TYPE=Ethernet
BOOTPROTO=none  #启动模式,centos7中none和static都可代表固定ip
NAME=ens33
DEVICE=ens33
ONBOOT=yes  #开启启动
IPADDR=192.168.223.11
PREFIX=24
GATEWAY=192.168.223.2
DNS1=61.139.2.69  #dns地址根据自己的网络进行设置

网络名称解析配置

修改/etc/hosts文件如下所示:

# controller
192.168.223.11       controller

# compute1
192.168.223.31       compute1

3.2 计算节点

方法与控制节点一样,在此只做简要总结:

  • 修改计算机网络名称为compute1
  • 配置网络接口,固定地址192.168.223.31/24,开机启动,dns等
  • 名称解析,与控制节点一致

3.3 网络测试

测试节点能否连接互联网

openstack背景 openstack基础环境配置_配置文件

测试节点之间能否互通

openstack背景 openstack基础环境配置_openstack_02

openstack背景 openstack基础环境配置_openstack_03

4 NTP(用于网络时间同步)配置

可以使用Chrony来进行时间同步。建议控制节点选择合适的同步服务器,其他节点选择和控制节点进行同步。

4.1 控制节点配置

centos7默认启用了chronyd服务进程,所以只需要去修改配置文件/etc/chrony.conf

修改时间服务器,如改为国内的ntp服务:

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).

server cn.ntp.org.cn ibrust

允许其他节点所代表的网络与自己同步:

# Allow NTP client access from local network.
#allow 192.168.0.0/16
allow 192.168.223.0/24

重启NTP服务

# systemctl restart chronyd

由于centos默认防火墙开启,所以需要添加防火墙的规则,让NTP服务正常被访问

# firewall-cmd --add-service=ntp --permanent  //设置ntp服务规则
# systemctl reload firewalld  //更新防火墙状态

 

4.2 计算节点配置(如果有其他节点,方法相同)

修改配置文件/etc/chrony.conf,把时间服务器地址修改为控制节点

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).

server controller ibrust

重启NTP服务。

# systemctl restart chronyd

4.3 服务验证

控制节点上运行验证:

openstack背景 openstack基础环境配置_openstack背景_04

计算节点上运行验证:

 

 

openstack背景 openstack基础环境配置_学习笔记_05

 

 

centos7的软件仓库extras中已包含openstack的安装包,其他版本请到官网查看安装说明:https://docs.openstack.org/install-guide/environment-packages.html

5.1 控制节点安装与配置

5.1.1 安装openstack

这里选择安装train版本:

# yum install centos-release-openstack-train

还需要安装客户端管理工具和自动配置selinux的软件包:

# yum install python-openstackclient openstack-selinux

5.1.2 数据库服务

安装mysql数据库:

# yum install mariadb mariadb-server python2-PyMySQL

新建配置文件/etc/my.cnf.d/openstack.cnf,写入以下内容:

[mysqld]
bind-address = 192.168.223.11

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

设置数据库安全配置,包括root帐号密码等信息:

# mysql_secure_installation

跟随向导一步一步进行设置

openstack背景 openstack基础环境配置_学习笔记_06

 

 

 这里我设置root密码为samplepass:

openstack背景 openstack基础环境配置_centos_07

 

 

 为了数据库更加安全,以下几步推荐都选择yes:

openstack背景 openstack基础环境配置_openstack背景_08

 

 

 

openstack背景 openstack基础环境配置_学习笔记_09

 

 

5.1.3 Message queue消息队列服务

安装:

# yum install rabbitmq-server

设置服务状态:

# systemctl enable --now rabbitmq-server

添加openstack用户,这里我设置用户的密码为rabbitpass

# rabbitmqctl add_user openstack rabbitpass

设置用户权限:

# rabbitmqctl set_permissions openstack ".*" ".*" ".*"

5.1.4 Memcached缓存服务

该服务用于身份验证机制缓存令牌,一般运行在控制节点。

安装:

# yum install memcached python-memcached

编辑配置文件/etc/sysconfig/memcached,把OPTIONS="-l 127.0.0.1,::1"修改为如下所示,添加控制节点(ip地址或名称):

OPTIONS="-l 127.0.0.1,::1,controller"

设置服务状态:

# systemctl enable --now memcached

5.1.5 键值存储服务

OpenStack使用etcd服务,这是一个分布式的可靠的键值存储,用于分布式的密钥锁定、存储配置、跟踪服务的活动性等。

安装:

# yum install etcd

编辑配置文件/etc/etcd/etcd.conf,对以下参数进行设置

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

设置服务状态:

# systecmctl enable --now etcd