OpenStack多节点部署安装(本地源 Rocky版)

本文详述了一套使用3台虚拟机快速搭建OpenStack Rocky版云平台的过程,包括系统安装、网络配置、时间同步、本地源创建、免密连接设置以及OpenStack环境的一键部署。实验目标是通过自动化方法实现Rocky版OpenStack的快速开局和优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在这里插入图片描述

OpenStack是一个开源的云计算平台,它可以提供计算、存储和网络资源的管理。Train版和Rocky版是OpenStack的两个版本,分别发布于2018年和2017年。其中,Train版是OpenStack的第十六个版本,而Rocky版是OpenStack的第十五个版本。

Train版和Rocky版的主要区别在于软件包版本的更新和改进。Train版中加入了一些新功能,例如更好的容器支持、更好的网络服务等。同时,Train版也进行了一些改进,例如更好的虚拟机管理、更好的存储管理等。与之相比,Rocky版在一些方面可能不如Train版那么先进,但在稳定性和可靠性方面表现良好。

如果你正在考虑使用OpenStack,那么选择哪个版本取决于你的具体需求和情况。如果你需要先进的功能和技术支持,那么可以考虑选择Train版;如果你更注重稳定性和可靠性,那么可以考虑选择Rocky版,本文主要介绍Rocky版部署安装。

环境介绍

在这里插入图片描述

实验拓扑图

在这里插入图片描述

实验目的

采用的3个虚拟机节点作为演示环境,演示如何自动化快速搭建一套Rocky版的openstack云平台

实验开始

具体实验配置,先创建3台最小化版的centos 7.6虚拟机,其中CT设双网卡,可以上网下载一些时钟同步软件包

安装系统部署

在这里插入图片描述

将网卡参数改为 eth0格式,

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
后续方法一样,都设网卡为etho ,以及同样的配置。
配置CT为双网卡

配置IP参数

修改控制节点IP地址,这个是是双网卡,并添加本地域名解析
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看ct 网卡配置

[root@ct ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:7e:ce:9e brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.22/24 brd 192.168.100.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::3189:c4ce:b30f:6d34/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:7e:ce:a8 brd ff:ff:ff:ff:ff:ff
    inet 20.0.0.10/24 brd 20.0.0.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::6ffa:574d:164c:6f2e/64 scope link
       valid_lft forever preferred_lft forever

三个节点开局优化

这里用ftp方式,将软件包上传到ct

上传 本地 openstack 资源包
[root@ct ~]# cd /opt
[root@ct opt]# ls
openstack_rocky.tar.gz
解压软件包
[root@ct opt]# tar -zxvf openstack_rocky.tar.gz

三台都需要挂载本地源
创建本地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 * backup
mv: cannot move ‘backup’ to a subdirectory of itself, ‘backup/backup’
[root@ct yum.repos.d]# ls
backup
[root@ct yum.repos.d]# vim openstack.repo

[openstack]
name=openstack
baseurl=file:///opt/openstack_rocky
gpgcheck=0
enabled=1

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

~
挂载本地光盘镜像源

[root@ct yum.repos.d]# mount /dev/sr0 /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@ct yum.repos.d]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       291G  1.7G  290G   1% /
devtmpfs        3.9G     0  3.9G   0% /dev
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           3.9G  8.6M  3.9G   1% /run
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1      1014M  135M  880M  14% /boot
tmpfs           781M     0  781M   0% /run/user/0
/dev/sr0        4.3G  4.3G     0 100% /mnt
[root@ct yum.repos.d]#
自动挂载
Vim /etc/fstab
/dev/sr0 /mnt  iso9660 defaults   0  0
[root@ct yum.repos.d]# yum clean all	'//清除缓存'
[root@ct yum.repos.d]# yum makecache	'//创建缓存'

关闭网络管理

[root@ct yum.repos.d]# systemctl stop NetworkManager
[root@ct yum.repos.d]# systemctl disable NetworkManager
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.

配置本地 hosts 映射(三台都需要)

192.168.100.22 ct
192.168.100.23 c1
192.168.100.24 c2
~
cat << EOF > /etc/hosts
192.168.100.22 ct
192.168.100.23 c1
192.168.100.24 c2
EOF
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux

关闭网络管理

systemctl stop NetworkManager
systemctl disable NetworkManager
两台C1  C2 创建此计划任务
*/30 * * * * /usr/sbin/ntpdate ct >>/var/log/ntpdate.log

[root@c1 ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@c1 ~]# crontab -l
*/30 * * * * /usr/sbin/ntpdate ct >>/var/log/ntpdate.log


[root@c2 ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@c2 ~]# crontab -l
*/30 * * * * /usr/sbin/ntpdate ct >>/var/log/ntpdate.log

Ct 修改配置参数(时钟同步设置)

[root@ct ~]# vi /etc/ntp.conf

在这里插入图片描述

所有节点都执行此操作
systemctl restart crond	
systemctl enable crond	
CT节点执行以下操作
systemctl restart ntpd
 systemctl enable ntpd	
systemctl disable chronyd.service

配置时间同步与本地时钟服务

[root@ct yum.repos.d]# yum install ntp ntpdate -y	'//c1和c2节点不需要安装ntp'
[root@ct yum.repos.d]# ntpdate ntp.aliyun.com	'//c1和c2节点直接同步ct即可'
26 Feb 17:39:38 ntpdate[42996]: adjust time server 203.107.6.88 offset 0.003337 sec
[root@ct yum.repos.d]# crontab -e	'//ct计划任务'
*/30 * * * * /usr/sbin/ntpdate ntp.aliyun.com >>/var/log/ntpdate.log
[root@c1 yum.repos.d]# crontab -e	'//c1和c2设置计划任务'
*/30 * * * * /usr/sbin/ntpdate ct >>/var/log/ntpdate.log
[root@ct yum.repos.d]# vi /etc/ntp.conf 	'//c1和c2节点不需要配置ntp时钟服务'
restrict default nomodify   ###8行改
restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap  ###17行改
###21行到24行删除##
     21 server 0.centos.pool.ntp.org iburst
     22 server 1.centos.pool.ntp.org iburst
     23 server 2.centos.pool.ntp.org iburst
     24 server 3.centos.pool.ntp.org iburst
###删除的插入下面内容###
fudeg 127.127.1.0 stratum 10    
server 127.127.1.0
[root@ct yum.repos.d]# systemctl restart crond	'//c1和c2都要做'
[root@ct yum.repos.d]# systemctl enable crond	'//c1和c2都要做'
[root@ct yum.repos.d]# systemctl restart ntpd	'//c1和c2不做'
[root@ct yum.repos.d]# systemctl enable ntpd	'//c1和c2不做'
[root@ct yum.repos.d]# systemctl disable chronyd.service	'//取消开机自启,否则ntp开启自启不成功'

三台节点建立免密连接,步骤三台节点都要操作,仅展示控制节点的操作
[root@ct yum.repos.d]# ssh-keygen -t rsa 	'//一路回车即可'
[root@ct yum.repos.d]# ssh-copy-id ct	'//交互提示 输入yes 然后输入密码'
[root@ct yum.repos.d]# ssh-copy-id c1
[root@ct yum.repos.d]# ssh-copy-id c2


重启,检查刚才的开局配置是否生效

控制节点Openstack一键环境部署

控制节点Openstack一键环境部署

[root@ct ~]# yum -y install openstack-packstack	'//安装一键部署工具'
[root@ct ~]# packstack --gen-answer-file=openstack.txt	'//生成应答文件'
[root@ct ~]# vi openstack.txt 
41 CONFIG_SWIFT_INSTALL=n '//第41行SWIFT是OpenStack的对象存储组件,默认是Y,在生产环境中一般是不装,所以改n'
50 CONFIG_AODH_INSTALL=n	'//第50行,默认是Y 需要改n'
97 CONFIG_COMPUTE_HOSTS=192.168.100.23,192.168.100.24	'//第97行需要更改计算节点的IP地址'
101 CONFIG_NETWORK_HOSTS=192.168.11.100	'//第101行 需要更改网络节点的IP地址'
782 CONFIG_LBAAS_INSTALL=y	'//第782行  LBAAS负载均衡组件。必选要装 选y'
790 CONFIG_NEUTRON_FWAAS=y 	'//第790行 FWAAS是防火墙组件。必选要装 选y'
794 CONFIG_NEUTRON_VPNAAS=y 	'//第794行 VPNAAS是VPN组件。必选要装 选y'
817 CONFIG_NEUTRON_ML2_FLAT_NETWORKS=physnet1	'//第817行,FLAT网络这边要设置物理网卡名字'
862 CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex '//第862行,这边要设置物理网卡的名字'
873 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth1	'//第873行,这边br-ex:eth1是网络节点的nat网卡'
1185 CONFIG_PROVISION_DEMO=n 	'//第1185行 是OpenStack联网下载一个测试镜像,这边没联网。说以改成n'
'//开启之前注释的网关#GATEWAY=192.168.100.1'
[root@ct ~]# sed -i -r 's/(.+_PW)=.+/\1=123123/' openstack.txt	'//将密码修改为123123'
[root@ct ~]# sed -i -r 's/20.0.0.10/192.168.100.22/g' openstack.txt	'//将节点变成192.168.100.22'
[root@ct ~]# grep -vE "^#|^$" openstack.txt >openstackbak.txt	'//备份文件'
[root@ct ~]# packstack --answer-file=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/20201123-080236-BeQFDE/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 ]
Preparing Glance entries                             [ DONE ]
Checking if the Cinder server has a cinder-volumes vg[ DONE ]
Preparing Cinder entries                             [ DONE ]
Preparing Nova API entries                           [ DONE ]
Creating ssh keys for Nova migration                 [ DONE ]
Gathering ssh host keys for Nova migration           [ DONE ]
Preparing Nova Compute entries                       [ DONE ]
Preparing Nova Scheduler entries                     [ DONE ]
Preparing Nova VNC Proxy entries                     [ DONE ]
Preparing OpenStack Network-related Nova entries     [ DONE ]
Preparing Nova Common entries                        [ DONE ]
Preparing Neutron LBaaS Agent entries                [ DONE ]
Preparing Neutron API entries                        [ DONE ]
Preparing Neutron L3 entries                         [ DONE ]
Preparing Neutron L2 Agent entries                   [ DONE ]
Preparing Neutron DHCP Agent entries                 [ DONE ]
Preparing Neutron Metering Agent entries             [ DONE ]
Checking if NetworkManager is enabled and running    [ DONE ]
Preparing OpenStack Client entries                   [ DONE ]
Preparing Horizon entries                            [ DONE ]
Preparing Gnocchi entries                            [ DONE ]
Preparing Redis entries                              [ DONE ]
Preparing Ceilometer entries                         [ DONE ]
Preparing Puppet manifests                           [ DONE ]
Copying Puppet modules and manifests                 [ DONE ]
Applying 192.168.100.22_controller.pp
192.168.100.22_controller.pp:                        [ DONE ]
Applying 192.168.100.22_network.pp
192.168.100.22_network.pp:                           [ DONE ]
Applying 192.168.100.24_compute.pp
Applying 192.168.100.23_compute.pp
192.168.100.23_compute.pp:                           [ DONE ]
192.168.100.24_compute.pp:                           [ DONE ]
Applying Puppet manifests                            [ DONE ]
Finalizing                                           [ DONE ]

 **** Installation completed successfully ******

Additional information:
 * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
 * File /root/keystonerc_admin has been created on OpenStack client host 192.168.100.22. To use the command line tools you need to source the file.
 * To access the OpenStack Dashboard browse to http://192.168.100.22/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
 * The installation log file is available at: /var/tmp/packstack/20201123-080236-BeQFDE/openstack-setup.log
 * The generated manifests are available at: /var/tmp/packstack/20201123-080236-BeQFDE/manifests
[root@ct ~]#

查看用户名和密码

[root@ct ~]# ls
anaconda-ks.cfg  keystonerc_admin  openstackbak.txt  openstack.txt
[root@ct ~]# cat keystonerc_admin
unset OS_SERVICE_TOKEN
    export OS_USERNAME=admin
    export OS_PASSWORD='123123'
    export OS_AUTH_URL=http://192.168.100.22:5000/v3
    export PS1='[\u@\h \W(keystone_admin)]\$ '

export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3

访问查看

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值