首先登录到服务器,目前我所使用的program-DEV环境所在服务器为:IP     登录密码为:密码

1、基础配置

检查所有环境变量:

$ env

2、下载安装包安装

JDK:由于本机器已经安装,这里不在描述;

Tomcat :把tomcat下载安装包 (当前下载为tomcat-7.0.82)拷贝到 /work/tomcat/ 目录下,目前所有的安装文件全部安装在 /work/目录下,使用解压命令解压;

Jenkins:把下载好的jenkins.war (当前下载为 jenkins-2.46.1,为了访问方便,下载的时候全部使用jenkins,)扔在tomcat的webapp目录下面,这里使用 https://jenkins.io/download/ 下载地址,下载 
Red Hat/Fedora/CentOS 版本;

Maven :下载 maven下载安装包,扔在 /work/maven/  目录下,使用命令解压;

备注:上面所有安装包可以使用tar.gz包,也可以使用命令下载并安装,这里使用tar.gz方式下载后拖拽到服务器,并解压。

3、进入 tomcat 的bin 目录下,执行命令:

cd /work/tomcat/apache-tomcat-7.0.82/bin

启动tomcat,执行命令,完成jenkins部署:

sh startup.sh

4、在tomcat下配置jenkins访问端口以及权限

cd /work/tomcat/apache-tomcat-7.0.82/conf/

把 tomcat-users.xml 在 </tomcat-user>里面新增角色权限 <user username="admin" password="program_admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

把 server.xml 中的端口修改为自己使用端口,当前program使用端口为 7085,并在 <Connector port="7085" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8"/>中加入编码 URIEncoding="utf-8"

保存上面修改,并使之立即生效,执行命令: source /work/tomcat/apache-tomcat-7.0.82/conf/server.xml  和  source /work/tomcat/apache-tomcat-7.0.82/conf/tomcat-users.xml    

5、登录配置

登录当前jenkins,登录地址为自己服务器IP:端口号/jenkins,例如当前:http://IP:port/jenkins然后,首次进入jenkins如要输入密码,密码位置:/work/jenkins/secrets/initialAdminPassword

6、更新插件、用户、角色、工作

插件:系统管理 → 插件管理 → 可选插件 最右侧,输入关键字就可以查询,然后点击安装,安装完成所有的后,重启一下jenkins,重启方法为浏览器地址重启:http://IP:port/jenkins/restart

  • SVN
  • SSH
  • Publish Over SSH
  • Maven

安装这四个插件后加上刚才部署后默认的安装插件基本够用

用户:可以新建一个用户,输入用户名,密码,确认密码,用户名称,邮箱(都是必填项)

角色:安装角色插件,可选项

工作:这里是新建一个项目,这个也可以在登录后就新建,这里可能会出现点击异常,不用理会,你可以停掉后台的服务器,然后重启jenkins服务器来操作,目前我没有找到原因;

7、配置全局变量

点击 系统管理 → 全局设置,看到

主目录: /work/jenkins/workspace (这个是在服务器自己配置环境变量)

工作空间根目录: ${JENKINS_HOME}/workspace/${ITEM_FULLNAME}

构建记录根目录: ${ITEM_ROOTDIR}/builds

Maven项目配置

Local Maven Repository : Default (~/.m2/repository) (选择这个)

执行者数量:5 (任意配置)

生成前等待时间:5(任意配置)

SCM重试次数:2(任意配置)

Default View:All

Jenkins Location

这里配置是默认的配置

Publish over SSH(这里很重点)

在 SSH Servces 处新增一个服务SSH Server

name:IP-dev(自定义,我这里比较方便记忆,使用IP-环境)

Hostname:主机IP(这里使用IP,即服务器IP)

Username:登录名称(当前使用的登录的账号,例如:dev使用的是用户名称)

Remote Directory:/work(这里路径貌似也随意写,但是后面要注意逐级配对,例如这里是安装路径)

点开下面的高级 ,然后勾选 Use password authentication, or use a different key ,点击 Test Configuration,下面出现 Success即可。

到这里,基本上都配置完全局变量了,下面开始配置项目变量。

8、配置项目

General:在 6 新建了工作后,会出现在你的视图中,你可以点击进去,也可以在这里 新建 Enter an item name 任意输入名称,这个名称我个人感觉与你后面的配置要一致,不然出现错误,例如我这里是 gbss-webapp-admin;

勾选丢弃旧的构建,输入3 和 5,(这里根据需求任意输入)

源码管理:选择Subversion,Repository URL输入地址,Credentials 这里要新增一个你从SVN拉取代码的账号,其他不用配置;

Build:在Root POM项输入:pom.xml (这里选择maven构建),Goals and options 输入:clean install -Pdev

构建后操作:在增加构建后操作中选择:Send build artifacts over SSH 这个选择(这个选择无论是在一台机器还是两台机器都可以,如果jenkins部署与你的项目服务部署在一台机器,你也可以使用ant+deploy来部署);

在SSH Servce中选择全局变量 IP-dev(这个在7步骤里面有写),

在第一个Transfers Set中的Exec command中输入命令:

cp /*/*.war /work/backup/war/

这里是备份原来部署项目到备份文件夹,没有自己创建;

在最下面点击 Add Transfers Set会新增一个Set,这里是要执行的命令,也可以分开执行,我这里就一个Set操作了。

Source files:/jenkins部署新建项目/program-webapp/target/program*.war(源文件,指的是当前目录结构下面的jenkins中build文件)

Remove prefix:/jenkins部署新建项目/program-webapp/target (移除前缀,这个就是上一个源文件去掉*.war包前面部分,这里是这么写,具体含义我不清楚)

Remote directory:远程部署目录 (远程目录,这里指的是你要部署的位置)

Exec command:(这里是要执行的最后命令部分,如下)

cp /jenkins/*.war /work/jboss/*/*/deploy/
/work/*/*/*/stop.sh
sleep 10
/work/*/*/*/start.sh

先把jenkins生成的.war拷贝到服务器下面,

停掉服务器

等待线程结束(这里是需要的)

启动服务

以上就是 program盒子 jenkins + maven + svn + SSH + jdk + tomcat + jboss部署的全过程。其中 jboss 部署业务项目program,tomcat部署应用jenkins。

另外附几个我出现错误的解决方案:

一、

出现错误:
Jenkins 通过SVN update后报错FATAL: hudson.scm.SVNRevisionState cannot be cast to hudson.scm.SVNRevisionSt
解决方案:

http://blog.csdn.net/wangqicumt/article/details/78876279

二、

出现错误:

AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava.awt.headless=true"? See also: https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+got+java.awt.headless+problem
java.lang.UnsatisfiedLinkError

解决方案:

http://blog.sina.com.cn/s/blog_8ea8e9d50102xfrf.html

借鉴别人的配置:

http://blog.csdn.net/zl199307/article/details/75103488

https://www.cnblogs.com/Iqiaoxun/p/5350589.html

http://www.cnblogs.com/zz0412/p/jenkins02.html

http://www.cnblogs.com/zz0412/p/jenkins_jj_10.html

http://blog.csdn.net/wangmuming/article/details/22925895

https://www.cnblogs.com/toSeek/p/6714340.html?utm_source=itdadao&utm_medium=referral

Jenkins实现自动化部署的更多相关文章

  1. gitlab与jenkins的自动化部署(通过webhook与ansilble)

    gitlab与jenkins的自动化部署(通过webhook与ansilble) 1.部署介绍 gitlab服务器:192.168.1.49:80jenkins服务器:192.168.1.49:818 ...

  2. 搭建jenkins实现自动化部署

    搭建jenkins实现自动化部署 一.安装jenkins 1.添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo https://p ...

  3. CentOS下Docker与.netcore(四)之 三剑客之一Docker-machine+jenkins简单自动化部署

    CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.netcore(二) 之 Dockerfile CentOS下Docker与.netcore(三)之 三剑客 ...

  4. 基于 Jenkins Pipeline 自动化部署

    最近在公司推行Docker Swarm集群的过程中,需要用到Jenkins来做自动化部署,Jenkins实现自动化部署有很多种方案,可以直接在jenkins页面写Job,把一些操作和脚本都通过页面设置 ...

  5. jenkins搭建自动化部署平台(svn+tomcat重启)

    原文链接:http://blog.csdn.net/zjs40/article/details/51818322 jenkins 自动化部署和集成代码的平台 可以将Git svn 上的代码 check ...

  6. 基于【SpringBoot】的微服务【Jenkins】自动化部署

    最近,也是抽空整理了一些在工作中积累的经验,通过博客记录下来分享给大家,希望能对大家有所帮助: 一.关于自动化部署 关于自动化部署的优点,我就不在这里赘述了:只要想想手工打包.上传.部署.重启的种种, ...

  7. Linux文档整理之【Jenkins+Docker自动化部署.Net Core】

    这次整理的文档是Jenkins+Docker实现自动化部署,很早之前就写的,今天有时间就搬到博客园做个记录. Jenkins是基于Java开发的一种持续集成工具,主要用于持续.自动的构建/测试软件等相 ...

  8. SpringBoot项目 使用Jenkins进行自动化部署 (gitLab管理项目)_

    1.部署服务器创建好对应文件夹和启动脚本 创建文件夹 mkdir /wdcloud/app/rps/rps-module-category 创建启动脚本 cd /wdcloud/app/rps/rps ...

  9. Centos7.6上利用docker搭建Jenkins来自动化部署Django项目

    一般情况下,将一个项目部署到生产环境的流程如下: 需求分析-原型设计-开发代码-内网部署-提交测试-确认上线-备份数据-外网更新-最终测试,如果发现外网部署的代码有异常,需要及时回滚. 整个过程相当复 ...

  10. docker | jenkins 实现自动化部署项目,后端躺着把运维的钱挣了!(上)

    前言 背景 最近在帮学校导师写项目,团队有4个人,项目前后端分离.如果是选择瀑布式开发:(在约定好接口的情况下)A.B同学写前端,C.D同学写后端,然后约定一个时间统一联调,最后将项目交付安装到客户机 ...

随机推荐

  1. 天使玩偶:CDQ分治

    这道好(du)题(liu)还是很不错的 挺锻炼代码能力和不断优化 卡常的能力的. 对于 每次询问 我都可以将其分出方向 然后 写 也就是针对于4个方向 左下 左上 右下 右上 这样的话 就成功转换了问 ...

  2. 转:Eclipse 各种小图标的含义

    原文地址:https://www.cnblogs.com/widget90/p/7592507.html Eclipse 各种小图标的含义,记录一下. Eclipse的Package Explorer ...

  3. day1_接口测试基础

    一.什么是接口: 接口:一般分为两种,程序内部接口和程序对外接口 系统对外接口:系统与外部沟通,比如我们平时用的app,网站进行数据处理的时候都是通过接口调用后端服务器的数据. 程序内部接口:程序内部 ...

  4. ORACLE UNDO

    UNDO 数据操纵 数据操纵语言(DML)由以下SQL语句组成: INSERT,DELETE,UPDATE,MERGE DML始终作为事务处理的一部分执行,它可以: 使用Rollback命令执行回退 ...

  5. mysql 数据表操作 目录

    mysql 数据表操作 存储引擎介绍 mysql 使用存储引擎 mysql 数据表的增删改查 mysql 数据类型 mysql 约束条件

  6. 数字转换大写人民币的delphi实现

    function TForm1.changeRmb(const strRmb:string):string; var txt,strhighlevel:string; i,n,m,ilen,ipos: ...

  7. GPT转MBR怎么转?

    GPT转MBR分区怎么转?现在很多笔记本的硬盘分区都是GPT模式,如果想装XP的话,那只能将GPT磁盘转换成MBR磁盘分区才行.接下来,简单说说如何将GPT分区转成MBR分区! 如果本身电脑有两个硬盘 ...

  8. echart图表

    http://echarts.baidu.com/tutorial.html#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20ECharts

  9. 死锁与递归锁 信号量 event 线程queue

    1.死锁现象与递归锁 死锁:是指两个或两个以上的进程或线程在执行过程中,因争抢资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去,此时称系统处于死锁状态或系统产生了死锁,这些永远在互相 ...

  10. sap component 导航 链接

    1: 定义一个导航链接名字,这个名子如果在程序中遇到(该名字会在程序中使用),就会触发这样一个导航. 导航有两个view,一个原来的view,一个出发abc之后的target view,也就是目标视图 ...