Kali Linux 之OpenStack单节点部署
OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。由NASA(美国国家航空航天局)和Rackspace合作研发并发起,以Apache许可证(Apache软件基金会发布的一个自由软件许可证)授权的开源代码项目。
OpenStack为私有云和公有云提供可扩展的弹性的云计算服务。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。
5个OpenStack的重要构成部分:
1.Nova - 计算服务
2.Swift - 存储服务
3.Glance - 镜像服务
4.Keystone - 认证服务
5.Horizon - UI服务
OpenStack 基本构架
Keystone、Dashboard与OpenStack 部分交互
参考资料来源:
1. OpenStack百度百科
2. 云计算快速入门之OpenStack及其构成简介
3. C语言中文网——OpenStack是什么?
以上,便是博主对大三下学期《OpenStack云平台部署与高可用》课程做的一个简要的介绍,原本博主是尝试使用Centos7来搭建OpenStack的:
图 为企业老师 提供教程
但在实践的过程中发现,是异常的繁琐的事,卡在最后两步的数据库授权上(在Mysql中也给nova等用户授于过所有使用权限),经管博主也是尽可能的尝试过了一些解决方式,前后重新搭建了4次,均未能解决该问题,如图:
且每次都可能遇到新的报错,合计花费了整整一天半的时间,逐渐的失去耐心,如果有路过的大佬,晓得如何解决该问题的话,欢迎留言讨论,也可私信博主,非常感谢您。
好,废话到此为止,让我们正式步入主题吧,Kali搭建OpenStack。
众所周知,OpenStack是有三种部署模式的,分别是:Single-node, multi-node or data centre cluster(单节点、多节点和数据中心集群部署) 不过,我们在该篇博文中仅介绍Single-node deployment 。
Single‐node deployment 单机安装 :
单节点部署需求:
● 使用基于微堆栈的安装
● 单机所需
● 16 GB或更多内存 (当然,≥4G即可)
● 多核处理器 (如果是pc机,至少分配1个4核CPU,并开启CPU虚拟化技术)
● 50 GB的空闲磁盘空间 (根据个人具体情况分配)
● Kali Linux 2018.4或更高版本
(Ubuntu则选18.04 LTS或更高版本)
● 包括所有关键的OpenStack组件
● 与上游完全兼容
● 支持开发迭代
若想在工作站上尝试OpenStack或将它用于开发目的,推荐如上配置,这样才能将能够执行所有基本操作(例如上传图像、创建网络、启动实例等)。
若为虚拟机搭建,例图:
博主建议网络桥接,如图是博主的kali虚拟机配置。
如果博友Kali系统版本过低,可执行如下命令进行在线升级:
# apt-get update && apt-get upgrade -y
再执行:
# apt-get dist-upgrade -y
博主的搭建环境如下:
CPU虚拟化技术:
相信,已经使用vmware虚拟机的你早已在bios中打开了CPU虚拟化支持 如果是Intel的CPU应在bois中激活Intel Virtual Technology项来开启,若是AMD的CPU则激活SVM Mode项来激活, 具体请根据你电脑型号百度查询完成。
在Vmware虚拟机中,在虚拟机设置中处理器下虚拟化引擎开启:选择 虚拟化Intel VT-x/EPT 或 AMD-V/RVI(V) 项
Kali中执行查询命令:
# cat /proc/cpuinfo
在 flags查看,有SVM或VMX则表明已开启CPU虚拟化技术。
# egrep '(vmx|svm)' --color=always /proc/cpuinfo
注:
SVM:AMD的虚拟化技术AMD-V/RVI(V)
VMK:是Intel的虚拟化技术Intel VT-x/EPT
Snap包管理安装MicroStack
snap是一款很强大的包管理器,我们用snap来安装OpenStack将会非常的方便!!倘若有朋友对snap尚不了解的话,可以阅读博主的另一篇博文,进一步学习了解:《Kali之snpa包管理器 》
Kali中还未有snap包管理器的朋友,如下执行:
# apt install -y snapd # 安装
# systemctl enable snapd.service
# systemctl restart snapd.service # 开启snpa包管理服务
# echo "export PATH=$PATH:/snap/bin" >> ~/.bashrc # 利用重定向写入环境变量中
# source ~/.bashrc # 执行生效命令
安装MicroStack
或许会有朋友困惑了,不是说OpenStack么,和MicroStack有什么关系呢?别着急,帅气又细心的博主已为你备好了解答:
$ sudo snap install microstack --beta --devmode
注:安装了带有–devmode标志将不会接收更新。
microstack (beta) ussuri from Canonical✓ installed
译文:显示的版本(在这里,Ussuri)与MicroStack提供的最新的稳定OpenStack版本相匹配。
返回如上英文信息,表明安装成功!
重启snap包管理器:
# systemctl restart snapd.service
初始化MicroStack
在使用OpenStack安装之前,必须对其进行初始化,以便配置网络和数据库。 为此,请运行:
# sudo snap run microstack init --auto --control # 手敲
WARNING: cgroup v2 is not fully supported yet, proceeding with partial confinement
2021-04-14 12:39:26,896 - microstack_init - INFO - Configuring clustering ...
2021-04-14 12:39:26,972 - microstack_init - INFO - Setting up as a control node.
......
-04-14 12:46:08,430 - microstack_init - INFO - Complete. Marked microstack as initialized!
出现 Marked microstack as initialized! 的执行消息,则表明OpenStack正在本地运行了,可以使用了!
MicroStack交互
可通过WebGUI或CLI与OpenStack进行交互
WebGUI与OpenStack交互:访问http://10.20.20.1/,admin是登陆用户名,执行密码获取,获取登陆密码:
$ sudo snap get microstack config.credentials.keystone-password
OpenStack仪表板:
可以开始使用本地私有云(即创建其他用户、启动实例等)了。
CLI与OpenStack交互:
还可以通过CLI与OpenStack进行交互,方法是使用 microstack.openstack命令 。微堆栈CLI语法与Python-openstackclient包裹。
例如,要列出可用的OpenStack端点,请运行:
$ sudo snap run microstack.openstack catalog list
microstack返回列表:
WARNING: cgroup v2 is not fully supported yet, proceeding with partial confinement
+-----------+-----------+----------------------------------------------------------------------------+
| Name | Type | Endpoints |
+-----------+-----------+----------------------------------------------------------------------------+
| nova | compute | microstack |
| | | public: http://192.168.43.190:8774/v2.1 |
| | | microstack |
| | | internal: http://192.168.43.190:8774/v2.1 |
| | | microstack |
| | | admin: http://192.168.43.190:8774/v2.1 |
| | | |
| cinderv3 | volumev3 | microstack |
| | | admin: http://192.168.43.190:8776/v3/3840ab8c3aac4e7d8d1309dc565e9db3 |
| | | microstack |
| | | internal: http://192.168.43.190:8776/v3/3840ab8c3aac4e7d8d1309dc565e9db3 |
| | | microstack |
| | | public: http://192.168.43.190:8776/v3/3840ab8c3aac4e7d8d1309dc565e9db3 |
| | | |
| cinderv2 | volumev2 | microstack |
| | | public: http://192.168.43.190:8776/v2/3840ab8c3aac4e7d8d1309dc565e9db3 |
| | | microstack |
| | | admin: http://192.168.43.190:8776/v2/3840ab8c3aac4e7d8d1309dc565e9db3 |
| | | microstack |
| | | internal: http://192.168.43.190:8776/v2/3840ab8c3aac4e7d8d1309dc565e9db3 |
| | | |
| keystone | identity | microstack |
| | | admin: http://192.168.43.190:5000/v3/ |
| | | microstack |
| | | internal: http://192.168.43.190:5000/v3/ |
| | | microstack |
| | | public: http://192.168.43.190:5000/v3/ |
| | | |
| glance | image | microstack |
| | | public: http://192.168.43.190:9292 |
| | | microstack |
| | | internal: http://192.168.43.190:9292 |
| | | microstack |
| | | admin: http://192.168.43.190:9292 |
| | | |
| neutron | network | microstack |
| | | public: http://192.168.43.190:9696 |
| | | microstack |
| | | admin: http://192.168.43.190:9696 |
| | | microstack |
| | | internal: http://192.168.43.190:9696 |
| | | |
| placement | placement | microstack |
| | | internal: http://192.168.43.190:8778 |
| | | microstack |
| | | admin: http://192.168.43.190:8778 |
| | | microstack |
| | | public: http://192.168.43.190:8778 |
| | | |
+-----------+-----------+----------------------------------------------------------------------------+
更多命令可通过help查询:microstack.openstack --help
启动实例:
启动第一个OpenStack实例(或VM)的最快方法是运行以下命令:
$ sudo snap run microstack launch cirros --name xyl # "xyl"为你创建项目名
向实例提供SSH所需的信息:
WARNING: cgroup v2 is not fully supported yet, proceeding with partial confinement
Launching server ...
Allocating floating ip ...
Server xyl launched! (status is BUILD)
Access it with `ssh -i /home/root/snap/microstack/common/.ssh/id_microstack cirros@10.20.20.43`
You can also visit the OpenStack dashboard at http://10.20.20.1:80
值得注意的是ip地址会根据你的环境而不同。接下来ssh连接实例,执行命令:
# ssh -i /home/root/snap/microstack/common/.ssh/id_microstack cirros@10.20.20.43
连接到OpenStack集群上后就可以执行各种命令干活了,例如:
uptime
14:51:42 up 4 min, 1 users, load average: 0.00, 0.00, 0.00
当断开连接时执行:exit。
当然也可在Web GUI 的"Instances"项中查看,登陆Http://10.20.20.1/地址: