OpenStack新组件打包

..
声明:
本博客欢迎转发,但请保留原作者信息!
博客地址:http://blog.csdn.net/liujiong63
新浪微博:@Jeremy____Liu
内容系本人学习、研究和总结,如有雷同,实属荣幸!


对于OpenStack里的新组件,不能只发布基于pip的安装包。一旦组件功能比较成熟稳定,发布基于各个Linux发行版的安装包就非常有必要了。这里,介绍我在为OpenStack的karbor组件打包的过程,希望对有需要的小伙伴们有所帮助。

rpm-packaging项目

链接:https://github.com/openstack/rpm-packaging
该项目维护了各个OpenStack组件的spec模板,可以使用这些模板生成供RDO和SUSE打包用的文件。如果想要发布基于RPM的安装包,就需要在这个项目中为你的组件编写spec模板文件。

pymod2pkg项目

链接:https://github.com/openstack/pymod2pkg
该项目维护了python模块名与发布的安装包名的映射关系。在OpenStack里,各个组件与其发布的安装包名有很强的规律性。
通常,OpenStack里的服务组件(例如nova),其发布的RPM包名有openstack-nova-api, openstack-nova-compute, python-nova等。其中,以openstack开头的RPM包,其打包进去的文件有配置文件、可执行文件等;而以python开头的RPM包,其打包进去的文件通常是源码文件。
这种RPM包名的确定就是由pymod2pkg项目决定的。
pymod2pkg维护了OpenStack组件在各个Linux发行版(RDO、SUSE、UBUNTU)中的包名。

踩坑经历

刚开始我参考rpm-packaging项目里现有的模板文件制作了karbor的spec文件,并推送到社区的gerrit,很快社区的CI反馈了测试结果。提示我找不到两个依赖包(abclient和icalendar)。这两个依赖项是karbor组件的依赖,可以通过pip源进行安装,但是却没有发布基于RDO的安装包,因此,CI测试失败。我在OpenStack开发者邮件列表中反馈了我遇到的问题,很快就有志愿者(非常感谢Chandan Kumar)为我制作了基于RDO的abclient和icalendar的安装包并上传到RDO仓库中。这解决了我遇到的第一个问题。
之后,我重新触发了CI的测试,测试结果是:error: Package already exists: %package -n python-karbor
我明白这是由于我的spec模板生成的打包文件中有两个包,名字都叫python-karbor。但是,我的模板文件写的没有问题。很快rpm-packaging的core reviewer就反馈说我必须修改pymod2pkg的映射关系。于是,就搜索到了pymod2pkg这个项目,看到其中维护的发行版组件中没有karbor,添加了karbor组件后,patch顺利合入。
目前,karbor的spec模板的patch还没合入主线,是否还有其他坑要踩呢,忧虑~

RDO中添加打包模板

按照RDO社区给的步骤(https://www.rdoproject.org/documentation/add-packages/)操作就可以了。

附链接

karbor的spec模板:https://review.openstack.org/#/c/480806/
pymod2pkg添加karbor映射:https://review.openstack.org/#/c/485057/
社区邮件列表反馈:https://www.mail-archive.com/openstack-dev@lists.openstack.org/msg108249.html
为RDO添加依赖包:https://review.rdoproject.org/r/#/c/7711/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenStack 是一个开源的云计算平台,包括了多个组件,每个组件都有其独特的技术细节,以下是各组件的简要介绍: 1. NovaNovaOpenStack 中的计算组件,用于管理虚拟机实例。它支持多种虚拟化技术,包括 KVM、Xen、Hyper-V 和 VMware 等。Nova 还提供了丰富的 API,可以通过 API 来创建、删除和管理虚拟机实例。 2. Glance:Glance 是 OpenStack 中的镜像组件,用于管理镜像。Glance 可以将虚拟机实例和操作系统等打包成镜像,以便于创建的虚拟机实例。Glance 还支持多种存储后端,包括本地存储、Swift 对象存储和 Ceph 存储等。 3. Neutron:Neutron 是 OpenStack 中的网络组件,用于管理网络。Neutron 支持多种网络拓扑结构,包括 VLAN、VXLAN、GRE 和 Geneve 等。Neutron 还提供了防火墙、负载均衡和 VPN 等功能。 4. Cinder:Cinder 是 OpenStack 中的块存储组件,用于管理块存储。Cinder 支持多种存储后端,包括本地存储、iSCSI 存储和 Ceph 存储等。Cinder 还提供了快照和备份功能。 5. Swift:Swift 是 OpenStack 中的对象存储组件,用于管理对象存储。Swift 支持多种存储后端,包括本地存储、Ceph 存储和 Swift 存储等。Swift 还提供了数据复制、数据分区和数据加密等功能。 6. Keystone:Keystone 是 OpenStack 中的身份认证组件,用于管理用户身份和权限。Keystone 支持多种身份认证方式,包括用户名和密码、OAuth 和 LDAP 等。Keystone 还提供了多租户和角色管理等功能。 7. Horizon:Horizon 是 OpenStack 中的 Web 界面,用于管理 OpenStack 的各个组件。Horizon 提供了直观的用户界面,可以让用户轻松地创建和管理虚拟机实例、存储和网络等。 除了以上组件OpenStack 还包括了多个其他组件,比如 Heat(用于管理应用程序)、Ceilometer(用于监控和计量)和 Trove (用于管理数据库)等。每个组件都有其独特的技术细节,可以根据需求选择合适的组件来搭建云计算平台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值