CI 系统搭建:一. 基础环境设置、规划

去年写的这五篇 CI 文章时候方便邮件测试,自己搞了一个 thstack.com 域名玩。当时也没在意,所有的文章里邮箱地址都是引用 @thstack.com 域名。让我没想到是,2014 年这个神奇的一年,thstack.com 会成为我们的公司名字和域名。

  1. 我想说的是,我们内部的邮件系统也在用 @thstack.com,和这几个文章里的邮箱会冲突,导致一些朋友完全照着我的文档测试。结果最近收到了很多垃圾邮件。
  2. 我还想说的是,不要让别人怀疑你的智商。
  3. 我最想说的一句是,搞 CI 是一个高尚的工作。

随着计算机的高速发展、各种时代变革的到来。百度、360、腾讯这些赚钱机器之间为了利益掐个没完没了。开源项目、社区的活跃进而引来持续集成(CI)系统的诞生。也越发的听到更多的人在说协同开发、敏捷开发、迭代开发、持续集成和单元测试这些拉风的术语。但是也仅仅只是听到在说而已,也没有见到国内有几家公司能有完整的 CI 体系流程。反之一些开源项目都有完整的 CI 体系。我觉得就这一点国内的公司还是要去学习的。

由于对上面那些生涩的词感冒,专门研究了下 CI 相关的系统,才有了这几篇文章

我用到的系统有:

  • Gitlab:代码托管
  • Gerrit:Code Review
  • Jenkins:代码测试

    一开始测试使用了 Gitorious 来做代码的托管,发现界面的功能不全,比较蛋疼。虽然 Gerrit 本身有代码托管功能,Gerrit 的界面不敢恭维、也没有 Gitlab 的功能强大。so …

决定使用 Gitlab 还有一点重要原因就是它本身提供保护分支的功能,可以达到 Review 效果。这样和 Gerrit 结合的话,可以针对不同的用户群来分配 Review 方式。

  1. 强制 Review:在 Gitlab 上创建的项目,指定相关用户只有 Reporter 权限,这样用户没有权限使用 git push 功能,只能 git review 到 Gerrit 系统上,Jenkins 在监听 Gerrit 上的项目事件会触发构建任务来测试代码,Jenkins 把测试结果通过 ssh gerrit 个这个项目打上 Verified 成功或失败标记,成功通知其它人员 Review。

  2. Gitlab 保护 Master 分支:在 Gitlab 上创建的项目可以把 Master 分支保护起来,普通用户可以自己创建分支并提交代码到自己的分支上,没有权限直接提交到 Master 分支,用户最后提交申请把自己的分支 Merge 到 Master,管理员收到 Merge 请求后,Review 后选择是否合并。

由于没有闲置服务器、公网 IP、域名让我去浪费。想到 qingcloud 上还有 2k 没花,所以需要把三套系统整合塞到一个 vps 中。在整合三套系统中遇到一些需要规划的小问题

  • 每个系统都有发送邮件的功能,最好弄三个邮箱账号
  • 三个系统都默认监听了 8080 端口,需要规划端口
  • 规划了端口的同时随便规划下三个域名,后端做个端口转发方便用户访问

知道什么需要规划后,就来设置吧:

使用系统

ubuntu-12.04.2-server

修改 ssh 时候不需要输入 yes,如果不设置后面 Jenkins 连接 Gerrit 时候会报错

echo 'StrictHostKeyChecking  no' >> /etc/ssh/ssh_config
/etc/init.d/ssh restart

Gitlab、Gerrit、Jenkins 版本和下载地址

设置主机名

hostname www.thstack.com
sysctl -w kernel.hostname=www.thstack.com
echo www.thstack.com > /etc/hostname
echo '192.168.8.224 www.thstack.com www' >> /etc/hosts

注册四个邮箱账号,其中 admin@thstack.com 用来管理三套系统

admin@thstack.com
gitlab@thstack.com
gerrit@thstack.com
jenkins@thstack.com

规划三个域名和端口

gitlab.thstack.com:8081
review.thstack.com:8082
jenkins.thstack.com:8083

设置解析

vim /etc/hosts
192.168.8.224 gitlab.thstack.com gitlab
192.168.8.224 review.thstack.com review
192.168.8.224 jenkins.thstack.com jenkins

简单规划完后就可以动手去搭建了,后面几篇文章会记录安装的过程

posted @ 2015-04-22 14:18  Chaoa  阅读(1026)  评论(0编辑  收藏  举报