文章目录
关于部署的环境说明
版本
本次部署使用OpenStack 1910的Train版本
环境
本次部署流程是基于测试环境部署的,实机部署可能会有所偏差,请参照生产环境自行检查。
先使用vmware workstation创建3台虚拟机(根据架构图应该是4台 但是宿主机资源有限,将存储节点和网络节点合并)
虚拟机配置
所有虚拟机 均使用以下配置 (宿主机至少拥有24g内存和6核心的英特尔处理器或者6核的AMD 4代ryzen以上)开启处理器虚拟化
控制节点ct:
处理器 | 2核2线程 | 实际上在宿主机应该是2核4线程,因为vm设置的虚拟机线程是每个核心的线程数 |
---|---|---|
内存/存储 | 8G | 300g+300g设置多个硬盘文件,不会立即分配所有空间 |
网卡 | net:20.0.0.20(模拟公网,面向用户) | vm1:192.168.100.10 (模拟局域网,面向内部服务) |
操作系统 | Centos7.6-1810 | 最小化安装(模拟生产环境) |
如下:
其他节点只需修改地址即可
c1:
ens33:20.0.0.21
ens37:192.168.100.11
c2:
ens33:20.0.0.22
ens37:192.168.100.12
部署流程
- 为所有主机配置网卡+运行环境
- 为所有主机配置基础服务(rabbitmq、mariadb、memcache、Apache)
- 部署keystone组件
- 部署Glance组件
- 部署placement组件
- 部署Nova组件
- 部署Neutron组件
- 部署dashboard组件
- 部署Cinder组件
过程太长博主会分篇介绍,本次只是基本环境部署
部署开始
先修改网卡配置
vi /etc/sysconfig/network-scripts/ifcfg-ens33 #配置nat网卡
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPV4_ROUTE_METRIC=90 #设置网卡的优先级,方便从公网获取yum源
DEFROUTE=yes
IPADDR=20.0.0.20
NETMASK=255.255.255.0
GATEWAY=20.0.0.2
DNS=20.0.0.2
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=0451dc22-a548-4ecc-b092-6eb6271ac782
DEVICE=ens33
ONBOOT=yes
保存退出
vi /etc/sysconfig/network-scripts/ifcfg-ens37 #配置vm1网卡 方便组件之间互相访问
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
#GATEWAY=192.168.100.2 #注销网关
DNS=192.168.100.2
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37
DEVICE=ens37
ONBOOT=yes
保存退出
systemctl restart network
使用yum安装部署组件需要的依赖环境
yum updatte
yum clean all
yum -y install net-tools bash-completion vim gcc gcc-c++ make pcre pcre-devel expat-devel cmake bzip2
yum updatte
yum clean all
yum -y install centos-release-openstack-train python-openstackclient openstack-selinux openstack-utils
添加一些配置时需要做的准备
添加hosts本地映射记录
vi /etc/hosts #后续配置时只需指定制主机名即可
192.168.100.10 ct
192.168.100.11 c1
192.168.100.12 c2
保存退出
关闭防火墙 核心防护 iptables策略 #防止组件访问被拦截
systemctl stop firewalld
setenforce 0
iptables -F
vim /etc/resolv.conf #优化dns节点
nameserver 114.114.114.114
配置三个节点之间的免交互
ssh-keygen -t rsa #一路回车 然后输入密码
ssh-copy-id ct
ssh-copy-id c1
ssh-copy-id c2
ssh c1 #测试一下连接
配置时间同步服务
yum -y install chrony
vim /etc/chrony.conf
#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 203.107.6.88 iburst #这条是添加的
保存退出
systemctl enable chronyd
systemctl restart chronyd
chronyc sources #显示同步状态
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
crontab -e #创建一个时间同步的任务计划
*/2 * * * * /usr/bin/chronyc sources >> /var/log/chronyc.log
保存退出
crontab -l
*/2 * * * * /usr/bin/chronyc sources >> /var/log/chronyc.log
配置***控制节点***
基础服务组件(如:数据库和消息代理)
yum -y install mariadb mariadb-server python2-PyMySQL #安装组件需要的数据库服务和mysql对接工具
yum -y install libibverbs
vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 192.168.100.10 #本机地址
default-storage-engine = innodb #数据库类型
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8 #默认字符集
保存退出
systemctl enable mariadb
systemctl start mariadb
mysql_secure_installation
yum -y install rabbitmq-server #安装消息代理服务
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
rabbitmqctl add_user openstack RABBIT_PASS #创建用户
rabbitmqctl set_permissions openstack ".*" ".*" ".*" #授予数据库权限
rabbitmq-plugins list
rabbitmq-plugins enable
rabbitmq-plugins enable rabbitmq_management
ss -natp | grep 5672
访问rabbitmq控制台
http://192.168.100.10:15672
默认用户名密码都是:guest
安装数据库链接组件
yum install -y memcached python-memcached
vi /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1,::1,ct"
保存退出
systemctl enable memcached
systemctl start memcached
netstat -nautp | grep 11211
tcp 0 0 192.168.100.10:11211 0.0.0.0:* LISTEN 81524/memcached
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 81524/memcached
tcp6 0 0 ::1:11211 :::* LISTEN 81524/memcached
yum -y install etcd
cd /etc/etcd/
vim etcd.conf
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.100.11:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.100.11:2379"
ETCD_NAME="ct"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.100.11:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.100.11:2379
ETCD_INITIAL_CLUSTER="ct=http://192.168.100.11:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01" #集群名
ETCD_INITIAL_CLUSTER_STATE="new" #初始集群状态
保存退出
systemctl enable etcd.service
systemctl start etcd.service
netstat -anutp |grep 2379
tcp 0 0 192.168.100.10:2379 0.0.0.0:* LISTEN 81792/etcd
tcp 0 0 192.168.100.10:2379 192.168.100.10:47028 ESTABLISHED 81792/etcd
tcp 0 0 192.168.100.10:47028 192.168.100.10:2379 ESTABLISHED 81792/etcd
netstat -anutp |grep 2380
tcp 0 0 192.168.100.10:2380 0.0.0.0:* LISTEN 81792/etcd
部署完成