前言: jenkins+gitlab CI\CD持续集成主要包括以下几个过程:jenkins安装、jenkins插件安装、gitlab安装、git安装、jenkins配置、gitlab配置。
一、jenkins安装
二、jenkins插件安装
这里用到的主要插件是:git和gitlab。离线安装jenkins会特别麻烦,因为这俩插件会依赖好几个其他的插件。
插件下载官网:https://www.baidu.com/link?url=DVVJUvFLFN7_bnwU7yOERMqsfHOm6Qy3jlQI3PFgLzk35SKFVzH-2lk68cAmrz4Q&wd=&eqid=b43b61e9000a22ff000000055fed85a6
插件下载地址2:http://updates.jenkins-ci.org/download/plugins/
- git插件所需依赖:
- gitlab插件所需依赖:
这里要注意,插件安装完后需要重启jenkins。
三、gitlab安装
到gitlab官网下载安装包到本地安装
地址:https://packages.gitlab.com/gitlab/gitlab-ce
安装命令
[root@centos7 src]# yum install -y gitlab-ce-11.3.11-ce.0.el7.x86_64.rpm
安装完后初始化配置: sudo gitlab-ctl reconfigure # 启动服务
启动服务sudo gitlab-ctl restart
#gitlab常用命令
> sudo gitlab-ctl start # 启动所有 gitlab 组件;
> sudo gitlab-ctl stop # 停止所有gitlab 组件;
> sudo gitlab-ctl restart # 重启所有 gitlab 组件;
> sudo gitlab-ctl status # 查看服务状态;
> sudo gitlab-ctl reconfigure # 启动服务;
> sudo vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
> gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
> sudo gitlab-ctl tail # 查看日志;
gitlab默认端口是80,建议修改端口,避免冲突
步骤如下:
1. 修改 gitlab.yml
进入目录: /var/opt/gitlab/gitlab-rails/etc
将gitlab.yml 中的host和port修改成自己需要的
复制代码
production: &base
#
# 1. GitLab app settings
# ==========================
## GitLab settings
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
#host: gitlab.example.com
#port: 80
host: IP地址或者域名
port: 设定端口号1,如8000
https: false
复制代码
这里的端口号1 与nginx(gitlab自带的nginx,见下面2)监听的端口号 要相同,这是提供给外部浏览器访问的端口。
2. 修改 gitlab nginx配置
找到 /var/opt/gitlab/nginx/conf/gitlab-http.conf。
它是gitlab内置的nginx的配置文件,里面可以影响到nginx真实监听端口号。要与上面的端口号1设置成一样。(位置略靠下)
server {
#listen *:80;
listen *: 8000;
3. 修改 unicorn.rb
此文件所在目录与gitlab.yml相同: /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
# What ports/sockets to listen on, and what options for them.
#listen "127.0.0.1:8080", :tcp_nopush => true
listen "127.0.0.1:端口号2,如9080", :tcp_nopush => true
这里的端口号2 是gitlab-rails本身的端口号,gitlab-rails是gitlab内部的后台服务。
4. giltab-shell修改
进入目录:/var/opt/gitlab/gitlab-shell
修改:config.yml
# Url to gitlab instance. Used for api calls. Should end with a slash.
#gitlab_url: "http://127.0.0.1:8080"
gitlab_url: "http://127.0.0.1:9080"
这里设置成端口号2即可。
5. 重启gitlab
以上修改完成后,重启下,就可以访问8000端口的gitlab了。
gitlab-ctl restart
注意,不可以运行 gitlab-ctl reconfigure
这样会把上面的配置重新还原。(要想不被还原,可以不要上面5步,只修改:/etc/gitlab/gitlab.rb 这个文件,修改完后再运行 gitlab-ctl reconfigure
但是这个文件里的内容太复杂,搞的人眼花缭乱,所以我选择直接修改里面组件的配置。)
四 访问gitlab报告 502
这个有可能是gitlab正在启动,还没有完全启动成功,稍微等会再访问。如果不行,可以自己搜索,网上有很多这类问题记录。
四、git安装
git建议使用高版本的,centos默认安装版本为t git version 1.8.3.1,在配置jenkins会有冲突。这里使用的是 git version 2.9.5
安装过程中可能会用到一下依赖,在
https://centos.pkgs.org/7/centos-x86_64/git-1.8.3.1-23.el7_8.x86_64.rpm.html
可以找到很多依赖版本下载
五、jenkins配置
1,新建job2,配置job
Repository URL是gitlab项目的路径
点开“add”选择kind。
SSH Username with private key 是配置私钥,使用免密登录gitlab Username with
password是使用账号密码登录gitlab 两种方式都可以
六、gitlab配置
记录一下主要的
在gitlab先选择要jenkins出发构建的项目,找到setting下的Integrations.
url为gjenkins的url,SecretToken为jenkins的token。勾选第一个和最后一个。点击保存。
至此:在gitlab分支提交代码,jenkins会自动构建