从零搭建 jenkins 自动部署 java maven项目

第一次接触jenkins自动部署 maven项目,从度娘谷哥搜刮N多资料,经过一个多星期的(部署+删除)✖️N 过程,终于成功部署完成,现将整合过的部署过程傻瓜式列出(真的挺傻瓜的了[捂脸]),分享给大家参考(嗯,也是备份怕忘了 - -||)。

1. 准备系统 centos7

a. 建议使用mini系统

b. 查询本机ssh远程连接是否开启

执行命令:service sshd status

结果显示Active: active (running),说明已启动,请跳到下一步

结果显示Active: inactive (dead),说明未启动,执行命令:service sshd start

如果提示command not found,说明尚未安装netstat,执行命令:yum install net-tools,安装netstat工具,安装完成后,再次执行命令:service sshd status,根据返回结果进行处理

c. 查看本机ip地址,记录ip地址

执行命令:ip addr

d. ssh远程连接centos服务器(mac为例,windows请百度Linux Bash使用教程,或者找个客户端也行)

打开终端,执行命令:ssh 用户名@ip地址(例:ssh [email protected]) ,输入密码回车;

因为最终的生产环境是要部署服务器的,即使当前是本机的虚拟机centos7系统,也建议使用本机的远程工具连接虚拟机centos7来进行操作,提前熟悉ssh远程操作服务器

e. 更换yum的源,系统默认的 yum源 服务器在国外,速度慢,建议修改yum源为国内源。

i. 备份镜像源

cd /etc/yum.repos.d

mv CentOS-Base.repo CentOS-Base.repo.backup

ii. 替换镜像源(网易163源,也可以自行百度用阿里等其他的源,看个人喜好)

wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

mv CentOS7-Base-163.repo CentOS-Base.repo

iii. 清理,更新yum缓存

yum clean all 

yum makecache

yum -y update

f. 安装tab键shell补全增强:

执行命令:yum -y install bash-completion  bash-completion-extras

g. 安装vim

执行命令:yum -y install vim

h. 安装zip工具:

执行命令:yum -y install zip

执行命令:yum -y install unzip

2. 安装java:

首先,到jdk官网上下载你想要的jdk版本,下载完成之后将需要安装的jdk安装包放到Linux系统指定的文件夹下,并且命令进入该文件夹下:

[root@localhost software]# ll

total 252664

-rw-r--r--. 1 root root  11830603 Jun  9 06:43 alibaba-rocketmq-3.2.6.tar.gz

-rw-r--r--. 1 root root  43399561 Jun  9 06:42 apache-activemq-5.11.1-bin.tar.gz

-rwxrw-rw-. 1 root root 185540433 Apr 21 09:06 jdk-8u131-linux-x64.tar.gz

-rw-r--r--. 1 root root   1547695 Jun  9 06:44 redis-3.2.9.tar.gz

-rw-r--r--. 1 root root  16402010 Jun  9 06:40 zookeeper-3.4.5.tar.gz

解压 jdk-8u131-linux-x64.tar.gz安装包

[root@localhost software]# mkdir -p /usr/lib/jvm

[root@localhost software]# tar -zxvf jdk-8u131-linux-x64.tar.gz -C /usr/lib/jvm

这里不建议用wget在linux中直接下载,Oracle官网jdk下载之前需要同意Oracle的安装协议,不然不能下载,但是用wget的方式,默认是不同意oracle安装协议, 下载下来的文件会有问题,在Linux上解压会提示失败,虽然可以通过修改文件后缀名的方式强制解压,但还是推荐走正常路线,先下载到自己本地电脑,然后用scp命令上传到服务器,再解压。

例如:scp /Users/00_centos/jdk-8u181-linux-x64.tar.gz root@服务器ip:/usr/lib/jvm/jdk-8u181-linux-x64.tar.gz

其次,设置环境变量

[root@localhost software]# vim /etc/profile

在最后面添加(这个不强制要求位置,放到最前面也可以):

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_131  

export JRE_HOME=${JAVA_HOME}/jre  

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  

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

再次,执行profile文件

[root@localhost software]# source /etc/profile

这样可以使配置不用重启即可立即生效

3. 安装jenkins

a. 打开http://www.jenkins.io,点击Download按钮,进入下载资源列表

b. 找到《Red Hat/Fedora/CentOS》,点击进入,最开始就是安装命令(3条)

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 (命令执行过程中有[y/d/N]提醒,输入y回车即可)

如果是linux系统是root用户登录,命令开始位置可以不用写 sudo

c. 依次执行三条命令,jenkins安装第一步完成,yum安装默认路径在 /usr/lib/jenkins 目录

执行命令:cd /usr/lib/jenkins 跳转到该目录;

执行命令:java -jar jenkins.war --httpPort=10010 启动jenkins

启动命令参数说明:java -jar 是执行war文件,--httpPort是修改启动端口,jenkins的默认端口是8080,如果不修改端口,只执行 java -jar jenkins.war 也是可以的;

最后结果显示Jenkins is fully up and running 表示jenkins启动成功,另外,结果中有被两串******间隔起来的的密码,及密码所在的文件路径,这个是jenkins的初始化验证密码

d. 在自己电脑打开浏览器,输入 http://ip:10010 打开jenkins的初始化界面

i. 如果提示无法连接到服务器,终端输入命令:firewall-cmd --list-ports 查看10010端口是否开放,如果没有,则执行命令:firewall-cmd --zone=public --add-port=10010/tcp --permanent 添加10010端口开放,然后执行命令:firewall-cmd --reload 重启防火墙使端口设置生效

ii. 如果不是正式服务器,也可以直接关闭防火墙,执行命令:systemctl stop firewalld.service 停止防火墙,执行命令:systemctl disable firewalld.service 禁止防火墙开机启动

iii. 如果是云服务器部署,除了系统防火墙之外,需要检查ecs的安全组设置,配置10010端口

e. 在浏览器的jenkins初始化界面输入验证密码(密码位置界面有提醒,到centos服务器中找);

下一步选择左边,安装推荐的插件(基本都是需要装的),如果有安装失败的插件,就在右下角点重新安装,直到所有插件安装成功,自动跳转到下一步用户注册;

填写系统信息,用户名、密码、全名、邮箱(eg:admin),点击保存并完成,点击开始使用jenkins;OK jenkins安装完成。

f. 安装额外的jenkins插件

系统管理>插件管理,点击“可选插件”选项卡,在右上角过滤中输入 Rebuilder 找到Rebuilder并勾选,再输入 Safe 找到Safe Restart 并勾选,然后点击左下角立即安装,等待安装完成。

g. 配置jenkins用户

i. 系统管理>管理用户>新建用户,创建一个普通用户(eg:buyer)

ii. 系统管理>全局安全配置,找到“授权策略”,将默认的“登录用户可以做任何事”改选为“安全矩阵”

iii. 在添加用户/组位置,输入 系统用户 (admin),点击添加,勾选所有权限;输入 新建的普通用户(buyer),勾选除了管理员权限(Administer Read)之外的其他权限;

iv. 配置完成后,点击左下角保存按钮,保存配置

h. 配置凭据(git用)

凭据>系统,点击右侧“全局凭据”,点击左侧“添加凭据”,输入git的账号密码

i. 配置jdk

系统管理>全局工具配置,右侧点击【JDK安装】按钮,输入别名(jdk8u181),输入JAVA_HOME值(/usr/lib/jvm/jdk1.8.0_181),点击 【Save】按钮保存更改

4. 安装tomcat

a. 执行命令:cd /usr/local 进入用户目录;

b. 执行命令:mkdir tomcat 创建tomcat文件夹;

c. 执行命令:cd tomcat 进入文件夹

d. 执行命令: wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.10/bin/apache-tomcat-9.0.10.zip 下载tomcat(这里是tomcat9的下载地址,其他版本可以到tomcat官网,找到对应版本,找Core下的zip下载地址并复制)

e. 执行命令:unzip apache-tomcat-9.0.10.zip (unzip是解压命令,将下载的tomcat压缩包解压到当前目录)

f. 执行命令:cd /usr/local/tomcat/apache-tomcat-9.0.10 进入tomcat目录

g. 执行命令:chmod 755 -R bin 更改tomcat的bin目录内文件权限

h. 执行命令:cd /usr/local/tomcat/apache-tomcat-9.0.10/bin 进入tomcat的bin目录

i. 执行命令:./startup.sh 启动tomcat

5. 安装maven

a. 执行命令:cd /usr/local 进入用户目录;

b. 执行命令:mkdir maven 创建maven文件夹;

c. 执行命令:cd maven 进入文件夹

d. 执行命令: wget http://mirrors.shu.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.zip 下载maven(下载地址请到官网复制:http://maven.apache.org/download.cgi)

e. 执行命令:unzip apache-maven-3.5.4-bin.zip (unzip是解压命令,解压到当前目录)

f. 执行命令:vim /etc/profile 打开系统环境配置文件,在文件末尾,增加环境变量:

MAVEN_HOME=/usr/local/maven/apache-maven-3.5.4

export MAVEN_HOME

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

g. 执行命令:source /etc/profile 使修改的系统环境配置文件生效

6. 安装git

a. 执行命令:yum -y install git

b. 配置git的昵称和邮箱账户

git config --global user.name "feng"

git config --global user.email "[email protected]"

github还需要配置ssh,这里我用的是bitbucket,用的https ,没有用ssh,就不做ssh配置了,如有需要请自行百度

7. jenkins新建任务,配置git

a. 进入jenkins首页,点击创建新任务

b. 输入任务名称 buyer(建议用项目名字),选择“构建一个自由风格的软件项目”,点击“确定”

c. 源码管理选择git

i. Repository URL 输入https://[email protected]/team/buyer_java.git(bitbucket项目的HTTPS地址);

ii. Credentials 选择之前已经配置好的 bitbucket凭据(github也是类似的操作);

iii. Additional Behaviours,点击Add,选择“Check out to a sub-directory”,填写从bitbucket拉取的项目文件要存放的子目录地址 buyer

d. 增加构建步骤,选择执行shell,在输入框中输入要执行的shell命令,如下:

#任务执行完成后,不关闭jenkins服务

BUILD_ID=DONTKILLME

source /etc/profile

#配置运行参数

export PROJ_PATH=`pwd`

export TOMCAT_APP_PATH=/usr/local/tomcat/apache-tomcat-9.0.10

#运行部署脚本(这个是存放在项目中的脚本文件)

sh $PROJ_PATH/项目根目录名称/deploy.sh 

8. 编写自动化任务(shell语句),即 项目根目录/deploy.sh ,shell命令不强制,仅做参考,可以根据自己需要编写,文件样例内容如下:

    #!/usr/bin/env bash

    #编译+部署springboot站点

    

    #需要配置如下参数

    # 项目路径,再Execute Shell 中配置项目路径,pwd可以获得该项目路径

    # export PROJ_PATH=这个jenkins任务在部署机器上的路径

    

    # 输入你的环境上tomcat的全路径

    # export TOMCAT_APP_PATH=tomcat在部署机器上的路径

    

    ### base 函数

    killTomcat()

    {

        pid=`ps -ef|grep tomcat|grep java|awk '{print $2}'`

        echo "tomcat Id list :$pid"

        if [ "$pid"="" ]

        then

            echo "no tomcat pid alive"

        else

            kill -9 $pid

        fi

    }

    cd $PROJ_PATH/buyer

    mvn clean install

    

    # 停止tomcat

    killTomcat

    

    # 备份原有工程

    TS=`date +%Y%m%d%H%M%S`

    BAKDIR=/usr/local/buyer_bak/$TS/

    mkdir -p  $BAKDIR

    cp $TOMCAT_APP_PATH/webapps/ROOT $BAKDIR

    cp $TOMCAT_APP_PATH/webapps/ROOT.war $BAKDIR

    

    # 删除原有工程

    rm -rf $TOMCAT_APP_PATH/webapps/ROOT

    rm -f $TOMCAT_APP_PATH/webapps/ROOT.war

    

    # 复制新工程

    cp $PROJ_PATH/buyer/target/buyer-0.0.1-SNAPSHOT.war $TOMCAT_APP_PATH/webapps/

    

    # 重命名执行文件

    cd $TOMCAT_APP_PATH/webapps/

    mv buyer-0.0.1-SNAPSHOT.war ROOT.war

    

    # 启动tomcat

    cd $TOMCAT_APP_PATH/

    sh bin/startup.sh

    

9. 安装已全部完成,接下来可以执行自动化任务进行测试了。

猜你喜欢

转载自www.cnblogs.com/feng-blog/p/9556013.html