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实现愈发迫在眉睫. 前端开发由于三大框架的崛 ...
随机推荐
- G1 安装 Linux Debian system
开发Android第五步,G1 安装 Linux Debian system 在 G1 上安装 Linux Debian system (Debian ARMEL) 要具备以下条件: (a) 最好是 ...
- UWP应用载入SVG图片的兼容性方案
原文 UWP应用载入SVG图片的兼容性方案 新版本<纸书科学计算器>的更新点之一,就是优化了表达式的显示方式.在旧版本中,表达式里的符号是用png图片显示的,当用户放大看的时候会发现一些锯 ...
- QML中实现setTimeout和setInterval
Qt的QML中,js未提供setTimeout和setInterval,可以通过下面的代码实现. Timer {id: timer} function setTimeout(cb,delayTime) ...
- 零元学Expression Blend 4 - Chapter 3 熟悉操作第一步(制作一个猴子脸)
原文:零元学Expression Blend 4 - Chapter 3 熟悉操作第一步(制作一个猴子脸) 本篇内容会教你如何使用笔刷.钢笔.渐层以及透明度的调整,还有如何转化图层和路径,最重要的是要 ...
- Raknet是一个基于UDP网络传输协议的C++网络库(还有一些其它库,比如nanomsg,fastsocket等等)
Raknet是一个基于UDP网络传输协议的C++网络库,允许程序员在他们自己的程序中实现高效的网络传输服务.通常情况下用于游戏,但也可以用于其它项目. Raknet有以下好处: 高性能 在同一台计算机 ...
- 关于联合体union的详细解释
1.概述 联合体union的定义方式与结构体一样,但是二者有根本区别. 在结构中各成员有各自的内存空间,一个结构变量的总长度是各成员长度之和.而在“联合”中,各成员共享一段内存空间,一个联合变量的长度 ...
- 跨越DLL边界传递CRT对象潜在的错误
跨越DLL边界传递CRT对象潜在的错误 翻译:magictong(童磊)2013年5月 版权:microsoft 原文地址:http://msdn.microsoft.com/en-us/librar ...
- Delphi中,indy控件实现收发邮件的几点学习记录( 可以考虑加入多线程,用多个邮箱做一个邮箱群发器) 转
关于用Delphi中的Indy控件实现收发邮件的几点学习记录 这几天心里颇不宁静,不是因为项目延期,而是因为自己几个月前做的邮件发送程序至今无任何进展,虽然一向谦虚的人在网上发 ...
- qt获取网络ip地址的类
最近在学习qt网络编程,基于tcp和udp协议. 看了一些别人的程序和qt4自带的例子,困扰我最大的问题就是获取ip的类,总结起来还挺多的. 主要介绍常用的QtNetwork Module中的QHos ...
- 海康威视频监控设备Web查看系统(三):Web篇
声明:本系列文章只提供交流与学习使用.文章中所有涉及到海康威视设备的SDK均可在海康威视官方网站下载得到.文章中所有除官方SDK以为的代码均可随意使用,任何涉及到海康威视公司利益的非正常使用由使用者自 ...