Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war

写在前面:

       本教程为2台全新阿里云服务器CentOS 6.8(以下称搭建Jenkins的为第1台服务器,可访问项目工程的为第2台服务器,以免混淆,没有说明的都是在第1台服务器root目录上操作,记得添加端口安全组和关闭防火墙),git仓库使用的是码云。

       整个教程包括了jdk、tomcat、Git、Maven、Maven私服、Jenkins、zookeeper等的搭建,全部代码手敲出来了,可适当跳过自己服务器已有技术的搭建。

       测试项目分为三个过程:jenkins-api、jenkins-service、jenkins-web,用的技术为SSM框架+dubbox+velocity模板引擎,其中jenkins-api需手动远程部署到maven私服,jenkins-service以jar包形式自动远程部署,jenkins-web以war包形式自动远程部署。

       教程所用到的软件和工程已全部打包,清单如下:
  • jdk-8u151-linux-x64.gz
  • apache-tomcat-8.0.50.tar.gz
  • git-2.8.0.tar.gz
  • jenkins.war
  • nexus-2.14.8-01-bundle.tar.gz
  • apache-maven-3.3.9-bin.tar.gz
  • settings.xml
  • zookeeper-3.4.6.tar.gz
     点击下载(由于jdk1.8太大,故没上传,自己网上找或者yum安装即可)
     测试项目用到的码云git地址:
[email protected]:null_480_9070/jenkins-api.git
[email protected]:null_480_9070/jenkins-service.git
[email protected]:null_480_9070/jenkins-web.git
一、jdk1.8搭建
①检测是否安装了jdk,若有需要将其卸载
java -version
②查看安装那些jdk
rpm -qa | grep java
③有则先卸载
安装jdk
下载或上传到root目录下
将其解压 tar -xvf jdk-8u151-linux-x64.gz
④安装依赖
yum install glibc.i686
⑥配置环境变量
编辑 vim /etc/profile ,在文件最后添加以下两行代码
export JAVA_HOME=/root/jdk1.8.0_151
export PATH=$PATH:$JAVA_HOME/bin
⑦保存退出,使更改的配置立即生效
source /etc/profile
⑧是否成功
java -version
二、git搭建
第一种方式:
yum install git
git --version
git config --global user.name "zhou8704"
git config --global user.email "[email protected]"
ssh-keygen -t rsa -C "[email protected]"
一路回车
cat ~/.ssh/id_rsa.pub 
添加公钥到码云(没有码云的先去注册个账号)
Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第1张图片
第二种方式:
下载:
wget https://github.com/git/git/archive/v2.8.0.tar.gz
tar -xvf v2.8.0.tar.gz
sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils- MakeMaker
cd git-2.8.0/
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
git --version
git config --global user.name "zhou8704"
git config --global user.email "[email protected]"
ssh-keygen -t rsa -C "[email protected]"
cat ~/.ssh/id_rsa.pub 
添加公钥到码云
三、Maven私服搭建
上传或下载地址:https://www.sonatype.com/oss-thank-you-tgz
tar -zxvf nexus-2.14.8-01-bundle.tar.gz
cd nexus-2.14.8-01
vim bin/nexus(第23行,修改并保存退出)
RUN_AS_USER=root
bin/nexus start 
访问登录:
第1台服务器地址:8081/nexus
用户名:admin 
密码:admin123 
Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第2张图片
访问仓库地址:
http://第1台服务器地址:8081/nexus/content/groups/public/
四、Maven搭建

上传或下载 wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

tar -zxvf apache-maven-3.3.9-bin.tar.gz
mv apache-maven-3.3.9 maven
编辑 vim /etc/profile ,在文件最后添加以下两行代码
M2_HOME=/root/maven
export PATH=${M2_HOME}/bin:${PATH}
source /etc/profile
mvn -v 
替换下setting.xml文件(注意:打包中的setting文件中有个地址需要替换成自己的maven私服地址)
Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第3张图片
cp /root/settings.xml /root/maven/conf/
五、jenkins搭建
(1)描述:代码clone(Git)、代码编译(Maven)、代码运行(Tomcat)的基本环境,这里使用war包方式部署运行
(2)安装tomcat:
下载或上传tomcat
tar -xvf apache-tomcat-8.0.50.tar.gz
mv apache-tomcat-8.0.50 tomcat 
(3)运行jenkins(这里采用war包形式,可到官网用其他形式安装)
官网下载或上传jenkins.war
cd /root/tomcat/
cp /root/jenkins.war /root/tomcat/webapps/
bin/startup.sh
日志查看(快捷键Ctrl+C返回):
tail -f logs/catalina.out
访问:

http://第1台服务器地址:8080/jenkins

cat /root/.jenkins/secrets/initialAdminPassword

Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第4张图片

Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第5张图片

Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第6张图片

(4)安装用到的jenkins插件

系统管理 - 插件管理 - 可选插件

        以下这些都需要安装:

  • Deploy to container插件
  • git plugin(推荐插件若安装成功,这里不用再次安装了)
  • SSH
  • Maven Integration

Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第7张图片

(5)配置免密登录:

使用ssh-keygen生成私钥公钥对,第1台服务器上操作
ssh-keygen -t rsa  
一直回车,有选择就确定输入y
查看生成的公钥
cat /root/.ssh/id_rsa.pub
将公钥推送到第2台服务器上
ssh-copy-id -i ~/.ssh/id_rsa.pub  root@第2台服务器地址
需要输入第2台服务器的密码
测试是否成功
ssh 第2台服务器地址
(6)第2台服务器上也要安装JDK和tomcat,步骤参照上面不再重复。
(7)第2台服务器上操作

①配置第2台服务器上的tomcat远程部署
cd /root/tomcat
vim conf/tomcat-users.xml (第37行添加以下代码,保存并退出)




把tomcat运行起来
bin/startup.sh
②上传脚本文件service-restaet.sh到第2台服务器
添加权限
chmod 777 service-restaet.sh
这里需要做一步操作,把window下的sh文件转成Linux下的,这样运行才不会报错
sed -i "s/\r//" service-restart.sh
新建一个item目录,等会用到。
mkdir item
③由于测试项目用到了dubbo,所以需要在第2台服务器上安装zookeeper(根据你的项目情况可选)
上传或下载zookeeper-3.4.6.tar.gz
tar zxf zookeeper-3.4.6.tar.gz
ll
cd zookeeper-3.4.6
mkdir data
cd conf
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
dataDir=/root/zookeeper-3.4.6/data
cd ../bin
./zkServer.sh start
(8)为自动化部署前做准备(根据你的项目情况可选)
记得把你电脑上maven的settings.xml文件替换掉
①由于测试项目jenkins-service用到了jenkins-api,需要把jenkins-api远程部署到maven私服
项目根目录下执行命令远程deployed到仓库
clean package -P json-log -Dmaven.test.skip=true
Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第8张图片
②由于中央仓库下载不到dubbox2.8.4版本,需要手动远程部署到maven私服
上传或下载dubbox2.8.4源码 https://github.com/dangdangdotcom/dubbox
先在pom.xml中加:
 
       
            releases
            Local Nexus Repository
            http://第1台服务器地址:8081/nexus/content/repositories/releases/
       

       
            snapshots
            Local Nexus Repository
            http://第1台服务器地址:8081/nexus/content/repositories/snapshots
       

   

然后当前项目根目录下执行命令进行deployed
mvn deploy -Dmaven.test.skip=true
Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第9张图片
(9)jenkins系统管理相关配置(回到jenkins页面,图片如果看不清点击可放大)
①系统管理 - 全局工具配置
  • 配置JDK
  • 配置Git
  • 配置Maven
Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第10张图片
Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第11张图片
②Credentials:
这里需要添加三个Credentials,后面会用到

Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第12张图片

                添加tomcat部署账号

Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第13张图片
添加root账号
Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第14张图片
添加git私钥
查看私钥并填写(第1台服务器上操作)
cat ~/.ssh/id_rsa
Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第15张图片
添加完后如下:
Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第16张图片
③系统管理 - 系统设置:
SSH设置
Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第17张图片
(10)新建maven任务并配置(jar包远程部署教程)
新建任务
Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第18张图片

项目地址git配置:

Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第19张图片

build:

Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第20张图片

以下是图中用到的代码

clean package -P json-log -Dmaven.test.skip=true

export JAVA_HOME=/root/jdk1.8.0_151
/root/service-restart.sh stop
rm -rf /root/item/*

scp -r ${WORKSPACE}/target/lib root@第2台服务器地址:/root/item
scp ${WORKSPACE}/target/jenkins-service.jar root@第2台服务器地址:/root/item

export JAVA_HOME=/root/jdk1.8.0_151
/root/service-restart.sh start
Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第21张图片

保存后,立即构建。

部署成功:

Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第22张图片

访问rest地址:

http://第2台服务器地址:31002/services/user/getUserByAll

Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第23张图片

(11)新建maven任务并配置(war包远程部署教程)
新建任务
Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第24张图片

项目配置:

Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第25张图片

Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第26张图片

部署成功:

Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第27张图片
访问地址:

http://第2台服务器地址:8080/jenkins-web

Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war_第28张图片

你可能感兴趣的:(Linux,JavaWeb)