• 主页
  • 归档
  • 分类
  • 照片墙
所有文章 友情链接 关于我

  • 主页
  • 归档
  • 分类
  • 照片墙
  1. 1. 环境搭建
    1. 1.1. 使用war包
    2. 1.2. 使用Docker镜像
  2. 2. 创建远程节点
  3. 3. 创建任务
  4. 4. 编写deploy.sh

持续集成-jenkins

2018-11-07 10:08:13
总字数 610
预计阅读时间 2 分钟

Jenkins是一款由Java编写的开源的持续集成工具
持续集成是用于解决频繁迭代带来的运维方面的工作, 使这些工作可以使用脚本自动完成
包括拉取代码更新、编译打包、部署运行等

环境搭建

使用war包

可以从官网下载war包
执行

1
java -jar jenkins.war

默认在8080端口运行, 修改运行端口可以加参数--httpPort=8081
运行之后访问可以进行初始化操作
输入首次运行时生成的初始化密码
初始化密码
之后安装推荐插件, 设定管理员用户名和密码, 即可开始使用

使用Docker镜像

1
2
3
4
5
# 拉取镜像
docker pull jenkins/jenkins:lts

# 运行容器
docker run -d -p 8080:8080 --name jenkins jenkins/jenkins:lts

之后docker logs [containerId]查看容器的运行日志可以看到初始化密码
初始化的操作同上

创建远程节点

初始化完毕之后, 已经有一个默认节点, 是jenkins程序运行所在的主机
如果要对其他主机进行远程操作, 则需要创建节点

系统管理 → 节点管理 → 新建节点
配置新节点的信息

初始化密码
这里使用SSH连接, 并且设定用户名和密码

创建任务

首页点击新建任务
勾选限制项目的运行节点, 并且输入刚才创建的节点名称
限制项目的运行节点

源码管理当中设定远程仓库的地址
(如果是私有仓库需要设置凭据)
源码管理

编写构建shell

1
2
3
4
5
6
# BUILD_ID设定后可以保持server进程持续运行
BUILD_ID=DONTKILLME

export TOMCAT_PATH=/root/apache-tomcat-9.0.12

bash /root/deploy.sh

编写deploy.sh

上面的构建脚本当中执行的是deploy.sh
我们需要在这个脚本当中编写停止tomcat进程 maven打包 拷贝程序包 启动tomcat这些步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/bash
#编译+部署
# 输入你的环境上tomcat的全路径
# export TOMCAT_PATH=tomcat在部署机器上的路径

### base 函数
killTomcat()
{
pid=`ps -ef|grep tomcat|grep java|awk '{print $2}'`
echo "tomcat Id list :$pid"
if [ "$pid" = "" ]
then
echo "no tomcat pid alive"
else
kill -9 $pid
fi
}
mvn clean package

# 停tomcat进程
killTomcat

# 删除原有工程
rm -rf $TOMCAT_PATH/webapps/ROOT
rm -f $TOMCAT_PATH/webapps/ROOT.war
rm -f $TOMCAT_PATH/webapps/order.war

# 复制新的工程
cp ./target/order.war $TOMCAT_PATH/webapps/
# 重命名
mv $TOMCAT_PATH/webapps/order.war $TOMCAT_PATH/webapps/ROOT.war

# 启动Tomcat
sh $TOMCAT_PATH/bin/startup.sh

之后执行立即构建

  • 持续集成
  • Java

扫一扫,分享到微信

Promise(3)-async与await
消息中间件(2)-java连接ActiveMQ 
© 2024 夏夜梦星辰
鲁ICP备19028444号
Power By Hexo
  • 所有文章
  • 友情链接
  • 关于我
{{searchItem.query}}
标签: 分类:
  • maven
  • 持续集成
  • JMS
  • 线程
  • JavaScript
  • ECMAScript6
  • 单元测试
  • Promise
  • Web Worker
  • 函数
  • prototype
  • 模块化
  • 正则表达式
  • 数据库
  • MongoDB
  • 索引
  • 集群
  • 全文检索
  • flutter
  • dart
  • git
  • 版本控制
  • linux
  • shell
  • docker
  • nginx
  • jenkins
  • opencv
  • vim
  • react
  • react native
  • 前端
  • css
  • HTML5
  • Hexo
  • sass
  • Three.js
  • TypeScript
  • Vue
  • 组件化
  • base64
  • webpack
  • nodejs
  • gulp
  • TensorFlow
  • 机器学习
  • 算法
  • 动态规划
  • 数据结构
  • Java
  • JavaScript
  • MongoDB
  • flutter
  • Git
  • linux
  • react
  • 前端杂烩
  • 男生女生
  • 算法
  • 十年饮冰,难凉热血
  • †少女癌†
  • 猫与向日葵
  • coderfun
  • JENKINS
  • API管理后台
愿你最终能接纳每一面每一种的自己
独自活着便是团圆