OpenStack U版部署 + 创建实例

前言:

之前安装过一套Q版的OpenStack,在查看官方文档的时候发现最新版本已经出到U版了,那么就再装一套吧,经过查看U版本的OpenStack需要centos8操作系统上进行安装,那么首先就是部署环境了。

根据官方文档中的描述,U版的需要在centos8系统上,之前的可以在centos7系统上进行安装,下面是官方文档中的描述:

OpenStack Ussuri is available for both CentOS 8 and RHEL 8. OpenStack Train and earlier are available on both CentOS 7 and RHEL 7.

看这里官方的安装文档在这里!!!

官方安装文档

我安装的操作都是依据官方文档的步骤,只是启动的一些小的部分有变化。

一、基础环境

准备两台虚机,操作系统是centos8的

创建centos8操作系统的vmware虚机

controller节点话,两块网卡,
——》第一块设置为NAT模式,前期连接外网下载软件,后期给neutron使用;
——》另一块是仅主机模式,作为内部通信,管理网络,4Gmem 2CPU,

controller节点上会安装大量的服务所以内存给的大一点,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yl3gpNXp-1605060596896)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603443195412.png)]

compute节点,两块网卡,第一块NAT前期用来连接外网,后期给neutron使用,第二块仅主机模式,用于内部连接作为管理网络,2Gmem 4CPU,CPU要打开虚拟化,还要添加一块5G硬盘作为后期cinder来使用,

compute节点是用来启动实例的,所以可以多分配几个CPU

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y6dt3Xy0-1605060596900)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603443091494.png)]

1、网络配置

两台机器,controller和compute节点上,都是两块网卡,第一块NAT模式,第二块仅主机模式

20是controller节点,eth0外面是NAT模式,eth1是仅主机
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uFOC5fa4-1605060596901)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603443497778.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zsfcvp64-1605060596904)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603443482640.png)]

注意,这里我使用的网络配置和官方文档中的差别不大但是也有自己的改动,比如网段都是我自己平时使用的,比如网卡模式也是我自己理解出来的,所以你照我这么做是没有问题的。

修改下本地DNS解析文件,我们在配置OpenStack节点的时候会频繁使用到,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IVMVMHxE-1605060596905)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603443524711.png)]

验证
现在我们将两台虚机的基础网络配置完成了,本地的DNS解析文件也进行了修改,那么我们要确定两点:
——》第一,确定可以访问外网,我们后期使用的软件都是需要通过网络来进行安装的
——》第二,确定可以通过主机名来访问两台机器,就是将本地DNS解析文件中设置的主机名都ping一遍,看看能不能通。

# ping -c3 www.baidu.com
# ping -c3 controller 
# ping -c3 compute1 

注意,这里controller管理节点的主机名必须能够正常的ping通,在后面的配置文件中为了省事我们不写IP地址都是controller的主机名,敲黑板!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aoR5xj0I-1605060596907)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603443598617.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wTqIWKDA-1605060596908)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603443675157.png)]

2、安装网络源

虚机准备好之后,yum源是默认配置的外网源,而外网是非常不稳定的,比较看脸,要是脸黑安装个mariadb的软件都是几kb几kb蹦,非常不方便,所以我们修改下将网络源更换成国内的源来进行软件的安装,
国内的网络源是非常多的,你可以按照自己的习惯来进行选择,

——》我这里使用的是阿里云的,

阿里云镜像源的地址

注意,配置网络源的前提条件是你的虚机要能够连接外网,你要不能联网那都是白扯

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nlqnwIfI-1605060596909)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603441064035.png)]

下载centos8专属的yum源仓库,

# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NN4mcGED-1605060596910)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603441106703.png)]

下载完成后我们可以到yumyuan仓库中查看下,说白就是下载这么一个文件,

PS:我这里是将默认的网络源文件都放到了test目录中了,yum.repo文件是我自己配置的通过挂载ISO镜像的本地源。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tAT68Zwx-1605060596911)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603441577659.png)]

加载下yum源,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kiodJ5Xh-1605060596912)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603441676565.png)]

通过命令可以查看到centos8的源中有两个OpenStack的安装仓库分别是T版的和U版的,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LnSJJA0J-1605060596913)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603441702144.png)]

我们安装U版的

# yum install centos-release-openstack-ussuri.noarch 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cJepUrf3-1605060596914)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603441766056.png)]

同样的在compute节点上,安装yum源和仓库操作都是要执行的,

# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo

# yum repolist 
# yum install centos-release-openstack-ussuri.noarch  -y

3、时间同步

OpenStack环境是多节点的环境,那么就涉及到一个时间同步的问题,因为日志的输出是有时间戳的,如果节点之间时间不同步,那么你查看日志的时候乐子就大了。

现在我的环境是两台机器,都是可以连接外网的,那么可以直接安装chrony软件和外网源来进行时间同步就可以了,

但是我还是希望做的严谨一点的,那就是在两台机器上都安装chrony软件进行时间同步,但是在controller节点上和外网源进行时间同步,然后compute节点和controller节点来进行时间同步,

如果是为了简单两台机器都和网络上的时间源进行同步也可以,也是可行的,没问题。

两台机器都是需要安装软件

yum install chrony

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hnEnpPgt-1605060596915)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603443765365.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yZKtlIYj-1605060596915)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603443815227.png)]

时间同步
我是两台机器所以设置为controller节点联网作为源,另外一台同步controller节点时间

经过查看发现默认centos8安装了chrony软件,没有使用yum安装

# rpm -qa | grep chron

boost-chrono-1.66.0-6.el8.x86_64
chrony-3.5-1.el8.x86_64
controller节点

修改配置文件,设置网络源、指定可以同步时间的网段、指定本地的优先级

# vim /etc/chrony.conf

  3 pool 2.centos.pool.ntp.org iburst
 24 allow 192.168.144.0/16
 28 local stratum 10

重启服务查看状态

# systemctl restart chronyd
# systemctl status chronyd

chrony服务的端口是323,查看已经开启了

# netstat -tunpl | grep chrony

udp        0      0 0.0.0.0:123             0.0.0.0:*                           2840/chronyd        
udp        0      0 127.0.0.1:323           0.0.0.0:*                           2840/chronyd        
udp6       0      0 ::1:323                 :::*                                2840/chronyd        

这里就和centos7不同了,在7里面chrony配置文件中是指定四个网络源我们可以自己进行选择,
但是在centos8中网络源是指定一个pool池子,里面有很多的时间服务器,我们获取的是一些时间服务器的列表,系统从中选择一个来进行时间同步

# chronyc sources -v

210 Number of sources = 4

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \

MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================

^- 119.28.206.193                2   6    17    19  -3136us[-3136us] +/-   77ms
^* 203.107.6.88                  2   6    17    20  +2690us[+7531us] +/-   46ms
^? tick.ntp.infomaniak.ch        0   6     0     -     +0ns[   +0ns] +/-    0ns
^? tick.ntp.infomaniak.ch        1   6    24    19  -3674us[-3674us] +/-  161ms

查看当前的同步状态

# chronyc sourcestats -v
210 Number of sources = 1
                             .- Number of sample points in measurement set.
                            /    .- Number of residual runs with same sign.
                           |    /    .- Length of measurement set (time).
                           |   |    /      .- Est. clock freq error (ppm).
                           |   |   |      /           .- Est. error in freq.
                           |   |   |     |           /         .- Est. offset.
                           |   |   |     |          |          |   On the -.
                           |   |   |     |          |          |   samples. \
                           |   |   |     |          |          |             |
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
vlinx144020.com            13   8   589     -0.027      1.668   -413ns   284us

手动同步一次时间

# chronyc -a makestep 
200 OK

显示系统时间信息

# chronyc tracking 
Reference ID    : C0A89014 (vlinx144020.com)
Stratum         : 4
Ref time (UTC)  : Mon Oct 26 03:45:21 2020
System time     : 0.000000000 seconds fast of NTP time
Last offset     : -0.000048724 seconds
RMS offset      : 0.000388516 seconds
Frequency       : 10.291 ppm fast
Residual freq   : -0.027 ppm
Skew            : 1.820 ppm
Root delay      : 0.079217099 seconds
Root dispersion : 0.006792955 seconds
Update interval : 64.4 seconds
Leap status     : Normal

系统查看时间信息

# timedatectl 
               Local time: Mon 2020-10-26 11:46:22 CST
           Universal time: Mon 2020-10-26 03:46:22 UTC
                 RTC time: Mon 2020-10-26 03:46:22
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
              NTP service: active
          RTC in local TZ: no
timedatectl 
compute节点:

查看软件包是否安装?

# rpm -qa | grep chrony

chrony-3.5-1.el8.x86_64

编辑配置文件

# vim /etc/chrony.conf 

#将原有网络源注释掉,执行controller节点为网络源
#pool 2.centos.pool.ntp.org iburst
pool controller iburst

尝试是否通过主机名ping通controller节点

# ping -c3 controller 
PING vlinx144020.com (192.168.144.20) 56(84) bytes of data.
64 bytes from vlinx144020.com (192.168.144.20): icmp_seq=1 ttl=64 time=0.393 ms
64 bytes from vlinx144020.com (192.168.144.20): icmp_seq=2 ttl=64 time=0.292 ms
64 bytes from vlinx144020.com (192.168.144.20): icmp_seq=3 ttl=64 time=3.05 ms

--- vlinx144020.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 82ms
rtt min/avg/max/mdev = 0.292/1.245/3.051/1.277 ms

重启服务并查看状态

# systemctl restart chronyd
# systemctl status chronyd

查看端口323已经开启了

# netstat -tunpl | grep 323

udp        0      0 127.0.0.1:323           0.0.0.0:*                           1941/chronyd        
udp6       0      0 ::1:323                 :::*                                1941/chronyd        

查看chronyd服务状态

# chronyc sources -v

210 Number of sources = 1

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \

MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================

^* vlinx144020.com               3   6    17     5  +3222ns[  -24us] +/-   47ms

在centos8中配置chrony服务的时候因为不熟悉还查看了下官方文档,也就一起放在这了。

官网使用文档

使用文档

4、安装OpenStack软件

两个节点上都是要执行的,

安装U版仓库并启用PowerTools存储库

# yum install centos-release-openstack-ussuri
# yum config-manager --set-enabled PowerTools

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cHpsLKTZ-1605060596916)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603684245759.png)]

安装OpenStack客户端:(两个节点上都要执行的)

# yum install python3-openstackclient

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iLcWgz6a-1605060596917)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603687947170.png)]

查看系统的信息

根据官方文档的顺序现在该更新系统了,但是这个比较耗费时间,我也想看下不更新会有什么报错,所以这里我只是查看下内核信息,

# cat /etc/redhat-release 
CentOS Linux release 8.1.1911 (Core) 
# uname -r
4.18.0-147.el8.x86_64
# uname -a
Linux vlinx144020.com 4.18.0-147.el8.x86_64 #1 SMP Wed Dec 4 21:51:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

5、安装数据库

大多数OpenStack服务使用SQL数据库来存储信息。

数据库通常运行在控制器节点上。

安装软件

# yum install mariadb mariadb-server python2-PyMySQL

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yoh44v4Y-1605060596917)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603692140572.png)]

如那件安装成功之后我们是需要自己来编写一个cnf文件里面当你诡异了IP地址,使用的默认存储库,最大连接数,编码格式等等;

还有就是启动服务并且设置为自动启动,这个很重要,别没有设置自动启动,你重启了下节点,MySQL没启动,那你所有服务状态都不正常了;

最后可以使用mariadb提供的一个脚本来对mariadb数据库进行些初始化的设置,下面是我街区出来的修改数据库密码的;

# vim  /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 192.168.144.20
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

# mysql_secure_installation
Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gCjHiaGB-1605060596918)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603692352791.png)]

验证:

现在数据库已经安装好了,我们可以通过登录数据库来验证下,看下能否正常登录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EdBpqKyK-1605060596919)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603692988330.png)]

6、安装rabbitMQ

Open Stack使用rabbitMQ消息队列来协调服务之间的操作和状态信息。

消息队列服务通常运行在控制器节点上。

Open Stack支持几个消息队列服务,包括Rabbit MQ、Qpid和Zero MQ。 但是,包Open Stack的大多数发行版都支持特定的消息队列服务。

# yum install rabbitmq-server

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cQeWQady-1605060596920)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603693685678.png)]

软件安装完成之后我们启动服务就好 ,然后创建一个用户然后设置下权限,

这里其实还可以开启一个模块然后通过web页面查看的,但是这里我没有安装,感兴趣的可以到我Q版的博客种找下,有详细的过程。

# systemctl enable rabbitmq-server.service
# systemctl start rabbitmq-server.service

# rabbitmqctl add_user openstack 123
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CdHIairi-1605060596920)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603693779450.png)]

7、安装memcache

服务的身份服务认证机制使用Memcached缓存令牌。

memcached服务通常运行在控制器节点上。

# yum install memcached python3-memcached

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mIHBB74q-1605060596921)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603693875088.png)]

接着编辑下memcache配置文件将controller地址添加进去,这里写IP和主机名都可以,

# vim /etc/sysconfig/memcached 
OPTIONS="-l 127.0.0.1,::1,controller"

如果写的是主机名那么你就需要保证可以ping通他了,

# ping -c3 controller 

最后启动服务并设置为自动启动

# systemctl enable memcached.service
# systemctl start memcached.service

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7GNQdoZc-1605060596922)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603693943629.png)]

8、安装etcd

Open Stack服务可以使用ETCd,这是一个分布式的可靠的键值存储,用于分布式密钥锁定、存储配置、跟踪服务的动态性和其他场景。

安装软件

# yum install etcd

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EoT9QAmd-1605060596923)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603694070642.png)]

修改下配置文件,

# vim /etc/etcd/etcd.conf 

#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.144.20:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.144.20:2379"
ETCD_NAME="controller"

#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.144.20:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.144.20:2379"
ETCD_INITIAL_CLUSTER="controller=http://192.168.144.20:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

最后启动服务并设置开机自启

# systemctl enable etcd
# systemctl start etcd

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rC2CRKBX-1605060596924)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1603694809025.png)]

总结:

到这里OpenStack两个节点的基础环境搭建就完成了,

  • 首先我做了网络的基础配置,这个是非常重要的,这里配置好后面再安装neutron的时候才会少走弯路;
  • 接着更换网络源,这是为了方便我们来安装软件,你可以不更换但是默认的源网络情况不可预测,所以还是建议更换的;
  • 接着时间同步,两台机器搭建你就必须时间同步,这是必须的,你可以不按照我的方法来搭建,直接两台机器都联网和网络时间源同步时间就好了,没问题的;
  • 最后就是安装必须的软件了,数据库存储数据、rabbitMQ消息队列、memcache缓存,etcd我是按照官方文档的顺序安装了但是感觉没使用上,

因为我使用的是Vmware虚机创建的所以现在就可以做一个快照了,方便以后操作损坏了环境之后没法恢复还得从新安装。

二、节点部署

  1. 部署keystone服务
  2. 部署glance服务
  3. 部署placement服务
  4. 部署nova服务
  5. 部署neutron服务
  6. 部署dashboard
  7. 部署cinder服务

三、启动实例

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值