自动化部署--Jenkins--远程布署(三)

一、Project不同图例的含义

  1. 什么是图例,就是构建状态和编译晴雨表


    图例

      了解这个对每个使用jenkins是非常有必要的,左边第一个蓝色球的表示上次构建的状态,当前蓝色表示成功。第二个太阳那个图标表示上次编译的晴雨表,类似天气预报的感觉。鼠标悬停小太阳,显示:构建稳定,当前没有构建失败。想要了解更多状态的含义,点击图例这个链接。


    图例说明

      由太阳变成雷阵雨图标。如果看到你项目变成阴云或者下雨,说明你的项目稳定性不好,就问题,就需要去查找问题,解决问题。

二、Jenkins自动构建部署项目到远程服务器

  1. Publish Over SSH用于连接远程服务器
  2. Deploy to container插件用于把打包的应用发布到远程服务器
  3. 构建项目,部署项目到远程服务器


    系统配置
新增配置
选择高级设置

高级添加
测试
名称 说明
Passphrase 服务器的密码
Path to key 连接远程服务器密钥文件的路径
Key 密钥文件的内容
Name 自定义服务器名
HostName 服务器IP外网地址
UserName 服务器用户名
Remote Directory 传输文件的目录,例: \nevo 该目录必须存在。

远程连接:

[root@localhost ~]# ssh [email protected]
[email protected]'s password: 

三、构建后操作

在Job设置中“添加构建步骤”里选择“Send files or execute commands over SSH”,即能够Job中使用Publish over SSH插件。


构建后操作

參数说明
Name
“系统管理>系统设置”设置的SSH Sverver的名字列表。
Source files
需要上传的文件(注意:相对于工作区的路径。看后面的配置可以填写多个,默认用,分隔)注意:如果是多成子目录的需要配置成 target//
拷贝到运程机上的文件。相对workspace的路径,也支持表达式,如上图中的“
/.jar”。

# 目录
/var/lib/jenkins/workspace/
# 配置为
**/**/target/*.jar

Remove prefix
移除目录(只能指定Transfer Set Source files中的目录,这里移除了target目录表示只将xxx.jar传到目标服务器,否则会在目标服务器创建target目录)。

# 配置为
nevo-config/target/

Remote directory
文件得到到远程机上的文件夹,此文件夹是相对于“SSH Server”中的“Remote directory”的。假设不存在将会自己主动创建。可以为空,如果不为空,将会自动在远程目录下创建目录,例:
远程目录配置为:\root Remote directory配置为: nevo 则会在目标服务器,生成目录:

root/nevo

Exec command:把你要执行的命令写在里面(这里的命令是在目标服务器上执行的)

参考二的脚本配置。

附:
启动tomcat脚本:

# 运行脚本
bash 脚本文件

内容:

#! /bin/bash
tomcat_home=/usr/local/tomcat-8
SHUTDOWN=$tomcat_home/bin/shutdown.sh
STARTTOMCAT=$tomcat_home/bin/startup.sh
echo "关闭$tomcat_home"
$SHUTDOWN
#杀死tomcat进程
ps -ef|grep $path|grep java|awk '{print $2}'|xargs kill -9 
#删除日志文件,如果你不先删除可以不要下面一行
rm  $tomcat_home/logs/* -rf
#删除tomcat的临时目录
rm  $tomcat_home/work/* -rf
sleep 5
echo "启动$tomcat_home"
$STARTTOMCAT
#看启动日志
#tail -f $tomcat_home/logs/catalina.ou

四、常见问题:

  1. must be present in all file paths
    原因:
    路径不可以带通配符。
    例:
    不可以为:
**/**/target/

必须为:

nevo-config/target/
  1. springboot项目用maven打包,为什么在生成jar包的同时还生产.original文件?
    原因:
    .jar.original是上一次打包的备份文件
    您还应该在target目录中看到一个更小的文件xxx-0.0.1-SNAPSHOT.jar.original。这是Maven在Spring Boot重新打包之前创建的原始jar文件。
    可以用jar tvf target/xxx-0.0.1-SNAPSHOT.jar.original查看文件内容。
    可以看出original文件只包含少量用户的类,不包含依赖。如果包含依赖的.jar叫 fat jar, 那这个就是瘦jar了。
    spring-boot:repackage,默认goal。在mvn package之后,再次打包可执行的jar/war,同时保留mvn package生成的jar/war为.original

  2. 需要加入spring-boot-maven-plugin这个插件
    root pom 指向的是最顶级的pom.xml
    clean install -pl 一极模块/二极模块 -am -amd -Pdev -Dmaven.test.skip=true
    这样就单独构建二极这个jar,相关依赖也会构建好,不用将依赖提前放入maven仓库。

  3. 多级模块构建

clean package -pl nevo-service/user-service -am
  1. spring boot通过命令行配置属性
java -jar xxx.jar --server.port=8888

通过使用–-server.port属性来设置xxx.jar应用的端口为8888。
在命令行运行时,连续的两个减号–就是对application.properties中的属性值进行赋值的标识。所以,java -jar xxx.jar --server.port=8888命令,等价于我们在application.properties中添加属性server.port=8888

java -jar xxx.jar --spring.profiles.active=test

指定配置文件。

你可能感兴趣的:(自动化部署--Jenkins--远程布署(三))