实验环境下OpenStack多节点一键部署(超详细)

前言

​ OpenStack项目是一个开源的云计算平台项目,是控制着计算、网络和存储三大资源的分布式系统。搭建这样的一个云平台系统,可以为我们提供IaaS(基础设施即服务)模式的云服务。本文核心不在相关的理论,因此有关云计算和OpenStack的概念等相关整体介绍可以参考下面的三篇文章:

云计算浅谈

OpenStack概念以及核心组件概述

OpenStack部署节点类型和架构

​ 本文旨在给出实验环境下多节点一键部署OpenStack的详细实验流程,该部署为本地(使用yum源)部署的R版的OpenStack。下面笔者从自己的实验环境与所需资源、系统资源情况、部署节点规划、具体部署、部署总结过程四个方面进行简述、实践与总结。

一、实验环境与所需资源

1.1系统环境

win10宿主机、采用VMware15版本(可以自行下载,最好实验时使用该版本)上安装操作系统(Centos7.5);

1.2资源包

Centos7.5的镜像文件、R版本的OpenStack源;资源链接如下:

链接:https://pan.baidu.com/s/1hFENGyrRTz3lOLUAordTGg
提取码:mu5x

二、系统资源情况

​ 系统资源情况主要是介绍一下笔者的宿主机硬件情况,主要考虑到OpenStack项目还是非常占用资源的,以免您在进行实验部署过程中出现意料之外的故障,当然这里的系统资源情况只是笔者笔记本的情况,具体所需硬件资源还是需要多次实验的尝试才行。

​ 笔者实验所使用硬件资源如下:

CPU:i7 9代(i7就足够了,主要看核心线程数);内存:32G(算是标配,可以将低一些最好不低于24G);硬盘:1TSSD固态(最好超过200G的可用磁盘空间,笔者在后面部署时给的是300G)主要的硬件资源就是这三者。

​ 下面说明一下笔者的实验部署的节点规划,节点类型在上面给出和的链接文章中有所介绍,这里不再赘述。

三、部署节点规划

​ 考虑到实验环境的硬件配置,不可能如生产环境一般诸多节点的部署,因此整体上规划为三个节点,一个控制节点,两个计算节点。还是再次熟悉一下这个架构图吧:

OpenStack多节点一键部署(超详细)

资源有限,实验部署只能将网络部署在控制节点上,生产环境中可万不是这般部署哈!实验部署一方面是加深理论理解,另一方面是方便熟悉一些部署流程与命令操作以及一些故障排查思路。

既然说到生产环境的部署,就大致举个例子吧:

假设部署一个具有300台服务器的OpenStack平台服务,大致上可以这样规划:

30个控制节点;30个网络节点;100个计算节点;其余的可以给存储;

​ 说到存储,我们知道OpenStack中有Cinder块存储以及Swift对象存储,在生产环境中一般会使用另外一个大项目,CEPH分布式存储,一般我们会结合该存储方式来部署OpenStack的存储节点,并且在生产环境中,CEPH是以高可用群集来确保存储数据的高可靠和高可用性的,有关CEPH的知识,感兴趣的朋友可以查阅一下。

​ 下面说下具体的资源分配:

​ 控制节点:处理器内核总数为2*2的搭配;内存为8G;划分2个磁盘分别:300G、1024G(之后用于ceph存储实验);采用双网卡,一个仅主机模式(eth)(ip规划为192.168.100.20),一个NAT模式(ip规划为20.0.0.20);

​ 计算节点:两个计算节点的资源分配都一样,处理器内核总数为2*2的搭配;内存为8G;划分2个磁盘分别:300G、1024G;网卡都为一个仅主机模式(eth)(IP地址规划为192.168.100.21和192.168.100.22);

​ 上图也给出了各个节点上所要安装的组件,不过笔者还是考虑简化一些,方便大家进行实验,所以对一些组件进行了取舍,下面通过具体的部署流程来理解体会OpenStack的魅力。

四、具体部署过程

​ 笔者将一键部署R版本的OpenStack实验分为以下几个流程,一般在部署过程中,出现故障或其他情况的概率还是非常高的,会在文章末尾的总结中给出一些排障的思路,以供大家参考:

1、安装操作系统
2、系统环境配置
3、一键部署OpenStack

下面针对每一步进行步骤细分及演示,部署过程中对于一些网络的配置可以自行定义网段IP地址等:

4.1安装操作系统

​ 上文说到实验环境部署一个控制和两个计算节点。因此需要安装三台虚拟机。下面是具体的安装流程。

1.修改本地的VMnet8网卡

下面是操作顺序

OpenStack多节点一键部署(超详细)

下面是更改之后的结果:

OpenStack多节点一键部署(超详细)

2.新建虚拟机(这里暂时不开启虚拟机)

安装Linux系统Centos7的具体流程在笔者之前的文章中已有详细介绍,这里主要将一些不同的地方通过下面的图示进行说明。参考链接:Centos7操作系统安装

控制节点的虚拟机设置如下图:

OpenStack多节点一键部署(超详细)

计算节点的虚拟机设置如下图(两个节点都一样):

OpenStack多节点一键部署(超详细)

3.上述流程设置完之后,进行开启配置安装虚拟机(最好一个一个安装,三个节点设置流程一致,举其中任意一个节点来说明)

开启后如下图说明操作:

OpenStack多节点一键部署(超详细)

4.安装时只需要选择最小安装,然后按照下图规划磁盘

OpenStack多节点一键部署(超详细)

点击磁盘分配之后的对话框进行磁盘分配

OpenStack多节点一键部署(超详细)
点击Done之后出现如下对话框继续进行配置

OpenStack多节点一键部署(超详细)

OpenStack多节点一键部署(超详细)

OpenStack多节点一键部署(超详细)

上述未给出对应步骤的截图就和前面给出安装系统的链接内的步骤一致了,从该设置完之后,下面的操作就和正常安装系统一致了。最终就正常安装可以登录即可,然后将之关闭(避免资源占用导致其他节点虚拟机安装失败,考虑到大家的硬件配置问题)。

​ 以上就是我们的第一个步骤的整个流程,可能看上去比较多,但是当你非常熟悉VMware上安装Linux操作系统的流程其实会发现十分简单,其中最关键的就是安装之前的那两条命令不要忘了。

当安装没有任何问题的时候,我们可以逐一开启三台虚拟机(最好一个一个开启),开始第二步的操作;

4.2系统环境配置

这里先罗列一下该系统环境配置需要完成的主要操作步骤

1、配置各个节点的主机名、网卡,重启网络
2、关闭防火墙、核心防护、网络管理、并且设置为禁止开机自启
3、上传软件包——openstack-rocky压缩包(源),并且进行解压缩等设置
4、配置本地yum源文件
5、三个节点做免交互并且验证
6、配置时间同步

下面开始进行配置

1、配置各个节点的主机名、网卡,重启网络(这里先在本地配置了网络方便连接Xshell等远程连接工具,一方面尽可能模拟生产环境,另一方面方便代码演示)下面看一下网卡设置

控制节点配置:

[root@localhost ~]# hostnamectl set-hostname ct
[root@localhost ~]# su
[root@ct ~]# cd /etc/sysconfig/network-scripts/
#配置本地网卡eth0和nat网卡eth1
[root@ct network-scripts]# cat ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
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=eth0
UUID=6dc229bf-8b5b-4170-ac0d-6577b4084fc0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.100.20
NETMASK=255.255.255.0
GATEWAY=192.168.100.1 

[root@ct network-scripts]# cat ifcfg-eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
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=eth1
UUID=37e4a752-3820-4d15-89ab-6f3ad7037e84
DEVICE=eth1
ONBOOT=yes
IPADDR=20.0.0.20
NETMASK=255.255.255.0
GATEWAY=20.0.0.2
#配置resolv.conf文件用于访问外网
[root@ct network-scripts]# cat /etc/resolv.conf
nameserver 8.8.8.8
#重启网络,进行测试
[root@ct ~]# ping www.baidu.com
PING www.wshifen.com (104.193.88.123) 56(84) bytes of data.
64 bytes from 104.193.88.123 (104.193.88.123): icmp_seq=1 ttl=128 time=182 ms
64 bytes from 104.193.88.123 (104.193.88.123): icmp_seq=2 ttl=128 time=182 ms
^C
--- www.wshifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 182.853/182.863/182.874/0.427 ms

计算节点网卡配置:(除了ip地址不一样其他都一样)

[root@localhost ~]# hostnamectl set-hostname c1
[root@localhost ~]# su
[root@c1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
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=eth0
UUID=d8f1837b-ce71-4465-8d6f-97668c343c6a
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.100.21
NETMASK=255.255.255.0
#GATEWAY=192.168.100.1
#计算机节点2上配置ip地址为192.168.100.22

配置三个节点上的/etc/hosts文件:

cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.20 ct
192.168.100.21 c1
192.168.100.22 c2
#测试是否可以互相ping通
root@ct ~]# ping c1
PING c1 (192.168.100.21) 56(84) bytes of data.
64 bytes from c1 (192.168.100.21): icmp_seq=1 ttl=64 time=0.800 ms
64 bytes from c1 (192.168.100.21): icmp_seq=2 ttl=64 time=0.353 ms
^C
--- c1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.353/0.576/0.800/0.224 ms
[root@ct ~]# ping c2
PING c2 (192.168.100.22) 56(84) bytes of data.
64 bytes from c2 (192.168.100.22): icmp_seq=1 ttl=64 time=0.766 ms
64 bytes from c2 (192.168.100.22): icmp_seq=2 ttl=64 time=0.316 ms
^C
--- c2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.316/0.541/0.766/0.225 ms

[root@c1 ~]# ping c2
PING c2 (192.168.100.22) 56(84) bytes of data.
64 bytes from c2 (192.168.100.22): icmp_seq=1 ttl=64 time=1.25 ms
64 bytes from c2 (192.168.100.22): icmp_seq=2 ttl=64 time=1.05 ms
64 bytes from c2 (192.168.100.22): icmp_seq=3 ttl=64 time=0.231 ms
^C
--- c2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 0.231/0.846/1.255/0.442 ms

2、关闭防火墙、核心防护、网络管理、并且设置为禁止开机自启(三个节点都需要进行下面命令的配置,这里实验环境中使用OpenStack之前尽量对这些服务进行检查)

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vi /etc/sysconfig/selinux
SELINUX=disabled
systemctl stop NetworkManager
systemctl disable NetworkManager

3、上传软件包——openstack-rocky压缩包(源),并且进行解压缩等设置

笔者使用的是xftp工具上传的三个节点都上传,上传之后进行解压到/opt目录下

如下所示

[root@ct ~]# ls
anaconda-ks.cfg  openstack_rocky.tar.gz
[root@ct ~]# tar -zxf openstack_rocky.tar.gz -C /opt/
[root@ct ~]# cd /opt/
[root@ct opt]# ls
openstack_rocky
[root@ct opt]# du -h
2.4M    ./openstack_rocky/repodata
306M    ./openstack_rocky
306M    .

4、配置本地yum源文件(注意将虚拟机镜像文件处于已连接状态,在虚拟机设置中查看,或者查看右下角的光驱图标是否有绿点显示,一般默认是连接状态)这里在控制节点上演示,其余节点上相同操作即可。

4.1、挂载系统镜像

[root@ct opt]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Fri Mar  6 05:02:52 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=0d4b2a40-756a-4c83-a520-83289e8d50ca /                       xfs     defaults        0 0
UUID=bd59f052-d9bc-47e8-a0fb-55b701b5dd28 /boot                   xfs     defaults        0 0
UUID=8ad9f9e7-92db-4aa2-a93d-1fe93b63bd89 swap                    swap    defaults        0 0
/dev/sr0    /mnt    iso9660 defaults    0 0
[root@ct opt]# mount -a
mount: /dev/sr0 is write-protected, mounting read-only
[root@ct opt]# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda3      xfs       291G  1.6G  290G   1% /
devtmpfs       devtmpfs  3.9G     0  3.9G   0% /dev
tmpfs          tmpfs     3.9G     0  3.9G   0% /dev/shm
tmpfs          tmpfs     3.9G   12M  3.8G   1% /run
tmpfs          tmpfs     3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1      xfs      1014M  134M  881M  14% /boot
tmpfs          tmpfs     781M     0  781M   0% /run/user/0
/dev/sr0       iso9660   4.2G  4.2G     0 100% /mnt

4.2、yum源备份创建编写新的源文件

[root@ct opt]# cd /etc/yum.repos.d/
[root@ct yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@ct yum.repos.d]# mkdir backup
[root@ct yum.repos.d]# mv C* backup/
[root@ct yum.repos.d]# vi local.repo
[root@ct yum.repos.d]# cat local.repo 
[openstack]
name=openstack
baseurl=file:///opt/openstack_rocky #该路径为解压软件包源的路径
gpgcheck=0
enabled=1

[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
enabled=1

4.3、修改yum.conf文件,将keepcache置为1,表示保存缓存

[root@ct yum.repos.d]# head -10 /etc/yum.conf 
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1 #只需要修改该参数
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5

[root@ct yum.repos.d]# yum clean all  #清空所有软件包
Loaded plugins: fastestmirror
Cleaning repos: centos openstack
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
[root@ct yum.repos.d]# yum makecache #建立软件包本地缓存
Loaded plugins: fastestmirror
Determining fastest mirrors
centos                                                                                             | 3.6 kB  00:00:00     
openstack                                                                                          | 2.9 kB  00:00:00     
(1/7): centos/group_gz                                                                             | 166 kB  00:00:00     
(2/7): centos/filelists_db                                                                         | 3.1 MB  00:00:01     
(3/7): centos/primary_db                                                                           | 3.1 MB  00:00:01     
(4/7): centos/other_db                                                                             | 1.3 MB  00:00:00     
(5/7): openstack/primary_db                                                                        | 505 kB  00:00:00     
(6/7): openstack/filelists_db                                                                      | 634 kB  00:00:00     
(7/7): openstack/other_db                                                                          | 270 kB  00:00:00     
Metadata Cache Created

5.三个节点之间做免交互,并且进行验证

ssh-keygen -t rsa #一路回车即可,下面遇到交互是输入yes以及登录的虚拟机的root的密码即可
ssh-copy-id ct 
ssh-copy-id c1 
ssh-copy-id c2

这样为了保证实验的安全和验证之前的设置我们先拍好快照然后重新启动虚拟机来验证这些配置(每个节点上都要进行下面的验证,这里以控制节点为例)

[root@ct ~]# ls
anaconda-ks.cfg  openstack_rocky.tar.gz
[root@ct ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
[root@ct ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
   Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:NetworkManager(8)
[root@ct ~]# setenforce ?
setenforce: SELinux is disabled
#再次确认一下免交互是否成功
[root@ct ~]# ssh c1
Last login: Sun Mar  8 13:11:32 2020 from c2
[root@c1 ~]# exit
logout
Connection to c1 closed.
[root@ct ~]# ssh c2
Last login: Sun Mar  8 13:14:18 2020 from gateway
[root@c2 ~]# 

6、配置时间同步

​ 该步骤是非常关键的,尤其是在我们的生产环境中,设想若是各个服务器之间的时间无法同步,那么针对许多服务和业务都是无法进行的,甚至会导致重大事故。

​ 本次实验环境就同步阿里云的时钟服务器为例,以控制节点同步阿里云服务器,而两个计算节点通过ntpd服务同步控制节点时间。

控制节点配置:

[root@ct ~]# yum -y install ntpdate 
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package ntpdate.x86_64 0:4.2.6p5-28.el7.centos will be installed
--> Finished Dependency Resolution

//...//省略部分内容
Installed:
  ntpdate.x86_64 0:4.2.6p5-28.el7.centos                                                                                  

Complete!
#同步阿里云时钟服务器
[root@ct ~]# ntpdate ntp.aliyun.com
 8 Mar 05:20:32 ntpdate[9596]: adjust time server 203.107.6.88 offset 0.017557 sec
[root@ct ~]# date
Sun Mar  8 05:20:40 EDT 2020
[root@ct ~]# yum -y install ntp
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package ntp.x86_64 0:4.2.6p5-28.el7.centos will be installed
--> Processing Dependency: libopts.so.25()(64bit) for package: ntp-4.2.6p5-28.el7.centos.x86_64
--> Running transaction check
---> Package autogen-libopts.x86_64 0:5.18-5.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================================================================
 Package                        Arch                  Version                                 Repository             Size
==========================================================================================================================
Installing:
 ntp                            x86_64                4.2.6p5-28.el7.centos                   centos                549 k
Installing for dependencies:
 autogen-libopts                x86_64                5.18-5.el7                              centos                 66 k

Transaction Summary
==========================================================================================================================
Install  1 Package (+1 Dependent package)

Total download size: 615 k
Installed size: 1.5 M
Downloading packages:
--------------------------------------------------------------------------------------------------------------------------
Total                                                                                     121 MB/s | 615 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : autogen-libopts-5.18-5.el7.x86_64                                                                      1/2 
  Installing : ntp-4.2.6p5-28.el7.centos.x86_64                                                                       2/2 
  Verifying  : autogen-libopts-5.18-5.el7.x86_64                                                                      1/2 
  Verifying  : ntp-4.2.6p5-28.el7.centos.x86_64                                                                       2/2 

Installed:
  ntp.x86_64 0:4.2.6p5-28.el7.centos                                                                                      

Dependency Installed:
  autogen-libopts.x86_64 0:5.18-5.el7                                                                               
Complete!

修改ntp主配置文件

OpenStack多节点一键部署(超详细)

保存文件后重启服务,关闭chronyd.service服务

[root@ct ~]# systemctl disable chronyd.service
Removed symlink /etc/systemd/system/multi-user.target.wants/chronyd.service.
[root@ct ~]# systemctl restart ntpd
[root@ct ~]# systemctl enable ntpd

两个计算节点上配置

[root@c1 ~]# yum -y install ntpdate 
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package ntpdate.x86_64 0:4.2.6p5-28.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================================================================
 Package                  Arch                    Version                                   Repository               Size
==========================================================================================================================
Installing:
 ntpdate                  x86_64                  4.2.6p5-28.el7.centos                     centos                   86 k

Transaction Summary
==========================================================================================================================
Install  1 Package

Total download size: 86 k
Installed size: 121 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : ntpdate-4.2.6p5-28.el7.centos.x86_64                                                                   1/1 
  Verifying  : ntpdate-4.2.6p5-28.el7.centos.x86_64                                                                   1/1 

Installed:
  ntpdate.x86_64 0:4.2.6p5-28.el7.centos                                                                                  

Complete!
[root@c1 ~]# ntpdate ct
 8 Mar 05:36:26 ntpdate[9562]: step time server 192.168.100.20 offset -28798.160949 sec
[root@c1 ~]# crontab -e 
#写入周期性计划任务后保存退出,例如:*/30 * * * * /usr/sbin/ntpdate ct >> /var/log/ntpdate.log
no crontab for root - using an empty one
crontab: installing new crontab

4.3一键部署OpenStack

在控制节点进行操作

#安装openstack-packstack工具用于生成openstack应答文件(txt文本格式)
[root@ct ~]# yum install -y openstack-packstack
[root@ct ~]# packstack --gen-answer-file=openstack.txt
[root@ct ~]# ls
anaconda-ks.cfg  openstack_rocky.tar.gz  openstack.txt

重点在于如何修改:这里不具体说明,可以在阅读完该文章后,查询了解其他的配置含义和作用
下面给出哪些行需要更改的内容,细心修改

41行:y-n #SWIFT是OpenStack的对象存储组件,默认是Y,在生产环境中一般是不装,所以改n
50行:y-n #不安装该服务

97行:192.168.100.11,192.168.100.12 #计算节点ip地址

817 :physnet1      #FLAT网络这边要设置物理网卡名字
862 :physnet1:br-ex      #这边要设置物理网卡的名字
873:br-ex:eth1 #这边br-ex:eth1是网络节点的nat网卡,到时候安装完毕之后IP地址会漂到这个上
1185:y-n #DEMO是OpenStack联网下载一个测试镜像,这边没联网。说以改成n
#还有一些网段需要修改以及密码这里使用sed正则表达式来全局修改
[root@ct ~]# sed -i -r 's/(.+_PW)=.+/\1=sf144069/' openstack.txt

[root@ct ~]# sed -i -r 's/20.0.0.20/192.168.100.20/g' openstack.txt

这里需要将原先关闭的控制节点的网关开启之后,使用下面的命令进行一键部署安装

[root@ct ~]# packstack --answer-file=openstack.txt
Welcome to the Packstack setup utility

The installation log file is available at: /var/tmp/packstack/20200308-055746-HD3Zl3/openstack-setup.log

Installing:
Clean Up                                             [ DONE ]
Discovering ip protocol version                      [ DONE ]
Setting up ssh keys                                  [ DONE ]
Preparing servers                                    [ DONE ]
Pre installing Puppet and discovering hosts' details [ DONE ]
Preparing pre-install entries                        [ DONE ]
Setting up CACERT                                    [ DONE ]
Preparing AMQP entries                               [ DONE ]
Preparing MariaDB entries                            [ DONE ]
Fixing Keystone LDAP config parameters to be undef if empty[ DONE ]
Preparing Keystone entries                           [ DONE ]
...//省略部分内容

在各个节点终端(xshell终端在开一个连接控制节点的终端使用下面的命令查看日志信息)

tail -f /var/log/messages

出现下图所示情况时就表示目前没有问题,接下来就是耐心等待

OpenStack多节点一键部署(超详细)

出现下图则说明部署成功了

OpenStack多节点一键部署(超详细)

我们可以使用浏览器(Google)登录仪表板验证一下可以参考下面文章的末尾介绍:

OpenStack入门——理论篇(二):OpenStack的节点类型和架构(含登录的仪表板界面示例)

五、部署总结和排障思路

​ 笔者在部署过程中也遇到了一些意外错误和问题,但是基本上都解决了,这些大都是一些小问题,代码写错,某些内容更改错误等等。不过还是给点建议和排障思路给大家:

​ 首先,对于这些较大的实验项目,我们需要先理清思路和部署顺序;

​ 其次,安装过程中,由于是实验过程,需要习惯性地进行备份(虚拟机上我们可以拍摄快照),这也是一种存储方式哈。这样我们可以在之后出现问题无法解决等情况时,可以通过这种快照机制回滚到当初部署成功的阶段的时间点。这样可以为我们节省大量的时间;

​ 接着就是排障,先看懂ERROR的含义,如果一眼看出问题所在可以直接修改;如果没有什么解决思路,就去检查自己的环境是否有问题,服务是否开启,该停的服务是否关闭等;如果环境没什么问题就去查看一下自己的配置文件是否有误,例如其中某些配置文件的相关参数是否修改正确等等;如果还是无法解决就需要自行去查找资料,例如去百度,看看官方文档,看看前辈们或者之前的工程师是否遇到过类似的问题,是如何解决的。

​ 具体的排障还是需要时间经验的积累的,本文的主要目的是为了演示整个在本地部署多节点的R版本的OpenStack平台的过程,方便初学者进行实验尝试,理论部分笔者还在持续更新中,希望读者可以继续关注阅读!谢谢!