Jenkins+SVN+Maven+shell 自动化部署实践
JAVA环境中利用Jenkins+svn+maven进行自动化部署实践
附、attach about jenkins command单击此处输入文字。19
4.CentOS7使用firewalld打开关闭防火墙与端口19
二、 Linux-command之jenkins控制台交换空间设置20
一、前言
1.介绍jenkins
本篇的系统环境为Linux,在安装之前,我想说明下本文的目的,jenkins是一款持续集成工具,它可以做的事情很多,其中一个主要的功能就是简化部署流程
*回想一下我们的发布流程:
1.本地项目打包
2.通过secureCRT工具,手动传输到服务器
3.然后手动输入命令发布
*有了jenkins以后,发布流程可以是这样:
1.用户在jenkins上点击某个按钮进行发布
2.jenkins收到发布命令
3.jenkins从SVN上把源代码download下来
4.jenkins根据你设置的mvn命令进行打包
5.jenkins把你打包的好的war工程传输到tomcat的webapps目录下
6.tomcat启动,浏览器输入请求路径访问项目
*对于程序员而言,只要做两件事:
1.在jenkins上配置某个项目的部署流程
2.在jenkins上点击某个项目的部署按钮,进行一键部署
*实际上,配置往往只做一次,其余的时候,你只要一键部署就可以了
博主综合网上查找资料以及部署实践随笔
二、安装jdk
1.下载jdk
jdk去官网下载,此处我下载的是jdk1.8 注意:linux系统的jdk包是tar.gz后缀
2.安装jdk
以下链接是安装jdk步骤链接,参考安装,在这不做多讲解,安装后输入 java -version检查是否成功
https://www.linuxidc.com/Linux/2016-09/134941.htm##1
=============================================================================
三、安装tomcat
1.下载安装包
前往tomcat官网下载最新tomcat安装包,此处我下载的是apache-tomcat-8.5.40.tar.gz
2.用secureCRT连接服务器
命令 cd /usr/local/
此位置可根据需求继续修改,但推荐放在/usr/local/下,因为此文件夹为用户软件安装空间。此处我多了一层目录,你们可以修改
3.Tomcat压缩包移到local目录下后解压
命令:
打开目录:cd /usr/local/
解压压缩包:tar -zxvf apache-tomcat-8.5.40.tar.gz
需配置一下tomcat/conf/tomcat-users.xml 配置如下 命令:vim tomcat-users.xml
添加后按esc :wq! Enter保存退出
修改tomcat配置文件。进入tomcat的bin目录
#cd /usr/local/tomcat/bin/
#vim catalina.sh
在85行下添加
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "
配置内存大小,修改完成后保存配置
4.启动Tomcat
打开tomcat下bin目录
启动tomcat 命令:./startup.sh
启动成功后打开浏览器访问 http://+服务器ip地址+8080/
访问成功后显示tomcat界面
===============================================================================
四、下载jenkins
1.下载jenkins war包
用secureCRT工具,命令打开webapps目录直接把下载好的jenkins war包拖进去即可,下面是我找的war包下载链接
http://ftp-nyc.osuosl.org/pub/jenkins/war/2.174/jenkins.war
2.安装目录
将下载好的war包放到tomcat的webapps目录下:放入webapps目录下后启动jenkins
命令:java -jar jenkins.war
打开浏览器访问http://+服务器ip地址+8080/+jenkins(目录名)
3.初始管理员账号密码
第一次安装需要初始管理员密码
初始密码在jenkins目录下jenkins/serets/initialAdminPassword
编辑该文件复制密码--命令:vim initialAdminPassword
[root@7mini-node2 contos]# cat /var/lib/jenkins/secrets/initialAdminPassword
a93553a4865b45198ae28f77877efe19(密码格式)
4.选则默认插件即可
5.设置管理员 用户密码
6.登录jenkins
使用刚刚设置的账号密码登录jenkins,可以选择保持登录状态(记住账号密码)
五、使用jenkins
使用设置的账号登录后 --进入主页 如下图--
1.推荐安装的插件中没有ssh、svn、deploy to container等插件 先安装需要的插件,操作步骤如下图,点击系统管理---->插件管理
2.点击系统管理下的插件管理
3.安装以下插件,
1.下载插件然后点击系统管理下的系统设置
2.这里主要是配置执行操作的服务器信息,以便后续 使用
(1)点击新建任务
(2)输入构建任务名,在这里我们选择maven项目 然后点确定
(3)源码管理选择svn 填写项目的svn地址。和用户名账号密码 填写完后红色提醒消失则配置正确
(4)没有配置的可以点右边的添加,配置用户名密码 ,描述自定义 其他默认
(5)配置完了然后点保存
小问题:由于第一个构建任务没有发布的操作,我们再新建一个任务,在第一个任务构建后触发
以下是执行发布操作命令 shell脚本 需以#!/bin/bash 开头 这里填写信息仅供参考
Ps -ef -----------------------------kill -9 是停止项目运行
Cd----------- 打开服务器下jenkins工作空间目录下 jar包的的存放路径,图片路径仅供参考
Java -jar -------------- 运行jar包发布
配置完成后点保存
构建第一个项目
------------attach about jenkins command-------
一、Linux-command之防火墙操作常用命令
1.在指定区域打开端口(记得重启防火墙)
firewall-cmd --zone=public --add-port=80/tcp(永久生效再加上 --permanent)
2.查看指定区域所有打开的端口
firewall-cmd --zone=public --list-ports
3.删除端口
firewall-cmd --zone= public --remove-port=80/tcp --permanent 如果报错public 则去掉public
4.CentOS7使用firewalld打开关闭防火墙与端口
5.firewalld的基本使用
启动: systemctl start firewalld
查看状态: systemctl status firewalld
停止: systemctl disable firewalld
禁用: systemctl stop firewalld
二、Linux-command之jenkins控制台交换空间设置
1.首先使用free -m命令查看内存使用情况和swap的大小
2. 关闭swap:
3. 设置swap的大小
bs指的是Block Size,就是每一块的大小。这里的例子是1M,意思就是count的数字,是以1M为单位的。
count是告诉程序,新的swapfile要多少个block。这里是1024,就是说,新的swap文件是5G大小。
注意:可能需要点时间完成此步,耐心等待完成。
4. 把增大后的文件变为swap文件:
5. 重新打开swap:
6. 让swap在启动的时候,自动生效。打开/etc/fstab文件,加上以下命令。然后保存。
7. 再次查询swap大小:
三、设置交换空间第二种方法
Linux系统上可以同时有多个swap,用swapon -s命令可以看到系统上所有的swap,用free命令看到的是swap总的大小。所以swap不够用时可以再建立一个swap,一般可以用文件的方式建立一个swap空间。下面以1G大小的文件为例介绍如何用文件建立内存交换空间:
1. 使用dd命令在某个目录(实际使用时换成其他目录,/tmp目录的数据会在重启后丢失)下新建一个1G的文件:
dd if=/dev/zero of=/tmp/swap bs=1M count=1024
解释:1M是单位,1024是数目,合计1024M就是总大小1G
2. 格式化这个文件为swap格式:(用mkswap命令)
mkswap /tmp/swap
3. 启动swap,用swapon命令(就是将新建的swap添加到系统):
swapon /tmp/swap
4. 查看效果(用swapon的-s参数):
swapon -s
可以看到所有的swap分区,如果成功了,/tmp/swap必然在里面。然后再用free命令查看,就可以看到swap空间增加了。
版本说明 |
版 本 |
号 |
负 |
责 |
人 |
时间 |
初始化jenkins文档 |
v1.0 |
陈 |
2019/04/28 |
|||
1. 前言 |
||||||
2. 安装jdk |
||||||
3. 安装tomcat |
||||||
4. 下载jenkins |
||||||
5. 使用jenkins |
||||||
6. 附带linux命令(about jenkins) |
v2. 0 |
陈 |
2019/06/26 |
Jenkins+SVN+Maven+shell 自动化部署实践的更多相关文章
- jenkins+git+maven搭建自动化部署项目环境
简介 折腾了两个晚上,趁着今晚比较有空,把jenkins+git+maven搭建自动化部署项目环境搭建的过程记录一下,这里我把github作为git的远程仓库(https://github.co ...
- jenkins实现maven项目自动化部署tomcat
最近公司有用到jenkins实现自动化部署,这里我对新的东西也是比较感兴趣,就用了点时间尝试了一下,虽然网上有很多这种例子,但是可能有些细节我也走了一些弯路.在这里记录一下,方便下次用到. 实现环境: ...
- Linux 部署jenkins + svn + mavne + tomcat8自动化部署
1,下载Jenkins war包 官网下载地址 https://jenkins.io/ 2.初始化安装 1)首次启动jenkins,出于安全考虑,jenkins会生成一个随机的口令到 /root ...
- Jenkins +svn +maven +tomcat+ ansible 自动化批量部署
Jenkins +svn +maven +tomcat+ ansible 自动化批量部署 一.部署svn yum install subversion 先创建目录 mkdir /home/svn 创建 ...
- 解放双手 | Jenkins + gitlab + maven 自动打包部署项目
前言 记录 Jenkins + gitlab + maven 自动打包部署后端项目详细过程! 需求背景 不会偷懒的程序员不是好码农,传统的项目部署,有时候采用本地手动打包,再通过ssh传到服务器部署运 ...
- 基于Jenkins,docker实现自动化部署(持续交互)
前言 随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间都不一致.基于微服务的系统架构,功能的叠加,对应的服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化.因此 ...
- .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统
.NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...
- 基于Jenkins,docker实现自动化部署(持续交互)【转】
前言 随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间都不一致.基于微服务的系统架构,功能的叠加,对应的服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化.因此 ...
- 基于 Docker 和 GitLab 的前端自动化部署实践笔记
基于 Docker 和 GitLab 的前端自动化部署 实践笔记 随着接触的项目越来越多,在部署测试流程上重复耗时工作也越来越多,所以对前端工作的CI/CD实现愈发迫在眉睫. 前端开发由于三大框架的崛 ...
随机推荐
- 【C#】获取"我的电脑"的名字,如This PC、这台计算机
原文:[C#]获取"我的电脑"的名字,如This PC.这台计算机 注意:这里获取的[我的电脑]的名字,不是机器的名字.如图所示: 要获取的是This PC这个字符串. ----- ...
- jq自定义下拉菜单,当用户点击非自身元素(下拉菜单)本身时关闭下拉菜单
jq自定义下拉菜单,当用户点击非自身元素(下拉菜单)本身时关闭下拉菜单 截图: 代码如下: //关闭用户菜单 $(document).mousedown(function(e){ var _con = ...
- 使用Newtonsoft.Json输出JSON
安装: Install-Package Newtonsoft.Json 代码: //序列化DataTable DataTable dt = new DataTable(); dt.Columns.Ad ...
- 判断jQuery选择器结果为空 - CSDN博客
原文:判断jQuery选择器结果为空 - CSDN博客 jQuery选择器获取到的是一个对象,所以无论页面上存在或者不存在元素,这个对象都不为空.因此,如果要使用jQuery检查元素再给某个页面上是否 ...
- win10 应用商店/相机/计算器误删后的修复方法
“以管理员身份运行”Windows Powershell. 然后在打开的“管理员:Windows Powershell”窗口中输入以下重装应用商店的命令: //商店恢复 Get-AppXPackage ...
- UWP中的消息提示框(二)
在UWP中的消息提示框(一)中介绍了一些常见的需要用户主动去干涉的一些消息提示框,接下来打算聊聊不需要用户主动去干涉的一些消息提示框.效果就是像双击退出的那种提示框. 先说说比较简单的吧,通过系统To ...
- Delphi 10.2 非官方补丁合集
Delphi 10.2 非官方补丁合集http://blog.qdac.cc/?p=4485 FMXObject和TFORM的释放都变成异步了.虽然能保证是在主线程中释放,但是Windows部分的线程 ...
- How to Use the Dynamic Link Library in C++ Linux (C++调用Delphi写的.so文件)
The Dynamic Link Library (DLL) is stored separately from the target application and shared among dif ...
- 使窗体拥有透明效果的API
一.背景FlashGet的透明效果大家羡慕吧.传统的Windows应用程序想实现半透明效果,一般来说需要处理自己的窗口的WM_Paint消息窗口,很麻烦.现在好了,SetLayeredWindowAt ...
- Swagger API文档集中化注册管理
接口文档是前后端开发对接时很重要的一个组件.手动编写接口文档既费时,又存在文档不能随代码及时更新的问题,因此产生了像swagger这样的自动生成接口文档的框架.swagger文档一般是随项目代码生成与 ...