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实现愈发迫在眉睫. 前端开发由于三大框架的崛 ...
随机推荐
- iOS UIScrollView使用Autolayout
最近项目在迭代更新的时候,需要在之前用Autolayout写的界面里添加一个button,添加完这个button后,iPhone5,iPhone4显示不全了.遇到整个问题后很自然就想到了用UIScro ...
- Hive-分组之后取前n个
1. 统计国家每个省份出现次数最高的5个城市的名称 直观思维来考虑: 把 数据组织成: 国家 省份 出现次数(倒序) 城市 row_number() 根据partition by 生 ...
- axure跨inframe传递参数
在global variable添加loginuser变量 在link to and external url or file添加如下:[[Item.action]]#loginuser=[[logi ...
- phpexcel导出超过26列解决方案
原文:phpexcel导出超过26列解决方案 将列的数字序号转成字母使用,代码如下: PHPExcel_Cell::stringFromColumnIndex($i); // 从o,1,2,3,.. ...
- SQLSERVER 数据库备份脚本-支持多库备份
原文:SQLSERVER 数据库备份脚本-支持多库备份 <pre name="code" class="sql">--变量定义 DECLARE @b ...
- win32界面程序开发,自制一个会自动销毁的提示框
思路:创建线程里面启动窗口,设置定时器关闭该窗口. 创建窗口几个步骤和一般窗口无异,注册.然后createwindow,之后showwinodw,然后消息循环. 在createwindow之后,获取到 ...
- VS使用的快捷方式
VS常用快捷键 1.回到上一个光标位置/前进到下一个光标位置 1)回到上一个光标位置:使用组合键“Ctrl + -”: 2)前进到下一个光标位置:“Ctrl + Shift + - ”. 2.复制/剪 ...
- 减少Qt编译时间暨简单Qt裁剪
本站所有文章由本站和原作者保留一切权力,仅在保留本版权信息.原文链接.原文作者的情况下允许转载,转载请勿删改原文内容, 并不得用于商业用途. 谢谢合作.原文链接:减少Qt编译时间暨简单Qt裁剪 编译一 ...
- idea 导入maven项目
1.import project 2.选择maven项目 3.选择第二个external moudle,选择maven, 4.点击next,一次点击1,2,3,4 5.设置maven环境 6.点击ok ...
- jquery中的DOM操作集锦
1,查找节点: 1 2 var $li = $("ul li:eq(1)");//查找元素 $li.attr("title"); //查找元素的属性值 2, ...