Jenkins+Gitlab实现代码自动构建部署

一、环境准备

主机名 ip 安装软件
jenkins 192.168.75.149 jenkins
gitlab 192.168.75.147 gitlab
web 192.168.75.155 部署应用

二、jenkins服务器配置

1、生产公钥

[root@jenkins ~]# ssh-keygen 

(2)获取公钥信息
公钥信息在配置 Gitlab SSH Keys 时用到。
在这里插入图片描述
(3)获取私钥信息
私钥信息在配置 Jenkins Publish over SSH 时用到。
Jenkins+Gitlab实现代码自动构建部署_第1张图片
(4)复制公钥到应用服务器

[root@jenkins ~]# ssh-copy-id 192.168.75.155

三、配置 Gitlab

1、创建示例项目 git-test
在这里插入图片描述
2、配置 SSH Keys
Jenkins+Gitlab实现代码自动构建部署_第2张图片
将jenkins的公钥复制过来,点击add key
Jenkins+Gitlab实现代码自动构建部署_第3张图片
3、配置 Access Token

Jenkins+Gitlab实现代码自动构建部署_第4张图片
点击create按钮
Jenkins+Gitlab实现代码自动构建部署_第5张图片
将生成的 Access Token 记录下来,后面在配置 GitLab 凭据时用到:
在这里插入图片描述

四、配置 Jenkins

1、安装插件

进入“插件管理”,安装插件:GitLab、Generic Webhook Trigger、Git Parameter、Publish Over SSH,安装完插件重启系统

2、配置 GitLab 凭据

进入系统配置,点击【添加】添加凭据
Jenkins+Gitlab实现代码自动构建部署_第6张图片
选择Gitlab API token,输入从gitlab生成的token,输入ID,点击确定
Jenkins+Gitlab实现代码自动构建部署_第7张图片
输入gitlab的连接名称、连接地址,点击【Test Connection】测试成功后点击【保存】
Jenkins+Gitlab实现代码自动构建部署_第8张图片

3、配置 Publish over SSH

进入系统配置,配置 Publish over SSH,输入jenkins的私钥
Jenkins+Gitlab实现代码自动构建部署_第9张图片
4、配置 SSH Servers

输入应用服务器的ip和用户名,点击测试,成功之后点击保存

注意:配置 Jenkins SSH Servers 时,Remote Directory 设为 “/”,如果不设置,文件会默认拷贝到 /root 目录下
Jenkins+Gitlab实现代码自动构建部署_第10张图片
5、创建任务

点击“新建任务”,创建任务 pipeline-test,选择自由风格的软件项目
Jenkins+Gitlab实现代码自动构建部署_第11张图片
6、配置任务

(1)配置git

输入gitlab的地址和凭证(我用的是用户名和密码的)
Jenkins+Gitlab实现代码自动构建部署_第12张图片
(2)构建触发器

Jenkins+Gitlab实现代码自动构建部署_第13张图片
点击高级,点击Generat生产token
Jenkins+Gitlab实现代码自动构建部署_第14张图片
(3)构建

选中“Send files or execute command over SSH”
Jenkins+Gitlab实现代码自动构建部署_第15张图片
Jenkins+Gitlab实现代码自动构建部署_第16张图片
(4)jenkins其他配置

勾选匿名用户具有可读权限
Jenkins+Gitlab实现代码自动构建部署_第17张图片
Error 403 No valid crumb was included in the request 报错解决 容器化jenkins关闭CSRF
参考链接:
进入jenkins容器修改/usr/local/bin/jenkins.sh脚本,将原来的exec java -Duser.home="$JENKINS_HOME" ${FUTURE_OPTS} "${java_opts_array[@]}" -jar ${JENKINS_WAR} "${jenkins_opts_array[@]}" "$@"改为
exec java -Duser.home="$JENKINS_HOME" -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true "${java_opts_array[@]}" -jar ${JENKINS_WAR} "${jenkins_opts_array[@]}" "$@",保存退出,重启容器即可

Jenkins+Gitlab实现代码自动构建部署_第18张图片
取消勾选Enable authentication for ‘/project’ end-point
Jenkins+Gitlab实现代码自动构建部署_第19张图片

五、配置 Gitlab Webhook

进入gitlab项目,选择webhook,填写jenkins上的地址和token保存即可

Jenkins+Gitlab实现代码自动构建部署_第20张图片
Jenkins+Gitlab实现代码自动构建部署_第21张图片
返回200则说明成功
Jenkins+Gitlab实现代码自动构建部署_第22张图片

六、测试

修改代码并 push 到远程仓库

Jenkins+Gitlab实现代码自动构建部署_第23张图片
Jenkins+Gitlab实现代码自动构建部署_第24张图片

在这里插入图片描述

其他:需提前安装以下插件:gitlab hook-plugin,gitlab-plugin,gitlab

你可能感兴趣的:(运维笔记,jenkins,gitlab,git)