目录html
最新的JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 没帐号注册一个,很快的java
jdk-8u121-linux-x64.tar.gz
这里选择Linux64位后缀tar.gz的复制下载连接,在服务器上解压配置环境变量vim /etc/profile写在最后面mysql
JAVA_HOME=/data/java/jdk的目录名字 #java目录是我建立的,把jdk包解压到里面,这个写解压位置的绝对路径 CLASSPATH=$JAVA_HOME/lib/ PATH=$JAVA_HOME/bin:$PATH #谨慎,这里PATH写错了会发现命令都得打绝对路径才能用,悲催 export PATH JAVA_HOME CLASSPATH
配置没问题完成保存,source /etc/profile让配置的环境变量生效,这时候能够打命令java -version看看版本,是否是出java version "1.8.0_***",若是是1.6什么的说明没生效,看看解压的路径。linux
备注:若是是centos偏高的版本,会自带jdk,建议卸载重装jdk版本(jenkins须要jdk安装目录,本人查了很久没查到jdk安装目录),具体操做可参照此博客git
使用CentOS7卸载自带jdk安装本身的JDK1.8web
1.查看yum库中都有哪些jdk版本(暂时只发现了openjdk)spring
[root@localhost ~]# yum search java|grep jdk ldapjdk-javadoc.x86_64 : Javadoc for ldapjdk java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment java-1.8.0-openjdk-headless.x86_64 : OpenJDK Runtime Environment java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle ldapjdk.x86_64 : The Mozilla LDAP Java SDK
2.选择版本,进行安装sql
//选择1.7版本进行安装shell
[root@localhost ~]# yum install java-1.8.0-openjdk
//安装完以后,默认的安装目录是在: /usr/lib/jvm/java-1.8.0-openjdk-1.7.0.75.x86_64apache
3.设置环境变量
[root@localhost ~]# vi /etc/profile
在profile文件中添加以下内容
#set java environment JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.75.x86_64 JRE_HOME=$JAVA_HOME/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATH
让修改生效
[root@localhost java]# source /etc/profile
下载地址
http://maven.apache.org/download.cgi
版本 apache-maven-3.3.9 -bin.tar.gz
tar -xvf apache-maven-3.3.9-bin.tar.gz mv apache-maven-3.3.9 /usr/local/apache-maven
文件存放好以后,设置环境变量,打开etc/profile,在文件中加入下边的代码:
写入环境变量
vi /etc/profile
最后一行加入
这个前提是安装了java1.8
export MAVEN_HOME=/usr/local/maven3 export PATH={MAVEN_HOME}/bin:{PATH}
再执行
source /etc/profile
验证安装是否成功,下面是成功的显示方式:
[root@localhost ~]# mvn -v Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00) Maven home: /usr/local/maven3 Java version: 1.8.0_181, vendor: Oracle Corporation, runtime: /usr/local/java/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo yum -y install apache-maven
centos自带Git,7.x版本自带git 1.8.3.1(应该是,也可能不是),安装新版本以前须要使用yun remove git卸载(安装后卸载也能够)。 (本人用的就是自带的git,没遇到其余问题,小伙伴们能够本身玩)
若是不肯定的的话,检查git 是否已经安装
git --version
若是没有的话能够,能够经过下列操做安装git
一、安装所需软件包
sudo su yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum install gcc perl-ExtUtils-MakeMaker
二、下载&安装
cd /usr/src # wget https://www.kernel.org/pub/software/scm/git/git-2.7.3.tar.gz(git版本,本文章以2.7.3为准) tar xzf git-2.7.3.tar.gz cd git-2.7.3 make prefix=/usr/local/git all # make prefix=/usr/local/git install echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc # source /etc/bashrc(此处使用须要用到的用户下执行,不在必需要root,若是是root用户那么只能在root下使用git,其它用户会有问题)
三、检查版本
git --version
(1)设置Git的user name和email:(若是是第一次的话)
$ git config --global user.name "zhizhao" $ git config --global user.email "zhizhao@ahgxtx.com"
(2)生成密钥
大多数 Git 服务器都会选择使用 SSH 公钥来进行受权。系统中的每一个用户都必须提供一个公钥用于受权,没有的话就要生成一个。生成公钥的过程在全部操做系统上都差很少。首先你要确认一下本机是否已经有一个公钥。
SSH 公钥默认储存在帐户的主目录下的 ~/.ssh 目录。进去看看:
[root@localhost ~]# cd /root/.ssh/ [root@localhost .ssh]# ls id_rsa id_rsa.pub known_hosts
看一下有没有id_rsa和id_rsa.pub(或者是id_dsa和id_dsa.pub之类成对的文件),有 .pub 后缀的文件就是公钥,另外一个文件则是密钥。
假如没有这些文件,甚至连 .ssh 目录都没有,能够用 ssh-keygen 来建立。
$ ssh-keygen -t rsa -C "your_email@youremail.com" Creates a new ssh key using the provided email # Generating public/private rsa key pair. Enter file in which to save the key (/home/you/.ssh/id_rsa):
直接按Enter就行。而后,会提示你输入密码,以下(建议输一个,安全一点,固然不输也行,应该不会有人闲的无聊冒充你去修改你的代码):
Enter same passphrase again: [Type passphrase again]
完了以后,大概是这样:
Your public key has been saved in /home/you/.ssh/id_rsa.pub. The key fingerprint is: # 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@youremail.com
到此为止,你本地的密钥对就生成了。
最后获得了两个文件:id_rsa和id_rsa.pub。
(3)添加ssh key到GitLab
打开gitlab,找到Profile Settings-->SSH Keys--->Add SSH Key,并把上一步中复制的内容粘贴到Key所对应的文本框,在Title对应的文本框中给这个sshkey设置一个名字,点击Add key按钮
(4) 到此就完成了gitlab配置ssh key的全部步骤,咱们就能够愉快的使用ssh协议进行代码的拉取以及提交等操做了
(5) 再试一下拉取代码和提交代码,应该就不须要输入密码了。
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins #等待安装时间较长,约25min
jenkins安装完毕
java #显示java参数即证实已安装jdk
[root@localhost ~]# rpm -ql jenkins /etc/init.d/jenkins /etc/logrotate.d/jenkins /etc/sysconfig/jenkins /usr/lib/jenkins /usr/lib/jenkins/jenkins.war /usr/sbin/rcjenkins /var/cache/jenkins /var/lib/jenkins /var/log/jenkins
jenkins安装路径
jenkins相关目录释义:
(1)/usr/lib/jenkins/:jenkins安装目录,war包会放在这里。
( 2 ) /etc/sysconfig/jenkins:jenkins配置文件,“端口”,“JENKINS_HOME”等均可以在这里配置。
(3)/var/lib/jenkins/:默认的JENKINS_HOME。
(4)/var/log/jenkins/jenkins.log:jenkins日志文件。
(1)查找jenkins端口
vim /etc/sysconfig/jenkins ## Type: integer(0:65535) ## Default: 8080 ## ServiceRestart: jenkins # # Port Jenkins is listening on. # Set to -1 to disable # JENKINS_PORT="8888"
查找到jenkins默认端口为8080,能够对其进行修改
(2)查看其余端口占用状况
[root@localhost ~]# netstat -ntlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 764/rpcbind tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1714/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1197/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1194/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1576/master tcp6 0 0 :::3306 :::* LISTEN 1845/mysqld tcp6 0 0 :::111 :::* LISTEN 764/rpcbind tcp6 0 0 :::22 :::* LISTEN 1197/sshd tcp6 0 0 ::1:631 :::* LISTEN 1194/cupsd tcp6 0 0 ::1:25 :::* LISTEN 1576/master
显示已被占用端口
被占用端口与jenkins端口8080无冲突,便可进入下一步启动jenkins
(3)启动jenkins
java -jar /usr/lib/jenkins/jenkins.war --httpPort=8080
(4)修改jenkins端口
若默认8080端口未被占用,可不修改
若端口已被占用,则修改端口为其余端口,并将对应端口开放
#端口改成8899 java -jar /usr/lib/jenkins/jenkins.war --ajp13Port=-1 --httpPort=8899
#启动 java -jar /usr/lib/jenkins/jenkins.war --httpPort=8899 #表示成功启动 INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1c810153: defining beans [filter,legacy]; root of factory hierarchy Aug 09, 2018 9:56:24 AM jenkins.InitReactorRunner$1 onAttained INFO: Completed initialization Aug 09, 2018 9:56:24 AM hudson.WebAppMain$3 run INFO: Jenkins is fully up and running
启动完成
(5)验证jenkins可否打开
在宿主机浏览器输入http://IP:Port
我这里输入:http://192.168.114.128:8080
(修改端口后输入:http://192.168.114.128:8899)
进入jenkins解密界面
[root@localhost ~]# cat /var/lib/jenkins/secrets/initialAdminPassword 264cecec9a2c4abb9ce4ba2de0d033d3
在服务器上面cat /root/.jenkins/secrets/initialAdminPassword会出现让输入的密码,一串数字字母,多等一会到出现下面界面,喝了口水,三分钟过去了,出现了接下来的界面
这个就是说推荐安装仍是本身选,须要的包后面能够装,我点了第一个,知道用什么插件点第二个也能够这样装的包少一点。安装的插件都在/root/.jenkins/plugins/下面。
直接选择continue as admin
开始使用,点击就会进来
备注:jenkins配置权限不对致使没法登录或者空白页面解决办法,若是出现
找到.jenkins/config.xml(个人是经过yum安装在root目录下面的,因此对应的目录是/root/.jenkins//config.xml,本人修改的是下列文件的第一条,若是有须要能够对应下面的权限作修改)文件: 替换为:
一、<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/> 这个权限对应“任何用户能够作任何事(没有任何限制)” 二、<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy"/> 这个权限对应“登陆用户能够作任何事” 三、<authorizationStrategy class="hudson.security.GlobalMatrixAuthorizationStrategy"> <permission>hudson.model.Hudson.Administer:test</permission> <permission>hudson.scm.SCM.Tag:test</permission> </authorizationStrategy> 这个权限对应 test用户能够是管理员、打标签权限。
admin用户登陆还不知道密码是什么,我猜是/root/.jenkins/secrets/initialAdminPassword这个里面的密码,http://这个地方打ip:8080/jenkins/user/admin/configure修改admin密码,也能够点系统管理,在里面找管理用户,点屏幕中上方的admin进去最下面修改密码保存。
若是在建立项目时候,没有“建立一个Maven 项目”的选项。下图是有这个选项的,若是没有
你须要安装Maven项目插件:Maven Integration plugin 。
点击“可选插件” 而后在右边的过滤输入框中输入搜索关键字: Maven Integration Plugin 或者 Pipeline Maven Integration Plugin ,搜索到了之后,点击直接安装,
安装完成后重启就行了。
系统管理 —— Global Tool Configuration —— 配置JDK、Git、Maven
JDK
填写别名:JDK
把自动安装
前的勾选去掉,在出现的JAVA_HOME
里输入:
Git
在Path to Git executable
若是不用git,能够点击Delete Git
,便可
Maven
填写别名:maven
去掉“自动安装”勾选框, 在MAVEN_HOME
输入:
最后点击save
按钮保存。
主目录
maven配置(仓库和一些maven打包的设置)
邮件设置(因为环境问题,小编没有测试本版块,有须要的童鞋能够本身动手试一试)。
出现下图,名字随便起,选择构建一个maven项目
这里面的小编的配置的是git ssh 方式配置的git 注意这里面须要的是本机生成的私钥(小编觉得是公钥,调试了半天)
点击add窗口
链接git,咱们是本身搭的gitlab,须要在gitlab上搜索ssh或者key,找到一个ssh keys字样的,把jenkins服务器的公钥放在上面,另外
ROOT POM:
1.jenkins只支持一个pom.xml构建,并且要是Git根目录下的相对文件,好比cms的tsbMngr项目打包的话,须要配置ROOT POM:tsbMngr/pom.xml,无论你怎么配,第一次界面会报错,不要紧,缘由是你本机尚未clone代码,若是clone成功后仍是报错,须要本身找下对应的相对路径了。
二、像cms这样的多pom项目,只有一个pom入口怎么办,小编贴一下我这边成功的案例(cms),就是在git根目录下新建一个pom.xml
文件,具体配置以下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.gx</groupId> <artifactId>tsb</artifactId> <version>2.0</version> <packaging>pom</packaging> <modules> <module>tsbMngr</module> <module>tsbService</module> </modules> </project>
Golds and options
: 对应的mvn打包命令,若是是经过配置文件的方式
例如:按环境名称创建配置文件目录
在src/main/resources目录下面,按照环境名称创建配置文件目录。这里有两个环境:test、product。
具体的打包方式能够参考下面博客。
具体的脚本以下(以cms为例):
#!/bin/bash #defined TOMCAT_HOME="/home/software/apache-tomcat-8.0.53" TOMCAT_PORT=8080 PROJECT="tsb" JENKINS_WORKSPACE="/root/.jenkins/workspace/cms" WAR_HOME="/apps/jenkins_war" su service #echo "cp $JENKINS_WORKSPACE/target/&PROJECT.war $WAR_HOME" cp $JENKINS_WORKSPACE/tsbMngr/target/$PROJECT*.war $WAR_HOME cp $JENKINS_WORKSPACE/tsbService/target/$PROJECT*.war $WAR_HOME #shutdown tomcat (关闭tomcat) $TOMCAT_HOME/bin/shutdown.sh & #check tomcat process(查看tomcat对应的状态),下面提供了两种查看项目对应的pid sleep 3 #tomcat_pid="lsof - i :$TOMCAT_PORT|grep "(LISTEN)" | awk '{print $2}'' tomcat_pid=`ps -ef|grep tomcat|grep start|grep -v 'grep'|awk '{print $2}'` echo "scan tomcat pid :" $tomcat_pid while [ -n "$tomcat_pid" ] do kill -9 $tomcat_pid sleep 3 #tomcat_pid="lsof - i :$TOMCAT_PORT|grep "(LISTEN)" | awk '{print $2}'' tomcat_pid=`ps -ef|grep tomcat|grep start|grep -v 'grep'|awk '{print $2}'` echo "scan tomcat pid :" $tomcat_pid done #bak project echo "scan no tomcat pid,$PROJECT publishing" #备份War包 tar -czf $WAR_HOME/bak/$PROJECT-bak`date +%H%M%S`.tar.gz $TOMCAT_HOME/webapps/$PROJECT* sleep 10 rm -rf $TOMCAT_HOME/webapps/$PROJECT* $TOMCAT_HOME/webapps/$PROJECT*.war #publish project cp $WAR_HOME/$PROJECT*.war $TOMCAT_HOME/webapps #remove tmp rm -rf $WAR_HOME/$PROJECT*.war #cd $TOMCAT_HOME/webapps #jar -xvf $PROJECT.war #start tomcat export BUILD_ID=dontKillMe $TOMCAT_HOME/bin/startup.sh & echo "tomcat is starting.please try to access $PROJECT console url"
过程:jenkins调用git把Gitlab上的代码下载到jenkins服务器,maven构建成war包,调用ssh运行shell脚本完成备份,停服务,清webapps,拷war包到tomcat下,起服务,提及来好简单啊。。。
jenkins->选择你须要的job->Bulid with parameters
下列是成功的部分控制台日志:查看日志方式操做以下
git拉取代码成功以下所示:
Building in workspace /root/.jenkins/workspace/cms > /usr/bin/git rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository > /usr/bin/git config remote.origin.url git@192.168.1.189:OTT/CMS.git # timeout=10 Fetching upstream changes from git@192.168.1.189:OTT/CMS.git > /usr/bin/git --version # timeout=10 using GIT_SSH to set credentials > /usr/bin/git fetch --tags --progress git@192.168.1.189:OTT/CMS.git +refs/heads/*:refs/remotes/origin/* > /usr/bin/git rev-parse refs/remotes/origin/dev^{commit} # timeout=10 > /usr/bin/git rev-parse refs/remotes/origin/origin/dev^{commit} # timeout=10 Checking out Revision 99b2d4d19bb85e457db1ea38952782585200dd13 (refs/remotes/origin/dev) > /usr/bin/git config core.sparsecheckout # timeout=10 > /usr/bin/git checkout -f 99b2d4d19bb85e457db1ea38952782585200dd13 Commit message: "1:修改版本号为1.3.04 2:添加频道映射时,添加频作别称和标准频道名称是否一致的校验 3:系统出现异常,提示消息改成:系统异常,请联系管理员 4:添加mysql超过8小时自动断链后的处理 5:查询图标当有多个查询项时,修改显示位置 6:修改log表中content字段类型" > /usr/bin/git rev-list --no-walk 99b2d4d19bb85e457db1ea38952782585200dd13 # timeout=10
maven打包成功以下:
[INFO] Reactor Summary: [INFO] [INFO] tsbMngr 1.0.0 ...................................... SUCCESS [ 23.515 s] [INFO] tsbService 1.0.0 ................................... SUCCESS [ 13.606 s] [INFO] tsb 2.0 ............................................ SUCCESS [ 0.127 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 40.030 s [INFO] Finished at: 2018-08-18T10:06:46+08:00
启动shell成功脚本以下
[cms] $ /bin/bash /tmp/jenkins5969105122672253127.sh su: user service does not exist Aug 18, 2018 10:06:47 AM org.apache.catalina.startup.Catalina stopServer SEVERE: Could not contact localhost:8005. Tomcat may not be running. Aug 18, 2018 10:06:47 AM org.apache.catalina.startup.Catalina stopServer SEVERE: Catalina.stop: java.net.ConnectException: Connection refused (Connection refused) at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at java.net.Socket.<init>(Socket.java:434) at java.net.Socket.<init>(Socket.java:211) at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:457) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:398) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485) scan tomcat pid : scan no tomcat pid,tsb publishing tar: Removing leading `/' from member names tomcat is starting.please try to access tsb console url Tomcat started.
简单来理解是在jenkins的服务器上git拉取代码、maven打包,而后上传到远程服务器上,启动shell脚本部署的操做。
安装插
点击-系统管理-系统插件-可选插件中 直接搜 publish over ssh 点击安装,安装完以后,重启jenkins。
配置
点击- 系统管理-系统设置-拉到最下面就有这个窗口了,下列是我链接cms链接的环境配置,经过用户名密码链接的,能够经过其余方式链接。具体链接方式你们能够本身去试一试。
ssh Server配置:
startup.sh脚本以下:
TOMCAT_HOME="/home/jenkinstest/apache-tomcat-tsb" TOMCAT_PORT=8080 PROJECT="tsb" WAR_HOME="/home/jenkinstest/tmp" BAK_HOME="/home/jenkinstest/bak" su service #shutdown tomcat (关闭tomcat) $TOMCAT_HOME/bin/shutdown.sh & #check tomcat process(查看tomcat对应的状态),下面提供了两种查看项目对应的pid sleep 3 #tomcat_pid="lsof - i :$TOMCAT_PORT|grep "(LISTEN)" | awk '{print $2}'' tomcat_pid=`ps -ef|grep tsb|grep start|grep -v 'grep'|awk '{print $2}'` echo "scan tomcat pid :" $tomcat_pid while [ -n "$tomcat_pid" ] do kill -9 $tomcat_pid sleep 3 #tomcat_pid="lsof - i :$TOMCAT_PORT|grep "(LISTEN)" | awk '{print $2}'' tomcat_pid=`ps -ef|grep tsb|grep start|grep -v 'grep'|awk '{print $2}'` echo "scan tomcat pid :" $tomcat_pid done #bak project echo "scan no tomcat pid,$PROJECT publishing" #备份War包 tar -czf $BAK_HOME/$PROJECT-bak`date +%H%M%S`.tar.gz $TOMCAT_HOME/webapps/$PROJECT* sleep 10 rm -rf $TOMCAT_HOME/webapps/$PROJECT* $TOMCAT_HOME/webapps/$PROJECT*.war #publish project cp $WAR_HOME/$PROJECT*.war $TOMCAT_HOME/webapps #remove tmp rm -rf $WAR_HOME/$PROJECT*.war #cd $TOMCAT_HOME/webapps #jar -xvf $PROJECT.war #start tomcat export BUILD_ID=dontKillMe $TOMCAT_HOME/bin/startup.sh & echo "tomcat is starting.please try to access $PROJECT console url"
Name : 这里是自定义的ssh远程服务器,若是有多台,点击add post-build step 继续添加 Source files : 源文件地址,相对地址 好比 /root/.jenkins/workspace/jobname/target/xx.war 直接写成 target/xx.war就行 Remove prefix : 这里指的是忽略前面的 target/ 远程服务器直接显示就是xx.war Remote directory : 远程服务器要保存的文件目录 Exec command : 这里直接写 bash 脚本名称 xx.sh 这里也是远程服务器的脚本
下列是成功部署的控制台日志:
SSH: Connecting from host [localhost.localdomain] SSH: Connecting with configuration [tomcat-server] ... SSH: Disconnecting configuration [tomcat-server] ... SSH: Transferred 1 file(s) SSH: Connecting from host [localhost.localdomain] SSH: Connecting with configuration [tomcat-server] ... SSH: EXEC: STDOUT/STDERR from command [bash /home/jenkinstest/startup.sh] ... su: user service does not exist scan tomcat pid : scan no tomcat pid,tsb publishing tar: Removing leading `/' from member names tar: /home/jenkinstest/apache-tomcat-tsb/webapps/tsb*: Cannot stat: No such file or directory tar: Exiting with failure status due to previous errors tomcat is starting.please try to access tsb console url Tomcat started. SSH: EXEC: completed after 13,821 ms SSH: Disconnecting configuration [tomcat-server] ... SSH: Transferred 1 file(s) Finished: SUCCESS
注意:一、若是出现Transferred 0 file(s)请注意下你的 Source是jenkins的相对路径,Remote directory是远程服务器的相对路径,Exec command是服务器的绝对路径。
二、报错:请检查对应查找tomcat的脚本是否正确。
ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [2]] Build step 'Send build artifacts over SSH' changed build result to UNSTABLE
三、此报错信息是你的shell脚本的格式有问题,我这边的解决方案是:拷贝一份centos下tomcat的随便的.sh文件,而后修改,也能够本身修改,具体能够参考解决执行脚本报syntax error: unexpected end of file或syntax error near unexpected token `fi'错误的问题
start.sh: line 47: syntax error: unexpected end of file