OpenStack是基础设施即服务(IaaS)云计算项目,它是根据Apache许可条款发布的免费开源软件。 该项目由OpenStack基金会管理,OpenStack基金会是一个非营利性公司实体,于2012年9月成立,旨在促进,保护和增强OpenStack软件及其社区的功能。
资源是通过仪表板进行管理的,该仪表板使管理员可以进行控制,同时使用户能够通过Web界面配置资源。 本文向您展示了如何设置帐户,设置开发环境以及如何为OpenStack做出贡献。
步骤1:使用在线注册和密钥配置来设置您的帐户
设置您的启动板帐户。 Launchpad是OpenStack托管其所有项目的地方。 转到启动板登录页面以使用您的电子邮件地址进行注册,并给自己一个方便的启动板ID。 然后转到https://launchpad.net/~ LaunchpadID来设置您的OpenPGP密钥,并按照页面上的说明上载SSH公共密钥。 例如,我的Launchpad ID是houshengbo,所以我转到https://launchpad.net/~houshengbo,如图1所示。
图1.设置您的OpenPGP密钥
为Gerrit设置SSH帐户。 OpenStack应用了代码检查过程以确保代码质量。 转到OpenStack代码查看页面,然后使用您的Launchpad帐户登录。 然后转到https://review.openstack.org/#/settings/ssh-keys ,并上传您的SSH公钥。
步骤2:签署CLA协议
如果还没有,请加入The OpenStack Foundation 。 使用您计划用于代码贡献的电子邮件地址。 您的基础资料中的主要电子邮件地址需要与您稍后在Gerrit联系信息中设置的首选电子邮件匹配。 转到“ 代码查看”页面。 点击页面右上角的登录链接。 使用您的启动板ID登录到启动板。 除非您是美国政府雇员(请参阅下文),否则请同意“ 个人贡献者许可协议”并提供联系信息。 您的全名和电子邮件地址是公开的。 以后可以根据需要更新此联系信息,但请确保主要电子邮件地址始终与您为OpenStack Foundation成员资格设置的电子邮件地址匹配。 加入OpenStack贡献者小组。 需要成员才能提交代码更改。
如果您是个人贡献者,则上述步骤就足够了。 如果您代表公司或美国政府工作,则可能需要遵循一些额外的内部批准程序,这些程序可能因公司而异。 有关详细信息,请参阅《 贡献者许可协议》 。
步骤3:建立本地开发环境
设置Eclipse环境:
使用python安装Ubuntu 11.10或11.10+。 安装git: sudo apt-get install git 。 安装Eclipse。 为Eclipse安装PyDev插件。
在Eclipse窗口上,单击帮助>安装新软件 。 为Eclipse配置python解释器。 在使用字段中,输入http://pydev.org/updates ,然后单击添加 。 检查PyDev 。 单击“ 下一步”,直到到达“审阅许可证”窗口。 接受许可条款,然后单击“ 完成” 。 安装Eclipse的EGit插件。
在Eclipse窗口上,单击帮助>安装新软件 。 在使用字段中,输入http://download.eclipse.org/egit/updates ,然后单击添加 。 在Eclipse Git Team Provider下检查Eclipse EGit 。 单击“ 下一步”,直到到达“审阅许可证”窗口。 接受许可条款,然后单击“ 完成” 。 设置代码库。
使用devstack:
打开终端,进入目标目录并运行以下命令以获取devstack代码: git clone git://github.com/openstack-dev/devstack.git 在刚刚创建的devstack目录下创建一个名为localrc的文件。 在DevStack网站上找到有关如何配置localrc的信息。 运行./stack.sh 。 默认工作场所为/ opt / stack,可以手动更改。 当devstack首次成功运行时,您可以在/ opt / stack下找到所有代码。 另一种方法是下载特定项目,而不是克隆所有项目。 以项目Keystone为例:
打开终端,转到目标目录(例如/ opt / stack),然后运行以下命令以获取梯形代码: git clone https://github.com/openstack/keystone.git 将项目导入Eclipse:运行Eclipse,并将工作空间设置为保存所有项目(/ opt / stack)的目录。 创建PyDev项目:单击文件>新建> PyDev项目 。 为它命名与项目相同的名称(例如梯形失真),然后单击“ 完成” 。 使用Egit同步项目:在Eclipse中,右键单击项目(基石),单击Team> Share project ,然后单击Next和Finish 。 完成上述步骤后,您应该能够在Eclipse中的项目名称之后看到[keystone master]。
运行单元测试
运行项目的所有单元测试:
打开终端并转到项目目录,例如,梯形失真校正。 运行命令./run_tests.sh 。 当询问是否要创建虚拟环境时,请选择Y或N。 测试一个案例:
打开终端并转到项目目录,例如,梯形失真校正。 运行命令./run_tests.sh <file path> ,例如,./ ./run_tests.sh /opt/stack/keystone/tests/test_backend.py 。 测试一个案例:
打开终端并转到项目目录,例如,梯形失真校正。 运行命令./run_tests.sh <file path>:<class name> ,例如,./ ./run_tests.sh /opt/stack/keystone/tests/test_backend.py:CommonHelperTests 。 测试一个方法:
打开终端并转到项目目录,例如,梯形失真校正。 运行命令./run_tests.sh <file path>:<class name>.<method name> ,例如: ./run_tests.sh
/opt/stack/keystone/tests/test_backend.py:CommonHelperTests.test_format_helper_raises_malformed_on_incomplete_format 。
运行OpenStack服务
通过Devstack运行所有服务:
打开终端并转到devstack目录。 运行命令./stack.sh 。 在localrc中,指定要运行的服务,例如ENABLED_SERVICES=key,c-api,c-vol,c-sch,mysql,rabbit 。 运行./unstack.sh以关闭所有服务。 ./stack.sh成功运行./stack.sh之后,您还可以运行./rejoin-stack.sh来运行所有指定的服务。 在Eclipse中运行服务。 以Keystone为例:
在Eclipse中为梯形校正设置调试配置。 右键单击脚本梯形,在bin下的所有位置,单击Debug as> Debug Configurations ,如图3所示。
设置调试配置。 单击Arguments选项卡,为工作目录选择Other ,然后输入${workspace_loc:keystone} ,如图4和图5所示。
启动Keystone:单击Debug Configuration窗口上的Debug按钮,或从Debug / Run下拉工具栏按钮运行它,如图6所示。
步骤4:设置本地计算机配置
设置git全局配置:
打开一个终端。 运行命令git config --global user.name "Firstname Lastname" 。 运行命令git config --global user.email "your_email@youremail.com" 。 安装git-review工具:
对于Ubuntu 12.04或更高版本,在终端中运行命令sudo apt-get install git-review 。 对于早于Ubunu 12.04的版本,运行sudo pip install git-review 。 配置您的项目以了解Gerrit:
打开终端并转到项目目录,例如,梯形失真校正。 运行命令git review -s 。 它将要求您输入您的Gerrit用户名。 输入您的启动板ID,然后按Enter。
步骤5:OpenStack工作流程演示
如果您发现OpenStack问题,请将其注册为错误。 如果您想添加新功能,请将其注册为蓝图。 您要添加的修改应该位于主节点以外的其他分支中。 另外,请勿在一个分支中混用多个错误修复程序或蓝图开发。 以下工作流程显示了Keystone中的错误修复示例。
提交Keystone错误:
转到https://launchpad.net/keystone 。 点击报告错误 ,然后输入摘要和所需信息。 单击按钮提交错误报告 。 该错误具有链接: https ://bugs.launchpad.net/keystone/+bug/1087674和错误编号:1087674。 在“分配给”列中将此错误分配给自己。
为此错误在梯形图中创建一个分支(分支名称为Bug1087674):
打开终端并进入梯形失真校正目录。 通过git checkout master确保keystone在git checkout master 。 运行命令git checkout -b Bug1087674 。 修改分支Bug1087674中的梯形校正代码。 将代码提交给Gerrit:
打开终端并进入梯形失真校正目录。 运行命令git commit -a 。 输入一些评论。 第一段应简短地用一句话表示; 第二段可能是详细说明(可选); 如果此分支修复了错误或蓝图,请在最后一段中添加“修复Bug1087674”或“蓝图XXXX”。 运行命令ctrl+o ,按Enter键,然后运行ctrl+x 。 运行git review 。 检查提交的补丁:
转到https://review.openstack.org ,然后使用您的Launchpad帐户登录。 在顶部的水平导航器中,单击我>更改 ,然后可以找到您提交的补丁。 在此演示中,链接为https://review.openstack.org/#/c/17673/ 。 任何用户都可以查看此补丁。 任何开发人员都可以发表评论。
通常,这是提交补丁的过程。 但是,如果某些开发人员添加了注释并且您决定更改此分支怎么办? 这是一个选择:
打开终端并进入梯形失真校正目录。 通过git checkout Bug1087674转到分支git checkout Bug1087674 。 对这个分支做进一步的修改。 进入keystone目录。 运行命令git commit -a –amend 。 (请勿运行git commit -a ,否则将有多个提交提交给Gerrit,因此完全不建议这样做。) 如有可能,修改注释。 运行命令ctrl+o ,按Enter键并运行ctrl+x 。 运行git review 。
第二次提交补丁后,可以在链接https://review.openstack.org/#/c/17673/中找到两个补丁集,如图9所示。
此外,如果在分支Bug1087674上工作时master分支已更改怎么办? 您可以执行以下操作:
打开一个终端,然后通过git checkout master转到git checkout master 。 使用git pull origin master更新代码。 通过git checkout Bug1087674切换回分支。 通过git rebase -i master设置代码基础。 如果没有冲突,请运行命令git commit -a –amend并运行git review 。 如果存在冲突,终端将显示有冲突的文件。 您还可以在Eclipse中找到冲突,因为存在冲突的文件标有红色符号。 手动解决冲突。 继续进行变基,运行命令git rebase —continue 。 直到重新设置成功git commit -a –amend ,运行命令git commit -a –amend并运行git review 。
翻译自: https://www.ibm.com/developerworks/cloud/library/cl-contributecode-openstack/index.html