OpenStack的简单部署

OpenStack的简单部署

一、OpenStack概述

OpenStack是由Rackspace和NASA共同研发的云计算平台,是一个旨在为公共及私有云的建设与管理提供软件的开源项目(它是一个云平台管理的项目,而不是一个软件)。其通过仪表盘为管理员提供计算、存储和网络资源的管理控制,同时通过Web界面为用户提供资源。这个项目由几个主要的组件组合起来完成一些具体的工作。

核心组件及如下图所示:

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

详细说明如下:

1、计算(Compute): Nova。一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作,配置CPU、内存等信息规格。自Austin版本集成到项目中。
2、对象存储(Object Storage): Swift。一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索文件。可为Glance提供镜像存储,为Cinder提供卷备份服务。自Austin版本集成到项目中。
3、镜像服务(Image Service): Glance。一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有创建上传镜像、删除镜像、编辑镜像基本信息的功能。自Bexar版本集成到项目中。
4、身份服务(Identity Service): Keystone。为OpenStack其他服务提供身份验证、服务规则和服务令牌的功能,管理Domains、Projects、Users、Groups、Roles。自Essex版本集成到项目中。
5、网络&地址管理(Network): Neutron。提供云计算的网络虚拟化技术,为OpenStack其他服务提供网络连接服务。为用户提供接口,可以定义Network、Subnet、Router,配置DHCP、DNS、负载均衡、L3服务,网络支持GRE、VLAN。插件架构支持许多主流的网络厂家和技术,如OpenvSwitch。自Folsom版本集成到项目中。
6、块存储 (Block Storage): Cinder。为运行实例提供稳定的数据块存储服务,它的插件驱动架构有利于块设备的创建和管理,如创建卷、删除卷,在实例上挂载和卸载卷。自Folsom版本集成到项目中。
7、UI 界面 (Dashboard): Horizon。OpenStack中各种服务的Web管理门户,用于简化用户对服务的操作,例如:启动实例、分配IP地址、配置访问控制等。自Essex版本集成到项目中。
其它:Ceilometer(计量)、Heat(部署编排)、Trove(数据库)

在这里插入图片描述

该图展示了各组件的作用以及各组件之间的关系,也是OpenStack各个服务之间APT调用的概览,其中实线表示客户端的API调周用,虚线表示各个组件之间通过rpc进行通信。

在这里插入图片描述

认证组件与其它组件都有交互,主要是为他们提供身份验证服务。计算组件Nova与其他几个服务也有一些接口:它使用Keystone来执行身份验证,使用界面展示服务Horizon作为其管理接口,并用Glance提供其镜像。

其余的理论内容暂不展开赘述.

参考:

中国大学MOOC 河海大学-云计算技术与应用

OpenStack官方文档

二、环境准备

  1. VMware17虚拟机环境 https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html

  2. Centos7.9镜像 https://mirror.tuna.tsinghua.edu.cn/centos/7.9.2009/isos/x86_64/

  3. Xshell7&Xftp7远程连接工具 https://www.xshell.com/zh/free-for-home-school/

  4. 开启虚拟化功能的Windows 10,查看方式如下

在这里插入图片描述

其实大部分人是不需要管这一步骤的,因为大部分电脑都是已经启用了的,但是很多blog文章提到了,那么我也在这弄一个参考.如果未启用的可百度一下如何启用.

然后新建一台虚拟机,最小化安装就行。至于配置嘛,根据看自己电脑情况来,我这里是2核2线程,然后分配了8G的运行内存,50G的内存。

在这里插入图片描述

记得把Intel VT-x/EPT和AMD-V/RVI(V) 虚拟化引擎勾选上,如果报错再取消勾选.

关于 VMware的虚拟化引擎 Intel VT-x/EPT和AMD-V/RVI(V) 也简单记录一下:

  • Intel VT-X技术实现的功能是减少虚拟机运行时虚拟机和物理机得到双重系统调用所产生的高Context Switch。也就是说,虚拟机的进程在要先从虚拟机ring3转到ring0,再从物理机的ring3转到ring0,性能有很大损失,而Intel VT-X就是为了解决这一问题而产生的技术。
  • Intel RPT技术则是为了解决虚拟机的虚拟内存映射问题。虚拟机的虚拟内存要映射到虚拟机的物理内存上面,而虚拟机的物理内存相当于物理机的虚拟内存,物理机的虚拟内存也是要映射到物理机的物理内存上面的,所以这双重转换会造成很大的资源消耗,RPT技术就是减小这个消耗的。
  • AMD实现的功能和Intel的功能类似

关于vmware的详细使用配置:https://www.gaojipro.com/a/18085

关于虚拟化引擎的选项: http://t.zoukankan.com/zknublx-p-9156560.html

三、搭建流程

1. 安装虚拟机

CentOS7 使用最小化安装,也就是使用待有Minimal字样的镜像文件,安装界面先更改网卡名称

在这里插入图片描述

 net.ifnames=0 biosdevname=0

输入上面内容后再回车,目的是将网卡名称改为Eth0,记得和quiet之间有空格.

安装前开启网络并且选择最小安装:

在这里插入图片描述

安装完成之后打开虚拟机


2. 配置网路

查看VMware网络配置
在这里插入图片描述

设置静态ip

vi /etc/sysconfig/network-scripts/ifcfg-eth0  # 打开网卡配置文件
# 修改
BOOTPROTO="static"	     #设为静态IP
ONBOOT="yes"			 #设置开机自启动

# 添加
IPADDR="192.168.153.130" #子网IP,建议和开机时也就是ip addr看到的设置相同
GATEWAY="192.168.153.2"  #默认网关,一定和vmware的网关ip一样,见上图
NETMASK="255.255.255.0"  #子网掩码,自己设置和虚拟机NAT网卡的子网掩码一样
DNS1="223.6.6.6"		 #阿里云DNS
DNS2="114.114.114.114"   #腾讯114
DNS3="1.2.4.8"           #中国互联网络中心

如下图所示:

在这里插入图片描述

重启网络

service network restart 	 #重启网卡
systemctl restart network    # 重启网络服务

可以用以下命令查看是否配置正确

ping www.baidu.com -c 3
3. 修改主机名
hostnamectl set-hostname openstack.alione.local && exec bash
4. 配置hosts解析
vi /etc/hosts # 打卡配置文件

添加以下内容

192.168.153.130 openstack openstack.alione.local

在这里插入图片描述

5. 配置本机免密连接

生成密钥

ssh-keygen -t rsa  # 回车四次

对本机进行免密

ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.153.130
6. 关闭防火墙、selinux策略以及NetworkManager
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config; 
setenforce 0; 
systemctl stop firewalld; 
systemctl disable firewalld;
systemctl stop NetworkManager; 
systemctl disable NetworkManager
7. 修改yun源

1.下载阿里源
方法一: curl下载(此处若下载失败可以先重启并检查第二步网络配置后重试)

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

如果这里失败的话可以尝试下面的方法
方法二:wget下载

yum install -y wget # 安装wget下载器
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

2.清空并加载缓存yum源

yum clean all && yum makecache

阿里源 https://developer.aliyun.com/mirror/centos

8. 安装基本工具
yum install -y bash-completion vim telnet bridge-utils yum-utils && bash
9. 系统升级
yum -y update

reboot

如需删除多余内核

yum remove $(rpm -qa | grep kernel | grep -v $(uname -r)) -y 
10. 安装OpenStack的yum仓库
yum install centos-release-openstack-train -y

如需查看可安装版本

yum list | grep openstack*
11. 修改openstack仓库repo文件

因为对网络需求大,当出现网络波动时会导致报错,最好修改为国内源进行部署

cd /etc/yum.repos.d # 切换目录
cp CentOS-OpenStack-train.repo{,.bak} #备份配置
vim CentOS-OpenStack-train.repo # 打开配置文件

更改按照以下内容进行更改

在这里插入图片描述

baseurl=http://mirrors.aliyun.com/$contentdir/$releasever/cloud/$basearch/openstack-train/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=cloud-openstack-train

重建yum缓存

yum clean all && yum makecache
12. 安装packstack工具
cd ~ # 先回到根目录
yum install -y openstack-packstack

再次确认以下内容:

ping www.baidu.com -c3 
hostname
cat /etc/hosts
getenforce
systemctl status firewalld.service
systemctl status NetworkManager

全部正确如下所示:
在这里插入图片描述

13. 在线部署
packstack --allinone

可新建一个终端查看安装过程信息

tail -f /var/log/messages

此处时间可能比较长,出现 [ \ ] 就等一会儿看,出现错误就解决错误 (建议重装虚拟机吧),安装错误解决可以参考后文(实际上可能没什么实质性帮助)

出现类似下面这个就说明安装成功了

在这里插入图片描述

四、OpenStack的简单使用

这里就强调"简单"二字!

1. 查看用户信息并登陆
cat ~/keystonerc_admin

在这里插入图片描述

打开浏览器访问:
在这里插入图片描述

登入后内容如下:
在这里插入图片描述

2. 向OpenStack上传镜像

在原本的openstack中只有一个镜像

在这里插入图片描述

首先将任意一个镜像上传至虚拟机(上传方法很多很多,可以使用scp命令也可以用Xftp,我这里将CentOS-7-x86_64-Minimal-2207-02.iso上传至虚拟机

在这里插入图片描述

在这里插入图片描述

可以看到已经在虚拟机中了。然后我们使用如下指令将其上传到open stack当中

openstack image create "CentOS7" --file CentOS-7-x86_64-Minimal-2207-02.iso --disk-format qcow2 --container-format bare --public

重新刷新网页查看刚刚上传的镜像

在这里插入图片描述


五、一些安装错误

希望你不需要看这些内容

1. ERROR : Failed to run remote script, stdout:

报错信息如下:

Pre installing Puppet and discovering hosts' details[ ERROR ]
ERROR : Failed to run remote script, stdout: 
stderr: Warning: Permanently added '192.168.242.134' (ECDSA) to the list of known hosts.
+ trap t ERR
+ facter -p
facter: error while loading shared libraries: leatherman_curl.so.1.3.0: cannot open shared object file: No such file or directory

根据提示看了一下日志:/var/tmp/packstack/20221210-215006-NfsKcI/openstack-setup.log .

发现错误:leatherman rpm 包版本问题,已经安装版本是1.10.0-1而facter需要1.3.0

回退leatherman版本

yum downgrade leather

问题解决。

解决参考:Packstack安装OpenStack问题:facter: error while loading shared libraries: leatherman_curl.so.1.3.0

2. ERROR : Error appeared during Puppet run: 192.168.242.134_controller.pp
Error: Execution of '/usr/bin/yum -d 0 -e 0 -y install openstack-keystone' returned 1: Error: Package: python2-qpid-proton-0.26.0-2.el7.x86_64 (centos-openstack-train)
You will find full trace in log /var/tmp/packstack/20221210-220027-RbWWFw/manifests/192.168.242.134_controller.pp.log
Please check log file /var/tmp/packstack/20221210-220027-RbWWFw/openstack-setup.log for more information
Additional information:
 * Parameter CONFIG_NEUTRON_L2_AGENT: You have chosen OVN Neutron backend. Note that this backend does not support the VPNaaS or FWaaS services. Geneve will be used as the encapsulation method for tenant networks
 * A new answerfile was created in: /root/packstack-answers-20221210-220027.txt
 * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.

如果不出问题就出问题了,

解决参考:

【云计算】CentOS7 上配置Openstack(单机)bug记录

yum -y install PackageKit-backend
yum -y install yum-utils
yum -y install qpid-proton-c-0.26.0-2.el7.x86_64
yum -y install openstack-keystone
3. Error: (pymysql.err.OperationalError) (1045, u"Access denied for user ‘nova’@‘192.168.242.134’ (using password: YES)")
92.168.242.134_controller.pp:                    [ ERROR ]              
Applying Puppet manifests                         [ ERROR ]

ERROR : Error appeared during Puppet run: 192.168.242.134_controller.pp
Notice: /Stage[main]/Nova::Db::Sync/Exec[nova-db-sync]/returns: 
#########################这是主要报错,无法解决
Error: (pymysql.err.OperationalError) (1045, u"Access denied for user 'nova'@'192.168.242.134' (using password: YES)") (Background on this error at: http://sqlalche.me/e/e3q8)
#############################
You will find full trace in log /var/tmp/packstack/20221210-223929-ulhpTJ/manifests/192.168.242.134_controller.pp.log
Please check log file /var/tmp/packstack/20221210-223929-ulhpTJ/openstack-setup.log for more information
Additional information:
 * Parameter CONFIG_NEUTRON_L2_AGENT: You have chosen OVN Neutron backend. Note that this backend does not support the VPNaaS or FWaaS services. Geneve will be used as the encapsulation method for tenant networks

在这里插入图片描述

解决:根据信息提示 Access denied for user ‘nova’@‘hostname’ (using password: YES) 查看数据库用户信息,发现并不能登陆 openstack。此问题一直未得到解决,可以尝试删除虚拟机之后重新安装!

尝试了以下的方法:

在这里插入图片描述

仍然报了相同的错误!

我在Stack Overflow上也发现了类似的问题:https://stackoverflow.com/questions/66904344/openstack-installation-error-with-nova-and-authentification

and thishttps://serverfault.com/questions/894327/how-to-install-rdo-openstack-in-hetzner

OpenStack搭建报错1045

1045-Access denied for user ‘‘@‘‘ (using password: YES)错误处理

4. Error: Systemd start for httpd failed!

出现该问题一般有两个原因: 1是端口号被占用了,2是僵尸进程

解决方法1:

ps -aux | grep http# 查看端口号,第二行数字就是进程pid号
# kill -pid号 即可杀掉进程 如 Kill -9  
# 杀完之后 重启reboot 再ps –aux | grep http 确保httpd进程被杀掉

解决方法2:

yum -y remove httpd mod_wsgi  #先卸载httpd服务
yum -y install httpd mod_wsgi #再重新安装
service httpd restart 		  #重启服务
systemctl start httpd.service # 重启服务

参考解决:

openstack部署中systemctl start httpd失败解决方法

OpenStack常见错误:无法开启http服务

OpenStack Train 安装过程记录

5. 打开浏览器之后提示:Forbidden You don’t have permission to access /dashboard on this server.
没有安装成功,请重新安装
6. Missing value auth-url required for auth plugin password

第一步:登录到openstack,找到右上角admin

第二步:下载admin-openrc.sh

第三步:将这个文件拖到openstack开发环境中,source它。输入密码就ok了。

参考: Missing value auth-url required for auth plugin password

7. The request you have made requires authentication. (HTTP 401)

参考:https://blog.csdn.net/qq_28513801/article/details/90263263

8. 其它问题

参考:

openstack中遇到的错误记录(记录中)

离线安装 Openstack 和问题记录

openstack报错汇总

来谈谈packstack工具部署OpenStack路上的一些坑

openstack部署及使用过程中遇到的问题汇总

去找找说不定有你的错误! 去找找说不定有你的错误!

9. 结尾

结尾彩蛋: 如何给命令行上个色? 👉 Xshell7 给 [root@Localhost:root] 上个颜色

PS1='\[\e[37;40m\][\[\e[37;40m\]\u\[\e[0m\]@\h \[\e[36;40m\]\w\[\e[37;40m\]]\\$\[\e[0m\]'

参考文章:

OpenStack rdo一键allinone部署

OpenStack部署(图文详解)

最全openstack部署教程

[openstack详细部署]

云平台技术学习笔记(二)

在centos7上使用packstack安装openstack

OpenStack-allinone单机部署-Bilibili

  • 7
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。 1. OpenStack是什么 OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算OpenStack旗下包含了一组由社区维护的开源项目,他们分别是OpenStackCompute(Nova),OpenStackObjectStorage(Swift),以及OpenStackImageService(Glance)。 OpenStackCompute[1],为云组织的控制器,它提供一个工具来部署云,包括运行实例、管理网络以及控制用户和其他项目对云的访问(thecloudthroughusersandprojects)。它底层的开源项目名称是Nova,其提供的软件能控制IaaS云计算平台,类似于AmazonEC2和RackspaceCloudServers。实际上它定义的是,与运行在主机操作系统上潜在的虚拟化机制交互的驱动,暴露基于WebAPI的功能。 OpenStackObjectStorage[2],是一个可扩展的对象存储系统。对象存储支持多种应用,比如复制和存档数据,图像或视频服务,存储次级静态数据,开发数据存储整合的新应用,存储容量难以估计的数据,为Web应用创建基于云的弹性存储。 OpenStackImageService[1],是一个虚拟机镜像的存储、查询和检索系统,服务包括的RESTfulAPI允许用户通过HTTP请求查询VM镜像元数据,以及检索实际的镜像。VM镜像有四种配置方式:简单的文件系统,类似OpenStackObjectStorage的对象存储系统,直接用Amazon'sSimpleStorageSolution(S3)存储,用带有ObjectStore的S3间接访问S3。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python-AI Xenon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值