Jenkins + Pipeline + GitLab 实现自动化部署

Jenkins + Pipeline + GitLab 实现自动化部署


前言

Jenkins是目前相对主流的自动化部署工具,博主也是最近才开始研究这个自动化部署架构,结局还算完美。

安装部署过程中挖了一些坑,也踩过很多坑这边由于本人喜欢偷懒,所有的安装都是采用的yum安装的,这样可以免去配置path

推荐:阿里云服务器优惠券链接

准备条件

  1. Linux服务器一台:CentOS 7.2
  2. GitLab服务器一台:GiltLab私服一台/阿里云免费Code平台

安装 JDK

yum install -y java

安装 Git

yum install -y git

安装 Maven

  1. 下载maven压缩包
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz
  1. 解压maven
tar -zxvf apache-maven-3.6.0-bin.tar.gz
  1. 配置环境变量
vim /etc/profile
#Maven Environment
export MAVEN_HOME=/usr/local/apache-maven-3.6.0
export PATH=$PATH:$MAVEN_HOME/bin
  1. 更新配置
source /etc/profile
  1. 测试
[root@gitlab ~]# mvn -v
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: /usr/local/apache-maven-3.6.0
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-693.2.2.el7.x86_64", arch: "amd64", family: "unix"

安装 Jenkins

两种安装方式,一种是yum安装,另一种是rpm包安装,推荐第二种,楼主亲测,阿里云5M带宽yum安装耗时2小时

  1. 安装Jnekins.
  • yum安装方式
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins
  • rpm包安装方式【推荐
wget https://mirrors.shu.edu.cn/jenkins/redhat/jenkins-2.153-1.1.noarch.rpm
rpm -ivh jenkins-2.153-1.1.noarch.rpm
rpm -ql jenkins
  1. 修改配置文件
vi /etc/sysconfig/jenkins
  • 发现
JENKINS_USER="jenkins"
JENKINS_PORT="8080"
  • 改为
JENKINS_USER="root"
JENKINS_PORT="8088"
  1. 启动jenkins
service jenkins start
  1. 设置jenkins开机自启动
chkconfig jenkins on
  1. jenkins秘钥
cat /var/lib/jenkins/secrets/initialAdminPassword
  1. 选择推荐配置

在这里插入图片描述

PS:下载速度渣的一笔。。。等了1小时,有点怀疑5M带宽了

image

  1. 创建用户

在这里插入图片描述

  1. 配置环境
  • 登录Jenkins进入欢迎页面,点击系统管理。
  • 进入管理页面,点击Global Tool Configuration(全局工具配置)进入全局工具配置页面
通过yum,rpm安装的软件不需要配置,例如:java,git等等,类似maven自己jar包安装的,需要配置路径
  1. 安装插件【根据自己实际情况安装
Run Condition	
Run Condition Extras	
Config File Provider
Pipeline Maven Integration
Windows Slaves	 
ruby-runtime	 
External Monitor Job Type	 
Javadoc	 
Maven Integration	 
Conditional BuildStep	 
GitLab	 
Build Authorization Token Root	 
Parameterized Trigger	 
jQuery	 
Build Pipeline	 
Gitlab Hook
  1. 配置节点【根据自己实际情况安装
  • 登录Jenkins进入欢迎页面,点击系统管理。
  • 进入管理页面,点击节点管理
  • 进入节点管理,点击新建节点

在这里插入图片描述

  • 根据实际情况添加凭据【楼主密钥是private Key,如果是密码选择Username with Password

在这里插入图片描述

  • 设置节点信息

在这里插入图片描述

  • 启动代理

在这里插入图片描述


连接GitLab实现自动化编译

流水线项目

  1. 新建流水线项目

在这里插入图片描述

  1. 生成一个 Token,并添加到 触发远程构建 (例如,使用脚本)
openssl rand -hex 12

在这里插入图片描述

  1. 配置 Git 项目 Webhook URL 和 Trigger,定位到对应 Git 项目的 Webhooks 配置页面,然后做
  • 如下配置:
URL:http://xxx.xxx.xxx.xxx:xxxx/buildByToken/build?job=项目名称&token=xxxxxxxxxxxxxx

在这里插入图片描述

  • Trigger: 根据需要选择,这里我们使用默认的 Push events
  • 测试Push

在这里插入图片描述

  1. 编写Pipeline语法
  • 设置gitlab的账号密码

在这里插入图片描述

  • 生成gitlab pull的pipeline语法

在这里插入图片描述

在这里插入图片描述

  • 设置 分支,选择 token,然后点击 Generate Pipeline Script

在这里插入图片描述

  • 具体代码[楼主是maven项目]
BUILDDIR="./"
node ('master'){
    stage "pull code" #下载代码
        git credentialsId: 'gitlab', url: 'https://xxxxxx.git'
       
}
  1. 测试运行

自由风格项目

  1. 登录gitlab
  • 设置access toekn

在这里插入图片描述

  • 保存token

在这里插入图片描述

  1. 回归jenkins
  • 添加GitLab Api Token

在这里插入图片描述

  • Jenkins设置Gitlab,进入到 Jenkins -> 系统管理 ->系统设置,滚动到Gitlab位置,点击添加,新增一个Gitlab connection

在这里插入图片描述

  1. 新建自由风格项目

在这里插入图片描述

  1. 编写内容

附:Jenkins卸载方法

service jenkins stop
yum clean all
yum -y remove jenkins
rm -rf /var/cache/jenkins
rm -rf /var/lib/jenkins/

参考文献

  1. https://jenkins.io/doc/book/installing/#debianubuntu
  2. https://pkg.jenkins.io/redhat-stable/
  3. http://www.cnblogs.com/wajika/p/6396339.html
  4. https://blog.csdn.net/chunlongyuan/article/details/79243143
  • 1
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一缕南风

随心,随性

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值