加入收藏 | 设为首页 |

音乐在线听-Spring Boot 系列:运用 Jenkins 布置 Spring Boot

海外新闻 时间: 浏览:191 次

Jenkins 是 Devops 神器,本篇文章介绍怎么装置和运用 Jenkins 布置 Spring Boot 项目

Jenkins 建立、布置分为四个过程;

  • 第一步,Jenkins 装置
  • 第二步,插件装置和装备
  • 第三步,Push SSH
  • 第四步,布置项目

第一步 ,Jenkins 装置

预备环境:

JDK:1.8

Jenkins:2.83 Centos:7.3

maven 3.5

Jdk 默许现已装置完结

装备 Maven

版别要求 Maven3.5.0

软件下载

wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz

装置

## 解压

tar vxf apache-maven-3.5.0-bin.tar.gz

## 移动

mv apache-maven-3.5.0 /usr/local/maven3

修正环境变量, 在/etc/profile中增加以下几行

MAVEN_HOME=/usr/local/maven3

export MAVEN_HOME

export PATH=${PATH}:${MAVEN_HOME}/bin

记住履行source /etc/profile使环境变量收效。

验证 最终运转mvn -v验证maven是否装置成功

装备防护墙

封闭防护墙

#centos7

systemctl stop firewalld.service

=======================音乐在线听-Spring Boot 系列:运用 Jenkins 布置 Spring Boot=======

#以下为:centOS 6.5封闭防火墙过程

#封闭指令:

service iptables stop

#永久封闭防火墙:

chkconfig iptables off

两个指令一起运转,运转完结后检查防火墙封闭状况

service iptables status

Jenkins 装置

下载

cd /opt

wget http://mirrors.jenkins.io/war/2.83/jenkins.war

发动服务

java -jar jenkins.war &

Jenkins 就发动成功了!它的war包自带Jetty服务器

第一次发动 Jenkins 时,出于安全考虑,Jenkins 会主动生成一个随机的依照口令。留意控制台输出的口令,仿制下来,然后在浏览器输入暗码:

INFO:

*************************************************************

*************************************************************

*************************************************************

Jenkins initial setup is required. An admin user has been created and a password 音乐在线听-Spring Boot 系列:运用 Jenkins 布置 Spring Bootgenerated.

Please use the following password to proceed to installation:

0cca37389e6540c08ce6e4c96f46da0f

This may also be found at: /root/.jenkins/secrets/initialAdminPassword

*************************************************************

*************************************************************

*************************************************************

拜访 浏览器拜访:http://localhost:8080/

输入:0cca37389e6540c08ce6e4c96f46da0f

进入用户自定义插件界面,主张挑选装置官方引荐插件,由于装置后自己也得装置:

接下来是进入插件装置进展界面:

插件一次或许不会完全装置成功,能够点击Retry再次装置。直到悉数装置成功

等候一段时间之后,插件装置完结,装备用户名暗码:

输入:admin/admin

体系办理-》大局东西装备 jdk途径,

第二步,插件装置和装备

有许多插件都是挑选的默许的装置的,所以现在需求咱们装置的插件不多,Git plugin 和 Maven Integ音乐在线听-Spring Boot 系列:运用 Jenkins 布置 Spring Bootration plugin,publish over SSH。

插件装置:体系办理 > 插件办理 > 可选插件,勾选需求装置的插件,点击直接装置或许下载重启后装置

装备大局变量

体系办理 > 大局东西装备

JDK

装备本地 JDK 的途径,去掉勾选主动装置

Maven

装备本地maven的途径,去掉勾选主动装置

其它内容能够依据自己的状况挑选装置。

运用密钥方法登录方针发布服务器

ssh 的装备可运用密钥,也能够运用暗码,这儿咱们运用密钥来装备,在装备之前先装备好jenkins服务器和应用服务器的密钥认证 Jenkins服务器上生成密钥对,运用ssh-keygen -t rsa指令

输入下面指令 一向回车,一个矩形图形呈现就阐明成功,在~/.ssh/下会有私钥id_rsa和公钥id_rsa.pub

ssh-keygen -t rsa

将jenkins服务器的公钥id_rsa.pub中的内容仿制到应用服务器 的~/.ssh/下的 authorized_keys文件

ssh-copy-id -i id_rsa.pub 192.168.0.xx

chmod 644 authorized_keys

在应用服务器上重启 ssh 服务,service sshd restart现在 Jenkins 服务器可免暗码直接登陆应用服务器

之后在用 ssh B测验能否免密登录 B 服务器,假如仍是提示需求输入暗码,则有以下原因

  • a. 非 root 账户或许不支持 ssh 公钥认证(看服务器是否有约束)
  • b. 传过来的公钥文件权限不行,能够给这个文件授权下 chmod 644 authorized_keys
  • c. 运用 root 账户履行 ssh-copy-id -i ~/.ssh/id_rsa.pub 这个指令的时分假如需求输入暗码则要装备sshd_config

vi /etc/ssh/sshd_config

#内容

PermitRootLogin no

修正完后要重启 sshd 服务

service sshd restart

最终,假如能够 SSH IP 免密登录成功阐明 SSH 公钥认证成功。

上面这种方法比较复杂,其实在 Jenkins 后台直接增加操作即可,参阅下面方法

运用用户名+暗码方法登录方针发布服务器

(1)点击”高档”打开装备

(2)装备SSH的登陆暗码

装备完结后可点击“Test Configuration”测验到方针主机的衔接,呈现”success“则成功衔接,假如有多台应用服务器,能够点击”增加“,装备多个“SSH Servers” 点击“保存”以保存装备。

第三步,Push SSH

体系办理 > 体系设置

挑选 Publish over SSH

Passphrase 不必设置 Path to key 写上生成音乐在线听-Spring Boot 系列:运用 Jenkins 布置 Spring Boot的ssh途径:/root/.ssh/id_rsa

下面的 SSH Servers 是要点

  • Name 随意起名代表这个服务,待会要依据它来挑选
  • Hostname 装备应用服务器的地址
  • Username 装备 linux 登陆用户名
  • Remote Directory 不填

点击下方增加能够增加多个应用服务器的地址

第四步,布置项目

主页点击新建:输入项目名称

下方挑选构建一个 Maven 项目,点击确认。

勾选丢弃旧的构建,挑选是否备份被替换的旧包。我这儿挑选备份最近的10个

源码办理,挑选 SVN,装备 SVN 相关信息,点击 add 能够输入 SVN 的账户和暗码

SVN 地址:http://192.168.0.xx/svn/xxx@HEAD,@HEAD意思取最新版别

构建环境中勾选“Add timestamps to the Console Output”,代码构建的过程中会将日志打印出来

在 Build 中输入打包前的 mvn 指令,如:

clean ins林正英僵尸电影全集国语高清tall -Dmaven.test.skip=true -Ptest

意思是:扫除测验的包内容,运用后缀为 test 的装备文件。

Post Steps 挑选 Run only if build succeeds

点击Add post-build step,挑选 Send files or execute commands over SSH

Name 挑选上面装备的 Push SSH

Source files装备:target/xxx-0.0.1-SNAPSHOT.jar 项目jar包名 Remove prefix:target/ Remote directory:Jenkins-in/ 代码应用服务器的目录地址, Exec command:Jenkins-in/xxx.sh 应用服务器对应的脚本。

需求在应用服务器创立文件夹:J音乐在线听-Spring Boot 系列:运用 Jenkins 布置 Spring Bootenkins-in,在文件夹中仿制一下脚本内容:xxx.sh

DATE=$(date +%Y%m%d)

export JAVA_HOME PATH CLASSPATH

JAVA_HOME=/usr/java/jdk1.8.0_131

PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH

DIR=/root/xxx

JARFILE=xxx-0.0.1-SNAPSHOT.jar

if [ ! -d $DIR/backup ];then

mkdir -p $DIR/backup

fi

cd $DIR

ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9

mv $JARFILE backup/$JARFILE$DATE

mv -f /root/Jenkins-in/$JARFILE .

java -jar $JARFILE > out.log &

if [ $? = 0 ];then

sleep 30

tail -n 50 out.log

fi

cd backup/

ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf

这段脚本的意思,便是 kill 旧项目,删去旧项目,发动新项目,备份老项目