首页 > 其他 > 详细

Jenkins持续集成

时间:2018-11-24 23:04:08      阅读:302      评论:0      收藏:0      [点我收藏+]

环境准备

1.准备2台安装好CENTOS7.4系统的虚拟机,内存1G+。

2.所有虚拟机的防火墙和SELINUX关闭

3.主机名及IP地址关系如下:

Jenkins 192.168.205.191    不需要安装软件

Gitlab 10.0.0.190    安装好gitlab

Jenkins --> 安装

jenkins 目录结构

Jenkins 没有数据库,一切皆文件
[root@jenkins jenkins]# rpm -ql jenkins
/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins
/usr/lib/jenkins                # 程序文件目录,升级直接覆盖war 包
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/jenkins


/var/lib/jenkins/plugins/   插件目录
/etc/sysconfig/jenkins   配置文件目录(修改启动用户和端口等)
/usr/lib/jenkins/jenkins.war    升级时直接替换war包
/var/lib/jenkins/workspace/    工作目录,构建的数据目录
[vagrant@jenkins ~]$ ll /var/lib/jenkins/jobs/      # 项目目录
 total 12
 drwxr-xr-x. 3 jenkins jenkins 4096 Nov 24 02:51 MyFirstJob
 drwxr-xr-x. 4 root    root    4096 Nov 24 12:17 MyMavenJob
 drwxr-xr-x. 3 root    root    4096 Nov 24 12:54 MyPipelineJob


多次构建,会保留最后一次成功的在系统上 

技术分享图片            技术分享图片           技术分享图片                



Jenkins获取Gitlab源代码

技术分享图片

用户权限不够改成root 用户  或者做sudo授权

技术分享图片

技术分享图片

需要安装git 和ssh 公钥gitlab授权 或者使用已有的私钥

技术分享图片

不要随意改用户,改完改用户的配置文件,工作目录会没

技术分享图片

node1 拿到源码,部署到服务器,

技术分享图片

技术分享图片

Jenkins配置Gitlab自动触发构建

只要gitlab相应分支一变化,就触发构建

构建触发器

技术分享图片

技术分享图片

源码管理,直接从gitlab 拉取

技术分享图片

技术分享图片

添加集成token,代码项目选项里面设置

技术分享图片

技术分享图片



gitlab 改动后 测试触发

技术分享图片技术分享图片


配置jenkins返回构建状态到Gitlab

技术分享图片

技术分享图片

技术分享图片


构建完成后在gitlab 上显示

技术分享图片

查看job集成情况

技术分享图片

能够在gitlab 上查看构建结果,

Jenkins配置maven

maven 是一套 java 项目管理工具,

1、下载Maven 3安装包

官网:http://maven.apache.org/download.cgi

清华镜像:https://mirrors.tuna.tsinghua.edu.cn/apache/maven/

2、安装Maven

tar xf apache-maven-3.3.9-bin.tar.gz

mv apache-maven-3.3.9 /usr/local/

ln -s /usr/local/apache-maven-3.3.9/ /usr/local/maven

/usr/local/maven/bin/mvn -v

3、编辑/etc/profile文件,在末尾添加

export PATH=/usr/local/apache-maven-3.3.9/bin/:$PATH

clean

test

package

deploy

m2 仓库

编译后的执行文件,放到

Jenkins Pipeline介绍

1、什么是PIPELINE

  JENKINS2.0的精髓是PIPELINE AS CODE,是帮助JENKINS实现Cl到CD转变的重要角色。什么是PIPELINE,简单来说,就是一套运行于JENKINS上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程。PIPELINE的实现方式是一套GROOVYDSL,任何发布流程都可以表述为一段GROOVY脚本,并且JENKINS支持从代码库直接读取脚本,从而实现了PIPELINE AS CODE的理念。

2、PIPELINE的几个基本概念:

STAGE:阶段,一个PIPELINE可以划分为若干个STAGE,每个STAGE代表一组操作。注意,STAGE是一个逻辑分组的概念,可以跨多个NODE。

NODE:节点,一个NODE就是一个JENKINS节点,或者是MASTER,或者是AGENT,是执行STEP的具体运行期环境。

STEP:步骤,STEP是最基本的操作单元,小到创建一个目录,大到构建一个DOCKER镜像,由各类JENKINSPLUGIN提供


在gitlab 上创建 Jenkinsfile (项目根目录)

技术分享图片

然后在Jenkins上  创建 pipeline项目,并配置从gitlab 拉取Jenkinsfile (前提做完密钥授权后这里就不需要再输入)

技术分享图片

Jenkinsfile pipeline 语法,可以根据需要,生成相应语法,然后粘贴到Jenkinsfile 文件中

技术分享图片

技术分享图片
示例1
pipeline{
    agent any
    stages{
        stage("get code"){
           steps{
               echo "get code from scm"
           }
        }
        stage("package"){
            steps{
                echo "packge code"
            }
        }
        stage("deploy"){
            steps{
                echo "deploy packge to node1"
            }
        }
    }
}


示例2
pipeline{
    agent any
    stages{
        stage("get code"){
           steps{
               checkout([$class: ‘GitSCM‘, branches: [[name: ‘*/master‘]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: ‘06ac7536-b4d0-400f-ae10-fb71cdb266dc‘, url: ‘git@192.168.56.11:oldboy/monitor.git‘]]])
           }
        }
        stage("package"){
            steps{
                sh ‘cd /var/lib/jenkins/workspace/pipeline-job && tar czf /opt/web-$(date +%F).tar.gz .‘
            }
        }
        stage("deploy"){
            steps{
                sh ‘scp /opt/web-$(date +%F).tar.gz 192.168.56.11:/var/www/html‘
                sh ‘ssh 192.168.56.11 "cd /var/www/html/&&tar xf web-$(date +%F).tar.gz"‘
            }
        }
    }
}
pipeline

一测开发+测试

二测测试+加内测用户

测试提交测试报告

主管确认签字

上线运维负责

各部门主管在上线申请签字

运维负责上线

Jenkins持续集成

原文:https://www.cnblogs.com/wenyule/p/10013970.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!