数据人与超自然意识 发表于 2024-6-11 00:11:01

OpenStack的简单摆设

OpenStack的简单摆设



一、OpenStack概述

OpenStack是由Rackspace和NASA共同研发的云计算平台,是一个旨在为公共及私有云的建设与管理提供软件的开源项目(它是一个云平台管理的项目,而不是一个软件)。其通过仪表盘为管理员提供计算、存储和网络资源的管理控制,同时通过Web界面为用户提供资源。这个项目由几个主要的组件组合起来完成一些具体的工作。
核心组件及如下图所示:
https://img-blog.csdnimg.cn/f6a115a975f4418da472d034c61759a3.pnghttps://img-blog.csdnimg.cn/07442369bc594f82881772ea91842b8c.pnghttps://img-blog.csdnimg.cn/4c3f020c679c483597fcb9a6fd06a9fe.png
详细阐明如下:
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(数据库) 等
https://img-blog.csdnimg.cn/3f5778feaff741c2a1702b4618f51461.png
该图展示了各组件的作用以及各组件之间的关系,也是OpenStack各个服务之间APT调用的概览,此中实线表现客户端的API调周用,虚线表现各个组件之间通过rpc进行通信。
https://img-blog.csdnimg.cn/2c32090dcc6c4b6580b855451777defe.png
认证组件与其它组件都有交互,主要是为他们提供身份验证服务。计算组件Nova与其他几个服务也有一些接口:它使用Keystone来实行身份验证,使用界面展示服务Horizon作为其管理接口,并用Glance提供其镜像。
别的的理论内容暂不展开赘述.
参考:
中国大学MOOC 河海大学-云计算技术与应用
OpenStack官方文档
二、环境准备


[*] VMware17虚拟机环境 https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html
[*] Centos7.9镜像 https://mirror.tuna.tsinghua.edu.cn/centos/7.9.2009/isos/x86_64/
[*] Xshell7&Xftp7长途连接工具 https://www.xshell.com/zh/free-for-home-school/
[*] 开启虚拟化功能的Windows 10,检察方式如下
https://img-blog.csdnimg.cn/7d3bba12bf754f79aa0bfb62936e5a5d.png
实在大部分人是不必要管这一步调的,由于大部分电脑都是已经启用了的,但是许多blog文章提到了,那么我也在这弄一个参考.如果未启用的可百度一下如何启用.
然后新建一台虚拟机,最小化安装就行。至于配置嘛,根据看本身电脑情况来,我这里是2核2线程,然后分配了8G的运行内存,50G的内存。
https://img-blog.csdnimg.cn/cbdbfe93472c4c9480deb3b09a85a3d8.png
记得把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字样的镜像文件,安装界面先更改网卡名称
https://img-blog.csdnimg.cn/c220fb462bfa4fce964791b6f31be034.png
net.ifnames=0 biosdevname=0
输入上面内容后再回车,目的是将网卡名称改为Eth0,记得和quiet之间有空格.
安装前开启网络并且选择最小安装:
https://img-blog.csdnimg.cn/371195ac736748a0af4c1e23c49de4cb.png
安装完成之后打开虚拟机
2. 配置网路

检察VMware网络配置
https://img-blog.csdnimg.cn/1262fc4eeee84933bb258088002e24c7.png
设置静态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"         #中国互联网络中心

如下图所示:
https://img-blog.csdnimg.cn/9a943cade75a4fb6ba6e253c22fba8a9.png
重启网络
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
https://img-blog.csdnimg.cn/623833b01ec64b46acc690ec045d823e.png
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 # 打开配置文件
更改按照以下内容进行更改
https://img-blog.csdnimg.cn/853077f42d464f3a954d547ed5eb4c0e.png
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
全部正确如下所示:
https://img-blog.csdnimg.cn/9bd27fe1e8904f098e9cce464a5e6350.png
13. 在线摆设

packstack --allinone
可新建一个终端检察安装过程信息
tail -f /var/log/messages

此处时间可能比较长,出现 [ \ ] 就等一会儿看,出现错误就解决错误 (建议重装虚拟机吧),安装错误解决可以参考后文(实际上可能没什么实质性资助)
出现类似下面这个就阐明安装成功了
https://img-blog.csdnimg.cn/e8b30e6a6f4f45eb9c74c7211403deb4.png
四、OpenStack的简单使用

这里就夸大"简单"二字!
1. 检察用户信息并登陆

cat ~/keystonerc_admin
https://img-blog.csdnimg.cn/3f22c033ac5648c28c6ef57572cda744.png
打开欣赏器访问:
https://img-blog.csdnimg.cn/5f5215d09df24dba8679fe5fab68d5d6.png
登入后内容如下:
https://img-blog.csdnimg.cn/e92f3d04ef564deab4f22eff16ab5c09.png
2. 向OpenStack上传镜像

在原本的openstack中只有一个镜像
https://img-blog.csdnimg.cn/ad1034f4116c4a5cabb1e58cf1593245.png
首先将任意一个镜像上传至虚拟机(上传方法许多许多,可以使用scp命令也可以用Xftp,我这里将CentOS-7-x86_64-Minimal-2207-02.iso上传至虚拟机
https://img-blog.csdnimg.cn/57cd3f9504cd4745a87a79edf1417d2e.png
https://img-blog.csdnimg.cn/d20742bf2a1a46babf9bcbf34f5a07fc.png
可以看到已经在虚拟机中了。然后我们使用如下指令将其上传到open stack当中
openstack image create "CentOS7" --file CentOS-7-x86_64-Minimal-2207-02.iso --disk-format qcow2 --container-format bare --public
重新刷新网页检察刚刚上传的镜像
https://img-blog.csdnimg.cn/d1adcfadb3754d3da80f440cb872dce8.png
五、一些安装错误

盼望你不必要看这些内容
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/Nova::Db::Sync/Exec/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

https://img-blog.csdnimg.cn/18d8a49da1d747c7b06574c76bb17fb7.png
解决:根据信息提示 Access denied for user ‘nova’@‘hostname’ (using password: YES) 检察数据库用户信息,发现并不能登陆 openstack。此标题不绝未得到解决,可以实验删除虚拟机之后重新安装!
实验了以下的方法:
https://img-blog.csdnimg.cn/852f6ddfe4264d2ba60f456fa602e6f1.png
仍然报了相同的错误!
我在Stack Overflow上也发现了类似的标题:https://stackoverflow.com/questions/66904344/openstack-installation-error-with-nova-and-authentification
and this:https://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. 结尾

结尾彩蛋: 如何给命令行上个色?
页: [1]
查看完整版本: OpenStack的简单摆设