Promptcloud 探索 Gerrit 和 Jenkins 集成设置
已发表: 2017-01-20使用 Gerrit 和 Jenkins 进行集成设置
重复和复杂的任务会使开发人员的生活变得有些单调。 值得庆幸的是,我们有工具可以定期处理平凡的任务,而一旦您设置它们就不会抱怨。 当您向测试和部署添加自动化时,该解决方案可以称为“持续集成”。 这样的设置可以自动测试和部署项目,让您有更多时间专注于编写代码,而不是将代码推送到服务器。 以下是使用 Gerrit 和 Jenkins进行持续集成设置的方法。
什么是格瑞特?
Gerrit 是一个基于 git 的开源代码审查系统,具有基于 Web 的界面,可让您从 git 客户端推送更改、审查更改并自动与主代码合并。 每次进行更改时,都会创建相同的补丁集。 Gerrit 允许不同的补丁集比较。 它还可以选择在特定行或整个补丁上添加反馈或评论。 审阅者可以用以下之一对更改进行评分: +2 – 对我来说看起来不错,已批准。 +1 - 对我来说看起来不错,但其他人必须批准。 0 – 没有得分。 -1 – 我希望你不提交这个。 -2 – 阻止提交。 +2 评论意味着代码可以默认提交给主人。 这可以根据需要进行配置。
什么是 Jenkins 及其用途?
Jenkins 是用于持续集成的流行构建服务器。 它是基于 Web 的,并允许在发生更改时自动构建过程。 Jenkins 可以独立工作,即使没有 Git 或 Gerrit。 它具有允许事件触发器的钩子,因此当发生更改时,会自动进行构建。 当 Jenkins 和 Gerrit 一起使用时,构建将有一个成功/失败标记,以指示它们是否通过了测试。 Jenkins 将在执行构建后运行测试回归。 完成后,它将像其中一位审阅者一样发布测试结果。 如果构建失败,它将拒绝补丁。 在测试失败的情况下,您可以根据 CI 的质量设置 -1 或 -2。 与此同时,其他代码审查者也可以在此时审查代码。 如果所有的审查都通过了,代码可以被推送到公共存储库。
持续集成的工作流程
- 开发人员从 Git 签出源代码
- 开发人员进行所需的更改
- 开发人员将更改推送到 Gerrit
- Gerrit 向 Jenkins 发送变更通知进行集成测试
- Jenkins 直接从 Gerrit git 服务器中提取更改,并根据我们的项目配置运行所有测试用例
- 其他开发人员审查更改并批准 (+2)
- 当 Jenkins 通过构建并且更改得到其他开发人员的批准后,Gerrit 将更改合并到主项目 git 存储库
一、Gerrit的安装
- 要求:JRE,最低版本 1.8。
- tGerrit 战争包下载链接
如果你有 MySQL,你可以将它用于 Gerrit 数据库。 在 MySQL 中为 Gerrit 创建用户和数据库。
mysql> 创建用户 'gerrit2'@'localhost' 由 'secret' 识别;
mysql> 创建数据库 reviewdb;
mysql> GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';
mysql> 刷新权限;
现在运行以下命令来初始化站点。
# java -jar gerrit.war init –batch -d ~/
在这个初始化过程中,gerrit 服务是默认启动的。 如果您想进行任何更改,即 mysql 数据库、登录身份验证、发送电子邮件服务器和 httpd url,您可以编辑~//etc/gerrit.config文件并在~ //etc/secure 中添加 ldap 和数据库密码详细信息.config文件。 如果进行任何设置更改,必须重新启动 gerrit 服务才能生效。
# ~//bin/gerrit.sh 重启
将~//bin/gerrit.sh脚本作为 gerrit 复制到init.d目录,并将其添加到机器启动时启动。
2. 初始登录
现在在浏览器中加载您的 Gerrit URL。 您也可以使用此命令找到 Gerrit Web URL。
# git config -f ~//etc/gerrit.config gerrit.canonicalWebUrl
现在使用您在 Gerrit 配置文件中配置的方法使用登录身份验证登录 Gerrit Web 界面。 默认情况下,它是 OpenID。 LDAP 是最常用的身份验证方法之一。
成功登录 Gerrit 网页后,您必须登录您将在其中进行开发的客户端计算机。您必须为您的 ssh 会话生成 RSA 密钥。 如果您已经拥有这些文件,则可以跳过密钥生成步骤。
# ls -l ~/.ssh
authorized_keys 配置 id_rsa id_rsa.pub known_hosts
3. SSH 密钥生成
# ssh-keygen -t rsa
生成公钥/私钥 rsa 密钥对。
输入保存密钥的文件(/home/user/.ssh/id_rsa):
输入密码(无密码为空):
再次输入相同的密码:
您的标识已保存在 /home/user/.ssh/id_rsa 中。
您的公钥已保存在 /home/user/.ssh/id_rsa.pub 中。
关键指纹是:
SHA256:dMMVqsoLDf8T/d5Niob69oea3rkSLTBltiZ8s1lbdeA user@localhost
密钥的 randomart 图像是:
+—[RSA 2048]—-+
| o… |
| .+o . o|
| ..+=. E..|
| .=o=.. |
| . SB * o |
| = .. * o |
| . = 。 = 。 .|
| . ○。 +o++.+ |
| . o*=*嘘。|
+—-[SHA256]—-+
# 猫 ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwoWTT6S1pv2LP0l6r8305njSLtoupDCw8Df
GnaqW+ppfzNMtRJmAvCQpYuvE154EsGZC5csnRkUYAScOD3nri8NBsXMdD+m1mMyD
lA4ssMLhWHfstJGQ5aJ84NIR+zFK9o9QmDCVYU/
MYt2SZnmzi+Pdd4QbDWKisewmtun5rpy8vXWukKt9CHGTbv5lKyRVPF
LuQCynKbniZLV7aQD6gsVcZFG7Hj3ezBhDAZdBrCWLldy0S61DAmdH5C94xmlSuraq
HiX0pkLi4J67msvOUW6dBfeCP1VsMNz0j/
91LPlOMf5I2r1fRw1s/J1z/
UcsgBDyATwSKocNklkrd8+pp user@localhost
- 复制上述公钥并转到您的 gerrit 网址
- 检查网页右上角的用户名,然后单击您的用户以找到设置链接
- 在左侧,你可以找到“SSH Public Keys”,点击它
- 现在单击“添加密钥”按钮,粘贴您的 ssh 公钥并添加它
第一个登录和注册帐户的用户将被自动置于完全特权的管理员中。 现在您拥有创建项目的权限。 单击“项目”选项卡,然后单击“创建新项目”。 现在输入项目名称开始。 你去那里,在你的系统中克隆项目并开始添加你的开发代码。 # ssh [email protected] -p 29418
**** 欢迎来到 Gerrit 代码审查 ****嗨 selvam,您已通过 SSH 成功连接。 不幸的是,交互式 shell 被禁用。 要克隆托管的 Git 存储库,请使用: git clone ssh://[email protected]:29418/REPOSITORY_NAME.git与 192.168.56.137 的连接已关闭。 |
# git clone ssh: //[email protected] :29418/Gerrit_Test
4.Jenkins的安装
您可以使用 apt-get 或 deb 包安装 jenkins。
- sudo apt-get 更新
- sudo apt-get install jenkins
Jenkins 配置存在于 /etc/default/jenkins 中,您可以在其中更改 java 位置和 JAVA_ARGS。 默认情况下,jenkins 运行在 8080 上。如果您在同一台机器上运行 gerrit 和 jenkins,则默认端口 8080 已经被 gerrit 占用。 这里需要更改 jenkins 端口。 要更改它,请编辑 HTTP_PORT 值以在不同的端口上运行。
5.启动Jenkins进程
# /etc/init.d/jenkins start转到您的浏览器并使用您的 jenkins 主机名和端口号加载 jenkins 页面。
https://:/
如果你安装了 Jenkins 2.*,jenkins 网页会询问 initialAdminPassword。 您可以在 /var/log/jenkins/jenkins.log 文件中找到密码。 日志如下所示:
需要 Jenkins 初始设置。 已创建管理员用户并生成密码。 请使用以下密码继续安装: f16b093akcnml397jcdoa239d6bafb9这也可以在以下位置找到:/var/lib/jenkins/secrets/initialAdminPassword |
- 现在去 Jenkins -> Manage Jenkins -> Plugin Manager 在 jenkins 中安装git和gerrit 插件
- 单击“可用”选项卡并搜索“ Git Plugin ”并单击“无需重启即可安装”。 再次搜索“ Gerrit Trigger”并单击“Install without restart”。 最后,检查它是否在已安装列表中。
Jenkins 进程由 jenkins 用户运行。 因此,我们需要在 gerrit 中启用 jenkins 用户的访问权限。
- 使用您的身份验证方法,在 gerrit 中创建 jenkins 用户
- 现在像之前一样为 jenkins 用户创建 ssh-keygen。 但这一次,使用空密码创建密钥并在 gerrit 中复制 jenkins 用户的公钥
- 现在单击“新建项目”以创建新作业并在 Source Code Management/Git 部分添加您的 git url。 此外,在 Build Triggers 中选择“Gerrit event”并输入 Gerrit Project Pattern。
最后,保存配置。 完美,您的 Gerrit 和 Jenkins 设置现已完成。