介绍

Jenkins是一款开源自动化服务器,旨在自动化连续集成和交付软件所涉及的重复技术任务。 Jenkins是基于Java的,可以从Ubuntu软件包安装,也可以通过下载和运行其Web应用程序ARchive(WAR)文件进行安装 - 构成一个完整的Web应用程序的集合,该文件旨在在服务器上运行。

ubantu 安装jenkins

将存储库密钥添加到系统

  1. wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
    #添加密钥后,系统将返回OK

将Debian包存储库地址附加到服务器的sources.list

  1. echo deb http://pkg.jenkins.io/debian-stable binary/ | tee /etc/apt/sources.list.d/jenkins.list

运行update ,以便apt-get将使用新的存储库

  1. apt-get update

安装Jenkins及其依赖项,包括Java

  1. apt-get install jenkins

指定早期版本安装

  1. apt-get install jenkins=2.138.

启动jenkins

jenkins配置文件在/etc/default/jenkins   如果启动不成功可能是8080端口被占用,在该文件里可以修改jenkins启动端口

启动Jenkins

  1. systemctl start jenkins
  2. systemctl status jenkins #查看jenkins状态

安装maven环境

下载maven

  1. apache maven官网地址:http://maven.apache.org/download.cgi

找到Link列下的“apache-maven-3.5.2-bin.tar.gz“进行下载

安装配置maven

  1. 解压maven
  2. tar zxvf apache-maven-3.5.-bin.tar.gz -C /usr/local/

配置maven环境变量:

  1. vim /etc/profile
  2. export M2_HOME=/usr/local/apache-maven-3.5.2/
  3. export CLASSPATH=$CLASSPATH:$M2_HOME/lib
  4. export PATH=$PATH:$M2_HOME/bin
  5.  
  6. #使文件生效:
    source /etc/profile

查看maven版本信息

  1. mvn -v
  2. Apache Maven 3.5. (138edd61fd100ec658bfa2d307c43b76940a5d7d; --18T15::+:)
  3. Maven home: /opt/maven/apache-maven-3.5.
  4. Java version: 1.8.0_151, vendor: Oracle Corporation
  5. Java home: /opt/jdk1..0_151/jre
  6. Default locale: zh_CN, platform encoding: UTF-
  7. OS name: "linux", version: "4.4.0-98-generic", arch: "amd64", family: "unix"

jenkins使用

进入系统管理

在插件管理安装gitlab和ssh插件

在全局工具配置 配置maven和git的环境

新建一个任务

配置gitlab的的连接

配置代码上线过程

1.执行/bin/bash 61peizhiwenjian.sh  脚本修改代码配置文件  #jenkins环境变量,将脚本放置在该工程的目录下即可以用相对路径执行脚本

  1. 配置文件脚本
  2. #!/bin/bash
  3. #name:wangkang
  4. #作用:替换61环境的代码配置文件
  5. ydz=/var/lib/jenkins/workspace/nongxianpeizhi/245peizhi
  6. mbdz=/var/lib/jenkins/workspace/245nongxian2/guns-admin/src/main/resources
  7. cp -fp $ydz/application.yml $mbdz

2.maven打包

3.执行上传脚本     执行前需要配置服务器间的秘钥

  1. #!/bin/bash
  2. #name:wk
  3. #作用:代码上线
  4. gclj=/var/lib/jenkins/workspace/245nongxian2 #jenkins工程路径
  5. dmlj=/var/lib/jenkins/workspace/245nongxian2/guns-admin/target #代码war包所在的路径
  6. tomcatlj=/usr/local/tomcat9/webapps #tomcat路径
  7. dmbak=/media/hdd0/nongxian2bak                #代码备份路径
  8. Ip=60.205.1.1 #上传到服务器的IP地址
  9. [ -f $dmlj/nongxian2.war ] ||exit
  10. chown tomcat.tomcat $dmlj/nongxian2.war #将代码文件属主属组修改
  11. ssh tomcat@$Ip "mv $tomcatlj/nongxian2.war $dmbak/nongxian2.`date +%F`.war" #远程代码备份命令
  12. scp $dmlj/nongxian2.war tomcat@$Ip:$tomcatlj #代码上线命令
  13. rm -r $gclj/guns-* #清空jenkins代码文件

jenkin自动化代码上线的更多相关文章

  1. Linux实战教学笔记41:企业级SVN版本管理与大型代码上线方案

    第1章 SVN服务实战应用指南 1.1 SVN介绍 1.1.1 什么是SVN(Subversion)? Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN ...

  2. 企业SVN版本管理与代码上线方案

    1.SVN服务实战 1) 什么是SVN(Subversion)? Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统.Sv ...

  3. SVN版本管理与大型代码上线方案(一)

    SVN版本管理与大型代码上线方案(一) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打开百度网盘手机App,操 ...

  4. jenkins +gitlab 自动化代码秒级上线

    一,配置脚本 #!/bin/bash #目标服务器IP地址 host=$ #job名称 job_name=$ #包名 name=web-$(date +)) #打包 cd /var/lib/jenki ...

  5. Jenkins与网站代码上线解决方案

    1.1 前言 Jenkins是一个用Java编写的开源的持续集成工具.在与Oracle发生争执后,项目从Hudson项目独立. Jenkins提供了软件开发的持续集成服务.它运行在Servlet容器中 ...

  6. Jenkins与网站代码上线解决方案【转】

    转自 Jenkins与网站代码上线解决方案 - 惨绿少年 https://www.nmtui.com/clsn/lx524.html 1.1 前言 Jenkins是一个用Java编写的开源的持续集成工 ...

  7. java项目代码上线

    java项目代码上线   1:java项目代码上线架构图 ip地址及主机名规划 10.0.0.11 deploy 10.0.0.12 tomcat-web01 10.0.0.13 git.oldboy ...

  8. Jenkins 自动化部署上线

    转载于互联网 jenkins自动化部署项目,通过jenkins 部署来节省运维时间,不需要手动cp上线及版本发布 Jenkins 自动化部署上线 Jenkins Jenkins 自动化部署上线一.Je ...

  9. 艾伦 Visual Studio 批量自动化代码操作工具-VS插件发布

    艾伦 Visual Studio 批量自动化代码操作工具 以下简称--艾伦工具箱. 艾伦工具箱是一个多文件批量处理插件,目的是为了广大开发者提高开发效率,减少项目代码规范化审计,缩短开发者的项目开发周 ...

随机推荐

  1. Mycat详解及配置读写分离(Centos7)

    目录 一.理论概述 二.环境 三.部署 一.理论概述 原理简述 参考文档 MyCAT主要是通过对SQL的拦截,然后经过一定规则的分片解析.路由分析.读写分离分析.缓存分析等,然后将SQL发给后端真实的 ...

  2. iptables网络防火墙和SNAT原理实战

    网络防火墙 iptables/netfilter网络防火墙: (1) 充当网关 (2) 使用filter表的FORWARD链 注意的问题: (1) 请求-响应报文均会经由FORWARD链,要注意规则的 ...

  3. openpose-opencv 的coco数据多人体姿态估计

    介绍 opencv除了支持常用的物体检测模型和分类模型之外,还支持openpose模型,同样是线下训练和线上调用.这里不做特别多的介绍,先把源代码和数据放出来- 实验模型获取地址:https://gi ...

  4. Python 类和对象(2)

    上文讲到 类 = 属性 + 方法 今天来讲一下方法里常见的一个特殊的方法: 名字叫 __init__ 的构造方法 1.特殊的方法 :__init__ 该方法在我们实例化类的时候,python就自动调用 ...

  5. Postman----登录接口返回的reponse中token值传递给其他接口的一个简单接口测试示例

    注: 在进行接口测试时,我们都需要使用登录,并且其他的接口都要在登录后进行,那么必不可少的会使用到将登录接口的reponse返回结果中的某些参数值需要进行返回,并传递给其他接口,这样才可以进行登录后的 ...

  6. Spring MVC + freemarker实现半自动静态化

    这里对freemarker的代码进行了修改,效果:1,请求.do的URL时直接生成对应的.htm文件,并将请求转发到该htm文件2,自由控制某个页面是否需要静态化原理:对org.springframe ...

  7. 基于 C++ 的脚本语言 cpps 脚本

    cpps 脚本是一个基于 C++ 的脚本语言. 基础语法: if&else 接口说明 根据括号中数据判断执行相关代码. 代码演示 var i = toint(io.getc()); if(i  ...

  8. C# Transaction 事务处理

    class //student [Serializable] public class Student { public string FirstName { get; set; } public s ...

  9. .Net Core 过滤器

    请求: public class MyRequest { [Required(ErrorMessage = "Name参数不能为空")]//Required 验证这个参数不能为空 ...

  10. Java 加解密算法

    目前加密算法中分两种 一种是对称加密,一种是非对称加密 那么什么是对称加密呢?对称加密可以理解为加密和解密用的是一个钥匙. 而非对称加密,加锁用的是一个钥匙,而解锁用的是另外一个钥匙. 目前市面上用的 ...