GitLab是一个代码仓库,用来管理代码。Jenkins是一个自动化服务器,可以运行各种自动化构建、测试或部署任务。所以这两者结合起来,就可以实现开发者提交代码到GitLab,Jenkins以一定频率自动运行测试、构建和部署的任务,帮组开发团队更高效的集成和发布代码。
下面是我最近安装GitLab+Jenkins环境的一个过程,记录下来,以备日后参考。
一、环境准备
1、操作系统
[root@jenkins tmp]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@jenkins tmp]# uname -a
Linux jenkins 3.10.0-862.2.3.el7.x86_64 #1 SMP Wed May 9 18:05:47 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
安装所需软件
[root@jenkins src]#yum install patch git wget -y
gitlab版本:gitlab-ce-10.7.3-ce.0.el7.x86_64.rpm
jenkins版本:jenkins-2.122-1.1.noarch.rpm
二、安装 Gitlab
1.下载镜像:
[root@jenkins src]#wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.7.3-ce.0.el7.x86_64.rpm
2.安装Gitlab
[root@jenkins src]#yum localinstall gitlab-ce-10.7.3-ce.0.el7.x86_64.rpm
[root@jenkins src]#yum install postfix
[root@jenkins src]#systemctl enable postfix
[root@jenkins src]#systemctl start postfix
3.修改配置文件gitlab.rb
GitLab默认会占用80、8080和9090端口,Jenkins默认也会使用8080端口,所以,这一步操作将会修改GitLab的默认端口为81、8081和9091,如果你还是希望使用默认端口的话,可以跳过这一步。
1.将 external_url 'http://127.0.0.1' 改为 external_url 'http://<你的服务器地址或域名>:81'
2.将 # unicorn['port'] = 8080 改为 unicorn['port'] = 8081
3.将 #prometheus['listen_address'] = 'localhost:9090' 改为 prometheus['listen_address'] = 'localhost:9091'
配置文件如下:
[root@jenkins ~]# egrep -v "^#|^$" /etc/gitlab/gitlab.rb
external_url 'http://172.20.42.209:81'
unicorn['port'] = 8081
prometheus['listen_address'] = 'localhost:9091'
4.生效配置文件及启动Gitlab
使用reconfigure命令重新配置
[root@jenkins ~]#gitlab-ctl reconfigure
其他说明:
平时可使用如下命令关闭或启动gitlab
[root@jenkins ~]#gitlab-ctl start
[root@jenkins ~]#gitlab-ctl stop
GitLab安装完毕。
三、汉化Gitlab
停止gitlab
[root@jenkins ~]#gitlab-ctl stop
一、下载汉化包
查看版本
[root@jenkins src]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
10.7.3
下载gitlab版本对应的汉化包:gitlab中文社区
[root@jenkins src]# git clone https://gitlab.com/xhang/gitlab.git -b v10.7.3-zh
[root@jenkins src]# ll -h
总用量 389M
drwxr-xr-x 29 root root 4.0K 5月 21 21:26 gitlab
-rw-r--r-- 1 root root 389M 5月 4 04:19 gitlab-ce-10.7.3-ce.0.el7.x86_64.rpm
[root@jenkins src]#cd gitlab
[root@jenkins gitlab]# cat VERSION
10.7.3
Git使用方法见:廖雪峰Git教程
二、更新汉化补丁
导出patch用的diff文件(patch使用方法)
[root@jenkins gitlab]#git diff v10.7.3 v10.7.3-zh > /tmp/v10.7.3-zh.diff
备份源文件:
[root@jenkins gitlab]#cp /opt/gitlab/embedded/service/gitlab-rails /opt/gitlab/embedded/service/gitlab-rails.bak.$(date +%F)
打汉化补丁:
[root@jenkins gitlab]#patch -d /opt/gitlab/embedded/service/gitlab-rails/ -p1 < /tmp/v10.7.3-zh.diff
更新gitlab配置
[root@jenkins ~]#gitlab-ctl reconfigure
启动Gitlab
[root@jenkins gitlab]# gitlab-ctl start
ok: run: gitaly: (pid 24620) 1s
ok: run: gitlab-monitor: (pid 24631) 0s
ok: run: gitlab-workhorse: (pid 24642) 1s
ok: run: logrotate: (pid 24650) 0s
ok: run: nginx: (pid 24657) 1s
ok: run: node-exporter: (pid 24663) 0s
ok: run: postgres-exporter: (pid 24668) 0s
ok: run: postgresql: (pid 24675) 1s
ok: run: prometheus: (pid 24605) 10s
ok: run: redis: (pid 24758) 0s
ok: run: redis-exporter: (pid 24762) 1s
ok: run: sidekiq: (pid 24767) 0s
ok: run: unicorn: (pid 24774) 1s
[root@jenkins gitlab]# netstat -antlp | grep LISTEN
tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 25629/nginx: master
tcp 0 0 127.0.0.1:9121 0.0.0.0:* LISTEN 25740/redis_exporte
tcp 0 0 127.0.0.1:9091 0.0.0.0:* LISTEN 25727/prometheus
tcp 0 0 127.0.0.1:9187 0.0.0.0:* LISTEN 25677/postgres_expo
tcp 0 0 127.0.0.1:9100 0.0.0.0:* LISTEN 25635/node_exporter
tcp 0 0 127.0.0.1:9229 0.0.0.0:* LISTEN 25614/gitlab-workho
tcp 0 0 127.0.0.1:9168 0.0.0.0:* LISTEN 25602/ruby
tcp 0 0 127.0.0.1:8081 0.0.0.0:* LISTEN 25771/unicorn maste
tcp 0 0 0.0.0.0:81 0.0.0.0:* LISTEN 25629/nginx: master
tcp 0 0 127.0.0.1:8082 0.0.0.0:* LISTEN 25745/sidekiq 5.0.5
tcp 0 0 127.0.0.1:9236 0.0.0.0:* LISTEN 25591/gitaly
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1046/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1408/master
tcp6 0 0 ::1:9168 :::* LISTEN 25602/ruby
tcp6 0 0 :::8080 :::* LISTEN 28285/java
tcp6 0 0 :::22 :::* LISTEN 1046/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1408/master
四、访问gitlab
浏览器访问gitlab所在的ip:81
首次会要求设置root用户的密码
修改后就可以登录系统了
五、安装及配置 jenkins
1、安装JDK
[root@jenkins src]# yum install java-1.8.0 java-devel-1.8.0
[root@jenkins src]# java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-b10)
OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)
2、安装jenkins
[root@jenkins src]#sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
[root@jenkins src]#sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
[root@jenkins src]# yum install jenkins -y
3、配置jenkins
启动jenkins
[root@jenkins src]# systemctl start jenkins
[root@jenkins src]# systemctl enable jenkins
[root@jenkins src]#[root@jenkins src]# netstat -antlp | grep java
tcp6 0 0 :::8080 :::* LISTEN 28285/java
tcp6 0 0 172.20.42.209:8080 10.10.0.6:57868 ESTABLISHED 28285/java
在浏览器打开 http://172.20.42.209:8080 访问jenkins
首次访问需要解锁jenkins,把/var/lib/jenkins/secrets/initialAdminPassword文件内容复制到administrator password下方即可。
[root@jenkins src]# cat /var/lib/jenkins/secrets/initialAdminPassword
xxxxxxxxxxxxxxxxxxxxxxxxxx
接着会提示安装插件,可以选择建议插件,也可以选择自定义要安装插件,进入jenkins后也可以进行插件安装的。这里可以先默认:
安装完成后进入主页
4、安装git、gitlab插件
用浏览器打开Jenkins,点击“系统设置”-->“管理插件”。
安装以下插件:
Gitlab Plugin
安装之后才可以在系统配置中指定gitlab的IP地址
Git Plugin
Git Client Plugin
用于jenkins在gitlab中拉取源码
Publish Over SSH
用于通过ssh部署应用
Maven Integration plugin
用于新建maven项目
勾选安装完成后重启jenkins 重启Jenkins生效
参考
1.https://blog.csdn.net/xiegh2014/article/details/78802591
2.https://blog.csdn.net/chenhaifeng2016/article/details/78603216
3.https://blog.csdn.net/xiegh2014/article/details/78803342
4.https://blog.csdn.net/Linjingke32/article/details/77799878
5.https://www.jianshu.com/p/q81RER