Jenkins连接gitlab
环境准备
docker安装:
Jenkins安装并启动:
docker run \
-u root \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkins/jenkins
这里使用docker进行jenkins安装,并挂载了数据文件,每次启动都会保存上次的信息
执行上述语句会自动打印出容器ID,该ID在后续步骤中会用到,如果忘了,可以通过执行docker ps找到
配置jenkins环境
在浏览器上输入http://127.0.0.1:8080,进入jenkins管理页面,如下:

提示输入管理员密码,该密码在刚刚创建的容器中,进入该容器需要前一个步骤中打印出的容器ID,命令中的$容器ID用刚刚得到的容器ID替代
docker exec -it $容器ID /bin/bash -c "cat /var/jenkins_home/secrets/initialAdminPassword"
执行该语句后,会在控制台上打印管理员密码,将密码输入到jenkins管理页面中,点击继续

点击选择选择插件来安装

在搜索框中输入git,安装git、Publish Over SSH和gitlab插件(此步骤会有部分插件安装失败,点击重试即可
安装完毕后,注册用户名和密码,进入jenkins管理界面
连接gitlab和jenkins
- 生成ssh密钥和公钥
打开控制台,输入以下命令进入jenkins容器
docker exec -it $容器ID /bin/bash
执行以下命令后打3个回车,生成ssh密钥和公钥
ssh-keygen -t rsa -C "jenkins"
此时密钥和公钥就生成在/root/.ssh/文件夹下
执行以下命令打印密钥和公钥
cat /root/.ssh/id_rsa 打印密钥
cat /root/.ssh/id_rsa.pub 打印公钥
返回gitlab界面,将公钥输入

返回jenkins,进入Manage Jenkins,提示需要重启来导入插件

打开一个新的命令行,并输入
docker restart $容器ID
重启容器后,输入注册时的用户名和密码,进入jenkins管理界面

点击系统管理->Manage Credantials->Jenkins->全局凭证->添加凭证




选择SSH,并将刚才得到的密钥输入


接着去gitlab创建一个hello world项目

在项目根目录下创建名为Jenkinsfile文件,并输入以下内容


pipeline {
agent any
stages {
stage(Build) {
steps {
echo Building..
}
}
stage(Test) {
steps {
echo Testing..
}
}
stage(Deploy) {
steps {
echo Deploying....
}
}
}
}
点击左下角的create commit提交修改
返回首页,复制该项目的git地址

返回控制台,执行git clone $git地址,输入yes
返回jenkins,点击新建任务

新建一个名为firstpipeline的多分支流水线任务

添加git项目和凭证


点击保存后,会自动执行流水线,如果出现以下界面说明您已经成功连接gitlab,并运行了第一个流水线,通过修改gitlab上的Jenkinsfile可改变流水线行为

环境说明
服务器IP 服务 备注 10.4.82.119 Jenkins 第一次配置不会的可以按照我的步骤来 10.4.82.120 gitlab、tomcat 测试环境tomcat端口8083 10.4.82.115 tomcat 测试环境tomcat端口8083Jenkins发布回滚流程
一、Jenkins介绍及安装
安装和介绍都是老生常谈的内容了,说了N+1+2+3+4+5+…..的话题了,这里直接跳过了
Jenkins yum安装
Jenkins War安装
二、Jenkins 安装配置
安装完成后的界面如下
Jenkins插件安装
Jenkins主要依赖于插件化,我们进行插件的安装
Maven Integration Maven编译插件
Role-based Authorization Strategy 权限控制插件 标题
AnsiColor 输出Log颜色优化插件
安装插件的步骤不详细讲解了 详细介绍