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. 选择推荐配置

Jenkins + Pipeline + GitLab 实现自动化部署_第1张图片

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

Jenkins + Pipeline + GitLab 实现自动化部署_第2张图片

  1. 创建用户

Jenkins + Pipeline + GitLab 实现自动化部署_第3张图片

  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进入欢迎页面,点击系统管理。
  • 进入管理页面,点击节点管理
  • 进入节点管理,点击新建节点

Jenkins + Pipeline + GitLab 实现自动化部署_第4张图片

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

Jenkins + Pipeline + GitLab 实现自动化部署_第5张图片

  • 设置节点信息

Jenkins + Pipeline + GitLab 实现自动化部署_第6张图片

  • 启动代理

Jenkins + Pipeline + GitLab 实现自动化部署_第7张图片


连接GitLab实现自动化编译

流水线项目

  1. 新建流水线项目

Jenkins + Pipeline + GitLab 实现自动化部署_第8张图片

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

Jenkins + Pipeline + GitLab 实现自动化部署_第9张图片

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

Jenkins + Pipeline + GitLab 实现自动化部署_第10张图片

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

Jenkins + Pipeline + GitLab 实现自动化部署_第11张图片

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

Jenkins + Pipeline + GitLab 实现自动化部署_第12张图片

  • 生成gitlab pull的pipeline语法

Jenkins + Pipeline + GitLab 实现自动化部署_第13张图片

Jenkins + Pipeline + GitLab 实现自动化部署_第14张图片

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

Jenkins + Pipeline + GitLab 实现自动化部署_第15张图片

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

自由风格项目

  1. 登录gitlab
  • 设置access toekn

Jenkins + Pipeline + GitLab 实现自动化部署_第16张图片

  • 保存token

Jenkins + Pipeline + GitLab 实现自动化部署_第17张图片

  1. 回归jenkins
  • 添加GitLab Api Token

Jenkins + Pipeline + GitLab 实现自动化部署_第18张图片

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

Jenkins + Pipeline + GitLab 实现自动化部署_第19张图片

  1. 新建自由风格项目

Jenkins + Pipeline + GitLab 实现自动化部署_第20张图片

  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

你可能感兴趣的:(服务器,随心笔记,jenkins,gitlab,pipeline,自动化部署)