Openstack+Puppet
感谢 puppet-openstack 社区的辛勤工作,Puppet 是最新 Openstack 用户调查 中 Openstack 的首选部署方法。
如果您想加入其中并做出贡献,请继续阅读!
首先,先了解一些背景知识
- Openstack 是一个模块化的云编排平台,自称是“用于构建私有和公有云的开源软件”。
- puppet-openstack 是一个 Stackforge 项目,用于集中开发与 Openstack 相关的 puppet 模块。puppet-openstack 也是一个实际的 模块,允许安装和配置核心 Openstack 服务。
- Stackforge 用于托管 Openstack 相关项目,以便它们能够受益于与主要 Openstack 项目(如 Nova)相同的持续集成基础设施和审查系统。
现在我们已经了解了基础知识,如果您想为 Openstack 贡献力量,并不需要具备任何编程或网络知识。总会有像文档和翻译这样需要人力投入的事情。
然而,要为 puppet-openstack 做出贡献,则需要熟悉 ruby、puppet、puppet-rspec 以及当然,Openstack。
puppet-openstack 的贡献流程与向主要 Openstack 项目(如 Nova)提交代码略有不同,我不会在此处重点介绍它们,以保持简洁——这是一个需要另篇博文讨论的话题!
我最近开始参与新的 puppet-ceph 倡议,因此这篇博文或多或少地描述了我完成第一次贡献的过程。
好的,我报名了。¶
如果您想加入其中,基本注册说明在 Openstack Wiki 上有很好的文档记录:https://wiki.openstack.net.cn/wiki/How_To_Contribute
简而言之
- 注册一个 Launchpad 帐户,这将用于登录 Openstack 持续集成使用的 Gerrit 审查系统:https://launchpad.net/+login
- 加入 Openstack 基金会,这是免费的,并且是为 Openstack 做出贡献所必需的:https://openstack.net.cn/join/
- 同意个人 贡献者许可协议 (CLA)
- 如果您将代表组织提交代码,您还需要个人 CLA 之外的 企业贡献者许可协议 (CCLA)。
- 开始贡献!
入门 ¶
假设我想为 puppet-ceph 开发(!),我会将这些资源放在手边
- Launchpad 项目 用于 bug/问题/修复/功能/积压文档和讨论:https://bugs.launchpad.net/puppet-ceph (每个项目都有自己的 launchpad 项目)
- 开发者文档 将有助于准备您的开发环境等等。对于 puppet 模块,文档同时在 Openstack Wiki 和 README 文件中提供。
克隆项目 ¶
您需要 puppet 模块源代码才能进行工作,您可以从 Github 克隆它
git clone https://github.com/stackforge/puppet-ceph
或者从 Gerrit 克隆它
git clone https://review.openstack.org/stackforge/puppet-ceph
确保您已安装 ruby、rubygems 和 bundle ¶
首先,您需要 ruby 和 bundle 来管理 ruby 包(gems)。
这些是必需的,尤其是在进行 spec/integration/lint 测试时。
如果您已经拥有它们,可以跳过此部分!
在 Ubuntu 上:
apt-get install ruby rubygems ruby-bundler
在 Debian 上:
apt-get install ruby rubygems bundler
安装开发依赖项 ¶
借助 bundle,获取并安装位于仓库根目录的 Gemfile 中记录的 gem 依赖项。
bundle install
创建您的分支并进行操作 ¶
创建一个与您正在进行的操作相关的分支名称
git checkout -b feature/my_feature
现在您可以进行修改了。
不要忘记添加新的 spec 测试或修改现有的测试以匹配您对模块所做的修改。
测试您的内容 ¶
您已经添加或修改了一些代码,现在您想测试它
测试 puppet 语法 (puppet-lint):
bundle exec rake lint
运行 spec 测试 (puppet-rspec)
bundle exec rake spec
如果您尝试推送未通过测试的代码,jenkins 将不会让您通过——最好在发送以供审查之前确保一切正常!
测试成功?添加并提交您的内容 ¶
git add [file] git commit
确保您的提交消息遵循 正确的格式!
发送您的内容以供审查 ¶
git review
就是这样!您的代码已发送到 gerrit 以供社区和核心审查人员审查!
Jenkins 或某人 -1 了我的代码。帮帮我! ¶
也许您打了个错字或犯了更严重的错误,您想修复它——通过提交另一个补丁集来完成。
进行您想要进行的更改,再次添加文件,但不要使用“git commit”,而是使用“git commit —amend”。
这本质上将修改初始提交。
修改提交后,使用“git review”再次将代码发送回进行新的审查。