自动化集成:Jenkins管理工具详解
前言:该系列文章,围绕持续集成:Jenkins+Docker+K8S相关组件,实现自动化管理源码编译、打包、镜像构建、部署等操作;本篇文章主要描述Jenkins基础用法。
一、Jenkins安装
1、环境部署
下载Jenkins包
注意这里直接下载war文件,以Java服务的形式启动。
- 环境:war运行
- 版本:2.289.3
- 类型:Generic Java package (.war)
启动命令
java -jar jenkins.war --httpPort=8090
启动日志
Jenkins is fully up and running
访问本地端口:8090
该页面会提示初始登录密码的位置,查看该文件中初始密码,并完成登录。
/.jenkins/secrets/initialAdminPassword
安装推荐插件
登录之后先把推荐的插件装上。
创建用户
插件安装完成之后会提示创建用户。
账号:admin 密码:admin
这样初始化完成。
重新启动:restart
Jenkins_url/restart
2、配置与插件
基础配置
打开:Manage-Jenkins
选项,配置Global-Tool-Configuration
选项:
- 查看JDK安装目录
/usr/libexec/java_home -V
- 查看Git安装目录
which git
- 查看Maven安装目录
mvn -v
配置组件:JDK、Git、Maven,采用开发环境的组件版本;
插件安装
安装如下插件:
1、Maven插件
Maven Integration plugin
2、Pipeline插件
Pipeline Utility Steps
二、本地Git打包
简介:基于Jenkins完成本地的Git仓库项目打包;
1、新建Item
- 任务名称:MavLoc,处理本地maven工程;
- 任务类型:选择构建maven项目;
2、构建记录管理
保持构建的天数:3天,保持构建的最大个数:10个;
3、构建过程
前置Pre-Steps
步骤,这里执行一次maven版本查看:
构建Build
步骤,这里直接写项目的pom路径,注意执行的maven命令:
clean package -Dmaven.test.skip=true
后置Post Steps
步骤,注意选择构建成功后才执行,自行忽略这里shell语法的不入流组合:
#!/bin/bash
BUILD_ID=dontKillMe
# 定义目录
AUTO_PATH=/项目路径/butte-auto-parent/
# 移动Jar包
cd $AUTO_PATH/auto-client/target/
pwd
mv auto-client-1.0-SNAPSHOT.jar $AUTO_PATH
cd $AUTO_PATH/auto-serve/target/
pwd
mv auto-serve-1.0-SNAPSHOT.jar $AUTO_PATH
# 启动服务
cd $AUTO_PATH
nohup java -jar auto-client-1.0-SNAPSHOT.jar &
echo "run auto-client ..."
sleep 20s
nohup java -jar auto-serve-1.0-SNAPSHOT.jar &
echo "run auto-serve ..."
4、执行构建
上述配置完成后,打开任务页面,执行如下操作:
- Build Now:执行上面的构建任务;
- 构建 #ID:查看控制台输出的日志;
这样就可以通过jenkins完成本地项目的打包和启动了。
三、API触发任务
1、用户令牌
简介:通过配置用户API访问的token令牌,脱离jenkins控制台,直接触发构建任务;
进入用户面板的设置选项,配置API Token
:
注意这里生成令牌后要立刻复制下来,页面会提示token无法复现。
2、任务令牌
任务配置的构建触发器模块,设置远程构建的令牌:
上面已经给到token的使用方式。
3、脚本触发
通过如下方式,直接触发上述构建任务的流程:
curl http://用户:令牌@Jenkins_Url/job/MavLoc/build?token=任务令牌
这里通过脚本直接请求URL的方式触发流程。
四、打包Git项目
1、配置仓库
创建MavGit任务,这里不做过多的配置,与本地仓库相比,只是把仓库地址换成Gitee地址,只配置仓库url和分支即可,其他采用默认:
因为是开放的仓库地址,所以不用配置账号密码,默认指定master分支,然后执行build构建。
2、查看空间
上面流程执行完后,查看MavGit的工作空间:/.jenkins/workspace/MavGit
:
这里可以明显发现,仓库的代码已经被pull下来,并且完成了自动打包流程,后续结合shell脚本完成jar启动管理即可。
同系列文章:┃ 服务部署发布 ┃ 灰度模式 ┃ 自动化流程 ┃ 消息中间件改造 ┃ 微服务组件二次浅封装 ┃
五、源代码地址
GitEE·地址
https://gitee.com/cicadasmile/butte-auto-parent
Wiki·地址
https://gitee.com/cicadasmile/butte-java-note/wikis
自动化集成:Jenkins管理工具详解的更多相关文章
- NPM 包管理工具详解,使用教程
NPM 包管理工具 1.1 定义:什么是 NPM NPM 全称 Node Package Manager,它是 JavaScript 的包管理工具, 并且是 Node.js 平台的默认包管理工具.通过 ...
- 云计算:Linux运维核心管理命令详解
云计算:Linux运维核心管理命令详解 想做好运维工作,人先要学会勤快: 居安而思危,勤记而补拙,方可不断提高: 别人资料不论你用着再如何爽那也是别人的: 自己总结东西是你自身特有的一种思想与理念的展 ...
- valgrind和Kcachegrind性能分析工具详解
一.valgrind介绍 valgrind是运行在Linux上的一套基于仿真技术的程序调试和分析工具,用于构建动态分析工具的装备性框架.它包括一个工具集,每个工具执行某种类型的调试.分析或类似的任务, ...
- 利用 Java 操作 Jenkins API 实现对 Jenkins 的控制详解
本文转载自利用 Java 操作 Jenkins API 实现对 Jenkins 的控制详解 导语 由于最近工作需要利用 Jenkins 远程 API 操作 Jenkins 来完成一些列操作,就抽空研究 ...
- Chrome开发者工具详解(5)-Application、Security、Audits面板
Chrome开发者工具详解(5)-Application.Security.Audits面板 这篇文章是Chrome开发者工具详解这一系列的最后一篇,介绍DevTools最后的三个面板功能-Appli ...
- Chrome开发者工具详解(4)-Profiles面板
Chrome开发者工具详解(4)-Profiles面板 如果上篇中的Timeline面板所提供的信息不能满足你的要求,你可以使用Profiles面板,利用这个面板你可以追踪网页程序的内存泄漏问题,进一 ...
- Chrome开发者工具详解(3)-Timeline面板
Chrome开发者工具详解(3)-Timeline面板 注: 这一篇主要讲解面板Timeline,参考了Google的相关文档,主要用于公司内部技术分享.. Timeline面板 Timeline面板 ...
- Chrome开发者工具详解(2)-Network面板
Chrome开发者工具详解(2)-Network面板 注: 这一篇主要讲解面板Network,参考了Google的相关文档,主要用于公司内部技术分享. Chrome开发者工具面板 面板上包含了Elem ...
- Chrome开发者工具详解(1)-Elements、Console、Sources面板
Chrome开发者工具详解(1)-Elements.Console.Sources面板 Chrome开发者工具面板 面板上包含了Elements面板.Console面板.Sources面板.Netwo ...
随机推荐
- Chrome 插件特性及实战场景案例分析
一.前言 提起Chrome扩展插件(Chrome Extension),每个人的浏览器中或多或少都安装了几个插件,像一键翻译.广告屏蔽.录屏等等,通过使用这些插件,可以有效的提高我们的工作效率:但有时 ...
- 如何基于 React 封装一个组件
如何基于 React 封装一个组件 前言 很多小伙伴在第一次尝试封装组件时会和我一样碰到许多问题,比如人家的组件会有 color 属性,我们在使用组件时传入组件文档中说明的属性值如 primary , ...
- Android连接远程数据库的避坑指南
Android连接远程数据库的避坑指南 今天用Android Studio连接数据库时候,写了个测试连接的按钮,然后连接的时候报错了,报错信息: 2021-09-07 22:45:20.433 705 ...
- 百胜中国使用Rainbond实现云原生落地的实践
百胜中国使用Rainbond实现云原生落地的实践 关于百胜中国 自从1987年第一家餐厅开业以来,截至2021年第二季度,百胜中国在中国大陆的足迹遍布所有省市自治区,在1500多座城镇经营着11023 ...
- [R] 如何快速生成许多差异明显的颜色?
这个需求真的太常见了!注意问题强调的几个关键词:一是快速,二是大量,三是差异明显.在生成大量元素比较图时要明显区分不同样本,比如宏基因组中的物种分析: 方法一:自定义 自定义颜色:优点是选择差异明显的 ...
- Metabolomics Workfolw
推荐R语言界的国内大佬于淼写的代谢组学workflow,包含了大部分代谢组学(以及暴露组)的数据分析方法. Meta-Workflow 主要内容包括: Sample collection Pretre ...
- UE4之Slate:纯C++工程配置
概述: Slate是UE4提供的UI框架,整个UE4 Editor UI都是使用Slate构建的: Slate的官方文档:[Slate UI框架] Slate底层内容,中文环境下能搜索到的有效资源也不 ...
- 突破冯·诺依曼架构瓶颈!全球首款存算一体AI芯片诞生
过去70年,计算机一直遵循冯·诺依曼架构设计,运行时数据需要在处理器和内存之间来回传输. 随着时代发展,这一工作模式面临较大挑战:在人工智能等高并发计算场景中,数据来回传输会产生巨大的功耗:目前内存系 ...
- 学习java的第五天
一.今日收获 1.java程序设计完全手册第一章节的小总结 2.完成了部分例题验证解答. 二.今日难题 1.java语言与c++语言的不同点. 2.有例题验证不出来 三.明日目标 1.复习java程序 ...
- Java项目发现==顺手改成equals之后,会发生什么?
最近发生一件很尴尬的事情,在维护一个 Java 项目的时候,发现有使用 == 来比较两个对象的属性, 于是顺手就把 == 改成了 equals.悲剧发生...... == 和 equals 的区别 = ...