云计算:openstack学习条记和环境摆设

打印 上一主题 下一主题

主题 683|帖子 683|积分 2049

记录一次openstack的学习和摆设

openstack

OpenStack是一个自由、开源的云计算平台。它主要作为底子办法即服务(IaaS)摆设在公用云和私有云中,提供虚拟服务器和其他资源给用户使用。该软件平台由相互关联的组件组成,控制着整个数据中心内不同的厂商的计算、存储和网络资源的硬件池。用户可以通过基于网络的仪表盘或者下令行工具管理。
应用场景:OpenStack是底子办法即服务(IaaS)软件,让任何人都可以自行创建和提供云计算服务。

核心服务组件


OpenStack 的主要部分(组件):

  • Nova(计算服务): Nova 是 OpenStack 的计算服务组件,用于管理和调理虚拟机实例。它允许用户创建、启动、停止和管理虚拟机,还负责资源调理,以确保虚拟机在计算节点上得到适当的分配。
  • Neutron(网络服务): Neutron 是 OpenStack 的网络服务组件,负责创建和管理虚拟网络资源,包括虚拟子网、路由、防火墙等。它使用户能够界说和配置虚拟网络拓扑,以便虚拟机实例之间和与外部网络进行通讯。
  • Cinder(块存储服务): Cinder 是 OpenStack 的块存储服务组件,用于管理块级存储卷。它允许用户创建、附加、分离和备份块存储卷,以满足虚拟机实例的持久性存储需求。
  • Glance(镜像服务): Glance 是 OpenStack 的镜像服务组件,用于管理虚拟机镜像。它允许用户上传、存储和共享虚拟机镜像,以便在创建虚拟机实例时使用。
  • Keystone(身份认证服务): Keystone 是 OpenStack 的身份认证服务组件,用于管理用户身份验证和授权。它提供了用户、脚色、项目和权限管理,以确保只有经过身份验证和授权的用户才能访问 OpenStack 资源。
  • Swift(对象存储服务): Swift 是 OpenStack 的对象存储服务组件,用于存储和检索大规模的非结构化数据,如文件、图片和视频。它提供了可扩展的对象存储能力,适用于云存储和数据备份。
  • Horizon(仪表板): Horizon 是 OpenStack 的官方 Web 用户界面,用于管理和监视云资源。它提供了直观的图形界面,使用户能够通过欣赏器访问和控制 OpenStack。
  • Heat(编排服务): Heat 是 OpenStack 的编排服务组件,用于界说和管理云底子办法的资源和配置。它允许用户创建模板,以自动化和编排云资源的摆设和配置。
  • Ceilometer(监控和计量服务): Ceilometer 是 OpenStack 的监控和计量服务组件,用于收集、存储和分析云资源的使用和性能数据。它有助于云资源的监控、报告和计量。
  • Trove(数据库服务): Trove 是 OpenStack 的数据库服务组件,用于管理和提供云数据库服务。它支持各种数据库引擎,使用户能够轻松地创建、扩展和管理数据库实例。
  • Sahara(大数据处置惩罚服务): Sahara 是 OpenStack 的大数据处置惩罚服务组件,用于在云中摆设和管理大数据框架(如Hadoop、Spark等)。它提供了大数据处置惩罚的自动化工具和服务。
  • Zun(容器服务): Zun 是 OpenStack 的容器服务组件,用于管理和编排容器。它支持 Docker 容器,并允许用户创建、摆设和管理容器化应用程序。
devstack

devstack是面向开发者的一个openstack摆设工具,用户可以指定不同的版本分支进行安装。devstack借助于Shell脚本实现openstack自动化摆设,devstack源码中的stack.sh即为安装脚本,该脚本默认会安装并配置nova,glance,horizon和keyston、eplacement。
摆设过程

创建stack用户
  1. sudo useradd -s /bin/bash -d /opt/stack -m stack
  2. sudo passwd stack #编辑stack用户的登录密码
  3. sudo chmod +x /opt/stack #具有可执行权限
  4. echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
复制代码
切换到stack用户空间下
  1. su - stack
复制代码
下载devstack源码
  1. git clone https://opendev.org/openstack/devstack
  2. cd devstack
复制代码
在devstack创建local.conf配置文件
  1. [[local|localrc]]
  2. ADMIN_PASSWORD=123456
  3. DATABASE_PASSWORD=$ADMIN_PASSWORD
  4. RABBIT_PASSWORD=$ADMIN_PASSWORD
  5. SERVICE_PASSWORD=$ADMIN_PASSWORD
  6. GIT_BASE=http://git.trystack.cn
  7. NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
  8. SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git
  9. TEMPEST_REPO=http://git.trystack.cn/openstack/tempest
  10. LOGFILE=$DEST/logs/stack.sh.log
  11. LOGDAYS=2
复制代码
安装
  1. ./stack.sh
复制代码
报错记录:

  1. sudo apt install libldap-dev=2.5.11+dfsg-1~exp1ubuntu3.1 libldap-2.5-0=2.5.11+dfsg-1~exp1ubuntu3.1
  2. sudo apt install libsasl2-dev=2.1.27+dfsg2-3ubuntu1 libsasl2-2=2.1.27+dfsg2-3ubuntu1
  3. #第三条依赖:依赖关系可以使用aptitude安装
  4. sudo aptitude install libsystemd0=249.11-0ubuntu3.7
复制代码

  1. mkdir ~/.pip
  2. vim ~/.pip/pip.conf
  3. [global]
  4. index-url = https://pypi.tuna.tsinghua.edu.cn/simple
  5. [install]
  6. trusted-host = https://pypi.tuna.tsinghua.edu.cn
复制代码
报错:
  1. Job for apache2.service failed because the control process exited with error code.
  2. See "systemctl status apache2.service" and "journalctl -xeu apache2.service" for details.
复制代码
查看apache日志

端口80被占用,如下图

将 Apache2 的监听端口更改为其他可用端口,必要编辑 Apache2 的配置文件。
  1. sudo nano /etc/apache2/ports.conf
复制代码
找到以下行:
  1. Listen 80
复制代码
将 80 更改为其他未被占用的端口,比方 8080:
  1. Listen 80
  2. 80
复制代码
生存并退出配置文件
重新启动 Apache2 服务以使更改见效:
  1. sudo systemctl restart apache2
复制代码
成功启动apache2


放宽依赖范围:您可以尝试放宽对grpcio的版本限制,让pip尝试选择与etcd3兼容的版本。可以这样做:
  1. pip install etcd3==0.12.0 grpcio
复制代码
这将允许pip选择满足etcd3依赖的grpcio版本。

修改inc/python中pip_install函数,189行

报错:
  1. No module named 'setuptools.command.build'
复制代码
官网有这个issue:https://github.com/pypa/setuptools/issues/3560,
按照这个issue去做也尚未解决,末了卸载这个包后,重新使用国内源下载
export ALL_PROXY=socks5://222.24.18.228:1080(这个是我们实行室的代理) 脚本执行到pip按照依赖部分会报错:
  1. “ERROR: Could not install packages due to an OSError: Missing dependencies for SOCKS support.”
复制代码
解决:
  1. unset all_proxy
  2. unset ALL_PROXY
复制代码
但是执行后github克隆会很慢
找到git clone的脚本部分 在git clone时设置环境变量export ALL_PROXY=socks5://222.24.18.228:1080,执行完后unset all_proxy&&unset ALL_PROXY


脚本下载报错

单独克隆
  1. export ALL_PROXY=socks5://222.24.18.228:1080 && git clone https://opendev.org/openstack/glance.git /opt/stack/glance && unset ALL_PROXY
复制代码
报错:

建议在一个全新的ubuntu系统上摆设,整个过程中会下载许多依赖包,在全新的系统上摆设可以避免包之间的辩论(上述过程中的题目大多是网络题目和包辩论)!!!!!!!!!!
摆设成功后,终端输出如下
  1. =========================
  2. DevStack Component Timing
  3. (times are in seconds)  
  4. =========================
  5. wait_for_service      10
  6. async_wait            39
  7. osc                  141
  8. apt-get                5
  9. test_with_retry        3
  10. dbsync                 3
  11. pip_install           80
  12. apt-get-update         2
  13. run_process           25
  14. -------------------------
  15. Unaccounted time      85
  16. =========================
  17. Total runtime        393
  18. =================
  19. Async summary
  20. =================
  21. Time spent in the background minus waits: 185 sec
  22. Elapsed time: 393 sec
  23. Time if we did everything serially: 578 sec
  24. Speedup:  1.47074
  25. Post-stack database query stats:
  26. +------------+-----------+-------+
  27. | db         | op        | count |
  28. +------------+-----------+-------+
  29. | cinder     | SELECT    |   143 |
  30. | cinder     | UPDATE    |     5 |
  31. | keystone   | SELECT    | 46308 |
  32. | keystone   | INSERT    |    93 |
  33. | cinder     | INSERT    |     4 |
  34. | neutron    | SELECT    |  4142 |
  35. | neutron    | INSERT    |  6084 |
  36. | neutron    | UPDATE    |   115 |
  37. | placement  | SELECT    |    48 |
  38. | placement  | INSERT    |    60 |
  39. | placement  | SET       |     2 |
  40. | neutron    | DELETE    |    25 |
  41. | nova_api   | SELECT    |   120 |
  42. | nova_cell1 | SELECT    |   151 |
  43. | nova_cell0 | SELECT    |   119 |
  44. | nova_cell0 | INSERT    |     9 |
  45. | nova_cell0 | UPDATE    |     6 |
  46. | placement  | UPDATE    |     3 |
  47. | glance     | SELECT    |    48 |
  48. | glance     | INSERT    |     6 |
  49. | nova_api   | INSERT    |    20 |
  50. | nova_api   | SAVEPOINT |    10 |
  51. | nova_api   | RELEASE   |    10 |
  52. | glance     | UPDATE    |     2 |
  53. | nova_cell1 | INSERT    |     6 |
  54. | nova_cell1 | UPDATE    |    21 |
  55. +------------+-----------+-------+
  56. This is your host IP address: 192.168.115.130
  57. This is your host IPv6 address: ::1
  58. Horizon is now available at http://192.168.115.130/dashboard
  59. Keystone is serving at http://192.168.115.130/identity/
  60. The default users are: admin and demo
  61. The password: 123456
  62. Services are running under systemd unit files.
  63. For more information see:
  64. https://docs.openstack.org/devstack/latest/systemd.html
  65. DevStack Version: 2023.2
  66. Change: 129d0964a87ad5757ba21587e1aa7daac2300447 Merge "Remove openeuler job from periodic and check queue" 2023-09-12 21:45:50 +0000
  67. OS Version: Ubuntu 23.04 lunar
  68. 2023-09-18 07:59:37.003 | stack.sh completed in 394 seconds.
复制代码





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊雷无声

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表