起名springboot(十六):使用Jenkins陈设Spring Boot

jenkins是devops神器,本篇小说介绍怎样设置和应用jenkins安顿Spring
Boot项目

git 删除分支和代码回滚

jenkins搭建 安插分为八个步骤;

1. git 去除分支

  本地分支删除

 git branch -D branch

  远程分支删除

 git push origin :branch  (origin 后面有空格)
  • 第一步,jenkins安装
  • 其次步,插件安装和安排
  • 第三步,Push SSH
  • 第⑤步,陈设项目

2. 代码回滚

  指的是将代码库某分支退回到原先的某部commit
id

  本地代码回滚

  git reset --hard commit-id  -->回滚到commit-id,将commit-id之后提交的commit都去除
  或
  git reset --hard HEAD~3     -->将最近3次的提交回滚

    远程代码回滚

   那些是必不可缺要说的始末,进程比地方回滚要复杂

  应用场景:自动陈设系统公布后发现难题,必要回滚到某一个commit,再另行宣布

  原理:先将本地分支退回到有个别commit,删除远程分支,再另行push本地分支

  操作步骤如下:

  git checkout the_branch
  git pull
  git branch the_branch_backup     //备份一下这个分支当前的情况
  git reset --hard the_commit_id    //把the_branch本地回滚到the_commit_id
  git push origin :the_branch      //删除远程 the_branch
  git push origin the_branch       //用回滚后的本地分支重新建立远程分支
  git push origin :the_branch_backup //如果前面都成功了,删除这个备份分支

第一步 ,jenkins安装

预备条件:

JDK:1.8
Jenkins:2.83
Centos:7.3
maven 3.5‘

jdk暗中同意已经设置实现

git 切换远程分支

git clone 命令只可以 clone 远程仓库的 master 分支,无法 clone
全体支行,想要 clone 之后切换来想要的支行上的化解办法如下:

  1. 进来或许创立二个完完全全的目录,假诺为 javaProjects

  2. cd javaProjects

  3. git clone http://github.com/elastic/elastisearch.git,这样在
javaProjects 目录下获得三个 elasticsearch 子目录

  4. cd elasticsearch

  5. git branch -a ,含义是列出全数支行的名目

  6. git checkout -b dev origin/dev, 作用是 checkout 远程仓库的 dev
分支,在当地起名为 dev 分支,并切换来地头的 dev 分支上

 

配置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
==============================
#以下为: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服务器

第3遍开发银行Jenkins时,出于安全考虑,Jenkins会自动生成二个随机的依据口令。在意控制台出口的口令,复制下来,然后在浏览器输入密码:

INFO: 

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

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

0cca37389e6540c08ce6e4c96f46da0f

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

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

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

起名 1

输入:0cca37389e6540c08ce6e4c96f46da0f

进去用户自定义插件界面,建议选用设置官方推荐插件,因为安装后本人也得设置:

起名 2

接下去是跻身插件安装速度界面:

起名 3

插件叁遍只怕不会完全安装成功,能够点击Retry再度安装。直到全部设置成功

起名 4

伺机一段时间之后,插件安装到位,配置用户名密码:

起名 5

输入:admin/admin

系统一管理理-》全局工具配置 jdk路径,

起名 6

第③步,插件安装和布置

有无数插件都是选项的默认的装置的,所以以后急需大家设置的插件不多,Git
plugin和Maven Integration plugin,publish over SSH、SSH插件。

插件安装:系统一管理理 > 插件管理 >
可选插件,勾选须求设置的插件,点击直接设置恐怕下载重启后安装

起名 7

配置全局变量

系统一管理理 > 全局工具配置

JDK

布局本地JDK的不二法门,去掉勾选自动安装

起名 8

Maven

配备本地maven的门径,去掉勾选自动安装

起名 9

别的内容能够依据本身的景况接纳设置。

配置 SSH免登陆

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公钥认证成功。

第三步,Push SSH

系统一管理理 > 系统安装

选择 Publish over SSH

起名 10

Passphrase 不用安装
Path to key 写上扭转的ssh路径:/root/.ssh/id_rsa

下面的SSH Servers是重点

Name 随意起名代表这些服务,待会要遵照它来选则
Hostname 配置应用服务器的地方
Username 配置linux登陆用户名
Remote Directory 不填

点击下方扩大能够加上八个应用服务器的地点

第4步,铺排项目

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

起名 11

江湖选拔创设贰个maven项目,点击鲜明。

勾选废弃旧的营造,采取是不是备份被替换的旧包。作者那里选择备份方今的十二个

起名 12

源码管理,选取svn,配置SVN相关新闻,点击add能够输入svn的账户和密码

起名 13

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

营造环境中勾选“Add timestamps to the Console
Output”,代码营造的长河中会将日志打印出来

起名 14

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

clean install -Dmaven.test.skip=true -Ptest

意思是:排除测试的包内容,使用后缀为test的配备文件。

起名 15

Post Steps 选择 Run only if build succeeds

起名 16

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

起名 17

Name接纳方面配置的Push SSH

起名 18

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

亟需在应用服务器创建文件夹:Jenkins-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旧项目,删除旧项目,运维新品类,备份老项目。

全文完。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图