- 应 用
- Java开发
- 外文名
- Jenkins
- 属 于
- 开源软件
- 中文名
- Jenkins
- 功 能
- 集成工具
-
jenkins
2017-12-06 09:08:46发布,然后看呈现效果,这样的工作是频繁反复的在进行的,浪费了程序员的大量时间,那么能不能把这些工作自动化呢,只需要程序员更新代码到svn,然后自动的构建,发布,呈现效果,当然是可以的,通过jenkins和docker...应用场景
程序员开发应用,开发后需要提交svn,然后从svn拉取代码,进行构建,发布到tomcat中,发布,然后看呈现效果,这样的工作是频繁反复的在进行的,浪费了程序员的大量时间,那么能不能把这些工作自动化呢,只需要程序员更新代码到svn,然后自动的构建,发布,呈现效果,当然是可以的,通过jenkins和docker来实现。
操作步骤
1. 概述
开发者的工作大概流程是,eclipse编写代码,提交代码到svn,然后进行编译,打包,测试,部署,发布。
这其中很多重复的工作,影响开发人员的情绪,应当让开发者只重视代码阶段,后面的内容不用去理会,只要编写代码,提交代码,然后就能打开页面看到效果,那是最好的。
这就需要自动化构建,jenkins就是很好的自动化构建工具。
2. 自动化流程
具体流程如下:
- 1.编写代码,修改代码
- 2.提交代码到svn
- 3.Jenkins自动检测到svn代码更新,从svn拉取最新代码
- 4.Jenkins自动编译
- 5.Jenkins自动打成tomcat下能运行的war包
- 6.Jenkins自动上传war包到docker宿主机目录
- 7.Jenkins自动构建web容器镜像,包含项目demo
- 8.Jenkins自动启动镜像,变成容器,映射端口
- 9.最后就有项目运行的界面提供了
3. 环境准备
3.1 jenkins
Jenkins简单点说就是一个war包。一个自动化服务,提供各种插件集成。
jenkins下载地址Jenkins部署有两种方法(可以装到windows或者linux,实验中以windows的方式一为例):
Jenkins是用Java语言开发的系统,首先要确定服务器上已经安装JDK或者JRE。
1.方式一
直接运行java –jar jenkins.war(注意jenkins.war得是绝对路径,例如下图所示),在浏览器中输入
http://localhost:8080即可。到此,jenkins安装部署完毕,关于如何使用jenkins,下文详细介绍。
2.方式二
把jenkins的war包拷贝到tomcat的webapps目录下,启动tomcat,访问地址:http://ip:8080/jenkins
3.2 maven
3.3 svn
3.4 jdk
3.5 docker
4. 基础配置
4.1 jenkins配置
- 首先需要进入jenkins主界面,安装必须要的插件。
进入插件页面,选择可选插件,搜索ssh,安装SSH plugin和Publish Over SSH插件,由于实验已经安装过,所以图中没有显示了。
- 然后回到主界面,进行系统设置。
配置maven configuretion,加上本地maven安装地址,指向settings文件。
jdk配置,指向本地jdk安装目录。
Maven配置,指向本地maven安装路径。
配置jenkins location,配置管理员邮箱。
配置邮件通知,需要邮箱开启pop3,smtp,可以测试验证。后面配置邮件通知时需要用到。
配置Publish over SSH。这里配置后才能在配置目标容器环境时,选择到构建完成后发布到的目标容器。
最后应用,保存。
5.配置自动化
5.1 编写代码
这里需要基于maven构建的工程。
5.2 提交代码至svn
右击项目,选择team,提交,到svn服务器的某个地址,实验中提交到如下目录:
需要在svn下新建mavenproject文件夹,具体操作参考3.3。
5.3 新建jenkins项目连接svn
点击界面左侧新建,项目名称可以随意命名,选择maven项目:
选择源码地址,这功能可以让jenkins可以从svn上拉取代码。
Repository URL获取方式:
5.4 配置构建任务
该功能,jenkins可以检测svn代码,如果发生变化,那么立即自动执行构建:
5.5 配置构建参数
该功能,jenkins可以自动给maven项目打包
5.6 邮件通知
该功能,jenkins构建过程中,可以向指定邮箱发送邮件,提示构建状况。
5.7 配置目标容器环境
选择send build artifacts over SSH,该功能可以实现将本地打包的war包,ssh到指定服务器的目录中,并且能在服务器上执行脚本。
脚本如下:
docker rm -f microframe #删除已建的容器,防止容器名,端口冲突 sleep 1 cd /Dockerfile_tomcat docker build -t xubin/website:v1 . #根据dockerfile生成web镜像 sleep 1 docker run -d -p 8080:8080 --name microframe xubin/website:v1 #运行镜像生成容器
这样jenkins上就操作完毕了。
5.8 生成docker实例
在docker宿主机输入如下命令:
# git clone https://git.oschina.net/bingoxubin/Dockerfile_tomcat.git
执行完毕后,打开虚拟机上的/Dockerfile_tomcat目录,修改该目录下的Dockerfile文件,加入如下一行:
COPY microframe-0.0.1.war /opt/apache-tomcat/webapps/microframe-0.0.1.war
5.9 测试
当我们修改eclipse上的代码,然后提交到svn:
等几分钟就能看到结果。
可以看到jenkins自动开始构建了:
访问页面:
最后可以看出,生成了指定的容器。
-
Jenkins
2019-09-22 10:06:47Jenkins-
下载:https://jenkins.io/zh/download/ (Generic Java package (.war))
Continuous Integration 持续集成
Continuous Integration 持续交付
1. 登陆
登陆名为 admin
C:\Users\yuanyu\.jenkins\secrets\initialAdminPassword
2. 全家桶
可以安装官方推荐的全家桶套餐
3. jenkins配置邮件通知
http://localhost:8080/jenkins/configure
密码是授权码:https://service.mail.qq.com/cgi-bin/help?subtype=1&id=28&no=1001256
smtp.qq.com @qq.com jzsqnapaiethchbe
3. JDK Maven Git 设置
用户设置
部署项目
H/10 * * * *
~\conf\tomcat-users.xml
<role rolename="manager"/> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-status"/> <user username="admin" password="123" roles="manager-status, manager-script, manager-gui, manager"/>
-
Jenkins自动构建部署项目到远程服务器上
2018-07-08 16:22:221.下载jenkins 下载地址:https://jenkins.io/ 启动jenkins方式有2种 1.1切换到jenkins.war包的存放目录 启动命令: java -jar jenkins.war 启动jenkins 访问: localhost:8080 就能...1.下载jenkins
下载地址:https://jenkins.io/
启动jenkins方式有2种
1.1切换到jenkins.war包的存放目录
启动命令: java -jar jenkins.war 启动jenkins
访问: localhost:8080 就能进入jenkins管理页面
1.2把jenkins.war放到tomcat的webapps目录下,然后去tomcat的bin目录下
启动命令: ./startup.sh启动tomcat
访问:localhost:8080/jenkins 就能进入jenkins管理页面
2.配置jenkins插件和全局工具配置
先去系统管理。然后里面有个插件管理
2.1先配置一下全局工具配置,不推荐自动安装
2.2添加除了新手推荐需要安装的插件
Publish Over SSH用于连接远程服务器
Deploy to container插件用于把打包的应用发布到远程服务器
3.构建项目,部署项目到远程服务器
3.1 配置连接远程服务器的ssh
去系统设置里配置Publish over SSH
Passphrase 服务器的密码
Path to key 连接远程服务器密钥文件的路径
Key 密钥文件的内容
Name 自定义服务器名
HostName 服务器IP外网地址
UserName 服务器用户名
Remote Directory 传输文件的目录
3.2构建项目
确定后,配置项目的源码管理,构建触发器
如果构建的git仓库是私网地址,要配置对应域和用户信息,公网请跳过以下配置
添加完git私库对应的域名,点击Ok,然后选中刚刚添加的那条记录,然后配置域合法的用户信息,然后确认就ok
配置构建触发器
触发器建议使用这2种
1.定时构建
定时构建就是没隔一段时间就是构建1次任务
0 * * * * 代表每小时0分的时候构建1次项目
第1个代表分,第2个代表时,第3个代表日,第4个代表月,第5个代表周
2.轮询SCM
轮询SCM就是查看源码管理的代码有没有更新,如果更新了就去构建,没有更新就不会构建
*/5 * * * * 代表每5分钟就去查看源码有没有更新
配置构建的参数
Source files 项目构建后的目录
Remove prefix 去前缀
Remote directoty 发布的目录
Exec command 发布完执行的命令,我这边写的是发布完会重启tomcat
填完以上内容后保存构建任务,然后开始构建项目
然后点击任务,去控制台看构建
这个时候部署好的war项目就发布到了你的远程服务器的tomcat里面了
tomcat在重启的时候会把你war包自动解压
tomcat重启的脚本内容如下
#! /bin/bash tomcat_home=/usr/local/tomcat-8 SHUTDOWN=$tomcat_home/bin/shutdown.sh STARTTOMCAT=$tomcat_home/bin/startup.sh echo "关闭$tomcat_home" $SHUTDOWN #杀死tomcat进程 ps -ef|grep $path|grep java|awk '{print $2}'|xargs kill -9 #删除日志文件,如果你不先删除可以不要下面一行 rm $tomcat_home/logs/* -rf #删除tomcat的临时目录 rm $tomcat_home/work/* -rf sleep 5 echo "启动$tomcat_home" $STARTTOMCAT #看启动日志 #tail -f $tomcat_home/logs/catalina.out
这个时候我们用jenkins自动部署项目到服务器就已经学习完毕了
希望能够帮到大家,这个是我自学的总结。
点击下面的文字链接可以跳转到自动构建vue项目的博客。
-
Jenkins 安装及使用 ( Jenkins 部署 Maven 项目、Jenkins 部署 Vue 项目)
2019-06-26 08:40:10Jenkins安装部署环境如下 PS:中文官网,东西比较全。(居然有中文官网了,真好!)以下为本人自己的使用过程,仅供参考! 一、准备阶段 1、组件及版本: Jenkins版本:2.164.3 操作系统:CentOS Linux release 7.5....Jenkins 安装及使用 ( Jenkins 部署 Maven 项目、Jenkins 部署 Vue 项目)
PS:中文官网,东西比较全。(居然有中文官网了,真好!)以下为本人自己的使用过程,仅供参考!
一、准备阶段
1、组件及版本
Jenkins 安装部署环境如下
Jenkins 版本:2.164.3
操作系统:CentOS Linux release 7.5.1804 (Core)
JDK 版本:1.8.0_171
Tomcat :8.5.31.02、Jenkins部署方式
官网下载jenkins.war,放到Tomcat的webapps目录中,启动Tomcat即可。需要注意的是jenkins的默认语言和操作系统一致,操作系统如果选择中文,jenkins页面就是中文的。
PS:中文官网安装方式3、查看防火墙的状态
systemctl status firewalld
Tomcat默认使用8080端口,如果防火墙开启,需要开通8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
重启防火墙
systemctl restart firewalld
查看防火墙列表
firewall-cmd --zone=public --list-ports二、Jenkins安装部署
1、密码
启动Tomcat之后,查看logs目录中的catalina.out日志文件。其中包含了第一次启动的默认密码。如图:
如图密码为(不要复制,你的密码肯定不一样):8203fc9d1ee04c60a39666c6c53ffc01
2、登录
浏览器访问http://IP:8080/jenkins,输入初始密码,加载中请稍等
3、选择插件
不知道装什么,可以不装插件,后期还可以安装插件的,或者使用推荐,就是推荐稍微有点多
安装推荐的插件
等安装好之后。配置用户名、密码、URL访问地址,就可以使用了。(不每个都截图了,没什么好记录的)
三、Jenkins自动部署Maven项目
Jenkins 页面如下:
使用Jenkins的目的,从自建GitLab中下载代码,有代码更新的时候,自动下载、编译、打包、部署、启动项目
1、部署环境
操作系统:CentOS Linux release 7.5.1804 (Core)
JDK版本:1.8.0_171
Tomcat:8.5.31.0
项目:J2EE
框架:SSM
项目包:war2、新建项目
发现没有maven项目的选项
安装maven插件
搜索关键字:Maven Integration出现maven项目
新建maven项目官网是另外一种方式
这两个地方报错。先保存,去其他地方配置好,再回来。
3、全局配置 : Maven
git需要额外安装,直接yum install git就可以了,参考:官网。不喜欢yum的可以用其他方法。
maven不需要额外安装。
git安装这个无效,很奇怪。没搞懂(有明白的大神,请指导一下。多谢!)
这里需要注意,其他很多博客中的方法,单独安装maven。因为Jenkins已经集成好了。
按照上面的配置之后,所有jenkins集群中的节点,都不需要单独安装maven,但是仍然可以用maven打包。非常好用。git不可以,或者是我不会用,很可惜。安装了git、maven之后,项目中的错误就消失了。
至于那些选项,研究一下吧。每个人的需求都不太一样,按需配置即可。
现在就可以构建项目了。第一次有点慢,需要安装maven,下载依赖。
哦~ 对了这里忘记说了,全局工具配置 - Maven配置 - setting - 选择文件,文件里面可以配置私库
,本地仓库位置。会快很多的。
构建好的项目在.jenkins/workspace中4、启动 tomcat 异常处理
PS:Post Steps 中,如果需要启动tomcat,需要加入BUILD_ID=dontkillme,组织Jenkins部署结束后,停止进程,否则会一直出现tomcat不能正常启动的现象。
四、Jenkins自动部署前端项目(Vue)
1、安装NodeJS插件
Vue项目打包需要NodeJS环境,因此首先安装NodeJS插件
全局工具配置 安装NodeJS
2、新建项目
新建 自由风格的项目
git配置和maven项目创建时是一致的
Build Environment - Provide Node & npm bin/ folder to PATH(引入NodeJS环境)3、注意事项&构建脚本
这里需要注意Build的时候需要自己写shell脚本打包,而且shell脚本中需要自己提供NodeJS的PATH和NODE_HOME。可能是我研究的还不够透彻,仅供参考!
构建脚本如下:
#!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH source ~/.bash_profile #jenkins工具位置,这个是默认值 TOOLS_PATH=/root/.jenkins/tools #NodeJS的位置 NODE_HOME=${TOOLS_PATH}/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS8.16.0 export NODE_HOME PATH=${PATH}:${NODE_HOME}/bin export PATH NODE_PATH=${NODE_HOME}/lib/node_modules export NODE_PATH cd ${WORKSPACE} npm install npm run build exit 0
构建脚本不够漂亮,根据自己的实际情况优化一下吧~
完~
-
jenkins详解
2017-12-26 13:33:01Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允许... -
Jenkins入门(一)
2018-09-25 15:30:2925.1 CI/CD介绍 互联网软件的开发和发布,已经形成了一套标准流程,假如把开发工作流程分为以下几个阶段: 编码 → 构建 → 集成 → 测试 → 交付 → 部署 正如你在上图中看到,持续集成(Continuous Integration)、... -
Jenkins+gitlab手动部署
2020-08-24 20:44:00Jenkins:172.16.88.221 (安装Jenkins和git命令) gitlab:172.16.88.221 (安装gitlab) 远程部署机器:172.16.88.220 (安装nginx测试用) 1、安装插件 #打开jenkins页面 #添加插件:系统管理 - 插件管理... -
jenkins教程
2018-06-14 15:50:57最近接了公司的挺多...jenkins的作用和它的图标表现出来的一样,就是为了做工作的时候,能够比较轻松,像一个绅士一样游刃有余。 一、安装 1、进入官网,找到download 找来找去,在最下面有个.war 因为我是做... -
jenkins笔记
2020-09-03 10:00:02【1】Jenkins安装 【2】工作空间 【3】插件安装 【4】中文显示 【5】Jenkins配置jdk、maven、svn、git 【6】构建maven项目 【7】windows脚本 【8】linux脚本 【9】防止jenkins杀死衍生进程 【10】jenkins几种构建... -
安装jenkins
2017-09-19 22:17:26一:下载在官网下载 jenkins 选择war包下载。https://jenkins.io/二: 启动使用 java -jar jenkins.war 启动 jenkins 端口默认8080三: 启动Jenkins 配置各种参数在浏览器输入 http://localhost:8080 启动之后 会... -
Jenkins使用教程
2018-05-02 16:22:36Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。本文以 CentOS7 环境为例,总结了 Jenkins 的安装与配置、邮件功能使用,并接入阿里巴巴的... -
Jenkins的三种启动方式
2018-12-26 14:36:54前置条件 ...(所有) docker环境,下载(第二种) ...打开终端命令行,找到war所在的路径运行java -jar jenkins.war 浏览器打开http://localhost:8080,将会看到下图结果 二、docker启动 打开命令行终端或power... -
教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)
2018-08-11 21:18:18最近在实习中接触了jenkins这个东西,所以花点时间了解了下。它可以在代码上传仓库(如github,gitee,gitlab)后,在jenkins(一个网站界面)中通过获取代码仓库中最新代码,进行自动化部署,而省去手动打包、上传... -
jenkins选择分支构建
2017-06-28 11:43:54jenkins有个插件Git Parameter ,可以实现在构建时,选择分支构建,从而可以减少一些操作。一.下载安装插件 在管理中选插件,输入Git Parameter,点击安装。或者访问... -
jenkins配置JENKINS_HOME
2019-01-05 15:21:43当把jekins的war包放到Tomcat的webapp目录后,启动Tomcat服务后,访问jenkins的网址,进行首次密码验证时,显示密码生成在了C:\Windows\system32\config\system...这时由于没有配置JENKINS_HOME这个环境变量,... -
Jenkins实践基础:使用jenkinsfile的两种方式
2019-01-12 12:02:09jenkinsfile以代码的形式将持续集成中的流水线构成进行保存,更是可以结合scm进行保存,这篇文章介绍一下如何使用jenkinsfile的两种方式。 -
玩转Jenkins Pipeline
2018-07-17 15:28:47Jenkins Pipeline的总体介绍 1.Jenkins Pipeline 的核心概念 Pipeline,简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与... -
jenkins war包
2013-05-29 08:03:49jenkins war包,不用安装即可用 -
jenkins介绍,Jenkins安装,Jenkins发布PHP代码
2018-10-08 23:32:40Jenkins介绍 官网 https://jenkins.io Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)基于web界面的平台。 Jenkins是一个工具集,提供了各种各样的插件 比如获取git上... -
从 Jenkins 到 Jenkins X
2019-05-29 20:15:35本文首发自 Jenkins 中文社区 这是一个关于 dailymotion 从 Jenkins 到 Jenkins X 的旅程,我们遇到的问题,以及我们是如何解决它们的故事。 我们的上下文 在 dailymotion ,我们坚信 devops 最佳实践,并且在 ... -
Jenkins 创建参数打包项目
2020-08-25 09:38:12在Jenkins服务器上面编写脚本: vim /home/yunwei/test.sh name="$1" ago="$2" case $name in "xiaoming") echo -e "小明是个傻逼\n今年$ago岁" ;; "xiaobai") echo -e "小白是个傻逼\n今年$ago岁" ;; "zsan")...
-
21年新消息队列RabbitMQ视频教程AMQP教程
-
小红书图片剪裁框架+微信图片选择器+超高清大图预览+图片自定义比例剪裁
-
Java无损导出及转换word文档
-
css基础篇 06 定位 定位案例 网页布局总结 元素的显示和隐藏
-
15.GUI.rar
-
flask构建弹幕微电影系列源码
-
ps-pulse-mac-9.1r9.0-b4983-installer.dmg
-
【数据分析-随到随学】数据分析建模和预测
-
手势解锁-canvas-javascript实战
-
广州大学数值分析实验.rar
-
Appium自动化测试套餐
-
MH-Z14A 使用说明书.pdf
-
Kotlin协程极简入门与解密
-
Qt项目实战之基于Redis的网络聊天室
-
office常用快捷键.docx
-
MySQL课堂笔记-day02.txt
-
Go的语句
-
微信小程序之颜值测试项目(测颜值)【项目实战】
-
【编译原理系列】算术表达式与数组元素翻译
-
【路径规划】蚁群算法之智能车路径规划【Matlab 032期】