本节目录:
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 网络测试
测试节点能否连接互联网
测试节点之间能否互通
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 服务验证
控制节点上运行验证:
计算节点上运行验证:
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
跟随向导一步一步进行设置
这里我设置root密码为samplepass:
为了数据库更加安全,以下几步推荐都选择yes:
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