Gitlab+Jenkins持续集成(CI)环境部署for Centos7

引言

GitLab是一个代码仓库,用来管理代码。Jenkins是一个自动化服务器,可以运行各种自动化构建、测试或部署任务。所以这两者结合起来,就可以实现开发者提交代码到GitLab,Jenkins以一定频率自动运行测试、构建和部署的任务,帮助开发团队更高效的集成和发布代码。

PBPjbD.png

Gitlab官网文章

1
2
3
4
5
6
7
从源代码安装Gitlab:	https://docs.gitlab.com/ee/install/installation.html

yum安装Gitlab: https://about.gitlab.com/installation/#centos-7

下载地址: https://packages.gitlab.com/gitlab/gitlab-ce

Gitlab中文网: https://www.gitlab.com.cn/installation/

Jenkins官网文章

1
2
3
4
5
官网:				https://jenkins.io/

安装文章: https://jenkins.io/doc/book/installing/

下载地址: https://jenkins.io/download/

持续集成概述

1
2
3
4
5
1. 持续集成:持续集成(Continuous integration)是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并进行自动化测试。

2. 持续交付:持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境。

3. 持续部署:在持续交付的基础上,把部署到生产环境的过程自动化,持续部署和持续交付的区别就是最终部署到生产环境是自动化的。

持续集成系统的工作流程

1
2
3
4
1. 开发者将新版本push到Gitlab。
2. Gitlab随后触发jenkins master结点进行一次build。(通过web hook或者定时检测)
3. Jenkins master结点将这个build任务分配给若干个注册的slave结点中的一个,这个slave结点根据一个事先设置好的脚本进行build。这个脚本可以做的事情很多,比如编译,测试,生成测试报告等等。这些原本需要手动完成的任务都可以交给jenkins来做。
4. 我们在build中要进行编译,这里使用了分布式编译器distcc来加快编译速度。

Gitlab概述

  • Gitlab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。Ruby on Rails 是一个可以使你开发、部署、维护 web 应用程序变得简单的框架。GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

Jenkins概述

  • Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

一、Gitlab安装

1. 安装依赖
1
yum -y install policycoreutils-python openssh-server
2. 配置sshd服务
1
2
systemctl enable sshd
systemctl start sshd
3. 配置防火墙
1
2
firewall-cmd --permanent --add-service=http
systemctl reload firewalld
4. 安装postfix发送邮件通知,如果想使用其它方案,跳过即可
1
2
3
yum -y install postfix
systemctl enable postfix
systemctl start postfix
5. 安装Gitlab
1
2
cd /a01/apps/apps_src/
rpm -ivh gitlab-ce-10.4.2-ce.0.el7.x86_64.rpm

PBiP2t.png

6. 修改配置文件
1
vim /etc/gitlab/gitlab.rb

1
2
3
4
5
6
external_url 'http://192.168.10.21'
git_data_dirs({
"default" => {
"path" => "/a01/apps/gitlab/data"
}
})

7. 初始化Gitlab
1
gitlab-ctl reconfigure

PBiixP.png

8. 开机自启
1
systemctl enable gitlab-runsvdir
9. 浏览器访问(直接IP地址即可)
  • 第一次访问要求修改密码
    PBieaQ.png
  • 修改完成之后就可以登录了,默认账号为root
    PBiKGn.png
10. 设置默认语言为中文(但是支持不怎么好)

PBi8qU.png
PBiWRI.png

  • 只是某些页面会变中文
    PBifzt.png
11. 关闭gitlab注册功能
  • 默认情况下可以直接注册账号
    PBiIL8.png
  • 由于是在公司内部网络搭建git私服,这里我们把注册功能关闭
    “Admin area”——“Setting”——“Sign-up Restrictions”——“取消勾选”——“Save”
    PBiqij.png
  • 退出重新登了,发现注册功能已经关闭了
    PBiXzq.png

二、Gitlab汉化

说明:

1. 下载汉化补丁
1
2
3
yum -y install git
cd /a01/apps/apps_src/
git clone https://gitlab.com/xhang/gitlab.git
2. 查看该汉化补丁的版本
1
cat /a01/apps/apps_src/gitlab/VERSION
3. 停止gitlab服务
1
systemctl stop gitlab-runsvdir或者gitlab-ctl stop
4. 比较汉化标签和原标签,制作补丁diff文件
1
2
cd /a01/apps/apps_src/gitlab
git diff v10.4.2 v10.4.2-zh > /a01/apps/apps_src/10.4.2-zh.diff
5. 将10.4.2-zh.diff作为补丁更新到gitlab中
1
2
cd /opt/gitlab/embedded/service/gitlab-rails/
git apply /a01/apps/apps_src/10.4.2-zh.diff
6. 重新启动gitlab
1
systemctl start gitlab-runsvdir或者gitlab-ctl start
7. 刷新网页即可看到汉化成功

PBivQ0.png

三、Jenkins安装

1. 安装java
1
2
3
cd /a01/apps/apps_src/
mkdir -p /usr/local/java
tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local/java/
2. 配置环境变量
1
vim /etc/profile

1
2
3
4
JAVA_HOME=/usr/local/java/jdk1.8.0_151
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH

1
2
source /etc/profile
java -version

PBF9wF.png

3. 开始安装jenkins
1
rpm -ivh jenkins-2.89.3-1.1.noarch.rpm
4. 创建jenkins数据目录
1
mkdir -p /a01/apps/jenkins/data
5. 修改jenkins配置文件
1
vim /etc/sysconfig/jenkins

1
2
3
4
JENKINS_HOME="/a01/apps/jenkins/data"
JENKINS_USER="jenkins"
JENKINS_PORT="8080"
JENKINS_LISTEN_ADDRESS="192.168.10.21"

6. 授权
1
chown -R jenkins:jenkins /a01/apps/jenkins/data/
7. 启动jenkins
1
2
ln -s /usr/local/java/jdk1.8.0_151/bin/java /usr/bin/
systemctl start jenkins
8. 开机自启
1
2
chkconfig --add jenkins
chkconfig --level 35 jenkins on
9. 浏览器访问IP:8080
  • 第一次访问新的jenkins实例的时候,系统会要求使用自动生成的密码对其进行解锁,密码存放位置下图中的红色字体已经提示了,去cat密码然后输入进行验证即可

PBFiFJ.png

10. 安装常用插件
  • 验证之后就来到下图中的位置,可以选择安装建议的插件(最常用的插件),或者选择自义定安装的插件,这里我选择了安装常用的插件(左边)

PBFES1.png

  • 接下来就开始安装常用的插件了,不过可能会出现很多的错误,因为插件下载不下来的问题,访问国外的网站嘛,下载失败是正常的,没关系,我们可以之后用到这些插件的时候再手动安装

PBFVQx.png

11. 创建jenkins的第一个管理员用户

PBFeOK.png

12. 开始使用jenkins

PBFuwD.png

PBFlYd.png

13. 设置管理员账号(用户设置可参考:http://www.cnblogs.com/kevingrace/p/6019707.html)
  • 虽然上边有让我们设置了一个账户,但是登录进来之后,还要进行设置,否则只要退出jenkins的登录,你就无法登录系统了,不论是用admin默认的超级用户还是刚刚创建的nongkaige用户,都不能进行登录,如果真的是还没有对账号进行设置,就已经退出了jenkins,别着急,还有一个办法,那就是使用admin账户,输入刚刚的cat /a01/apps/jenkins/data/secrets/initialAdminPassword中的密码,还可以救你一次,但是这次千万要记住来设置账号了,否则就得暴力搞jenkins了,废话不多说,下边来说说怎么设置

  • “用户”——“admin”——“设置”——“密码”——“修改密码”——“保存”

PBFYOf.png

  • 设置完成之后现在就可以退出登录,使用新的密码进行登录jenkins系统了
14. 手动安装插件
  • 把插件下载好了之后,直接去上传插件即可,上传完之后记得重启jenkins,这个非常重要,因为不重启,插件不会生效

  • “系统管理”——“管理插件”——“高级”——“选择文件”——“上传”
    PBFU0S.png
博主QQ:1012405802
技术交流QQ群:830339411
版权声明:网站内容有原创和转载,如有侵权,请联系删除,谢谢!!
感谢打赏,93bok因你们而精彩!!(支付宝支持花呗)
0%