欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-03 18:21:34
...
写在前面:

       本教程为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地址:
aaa@qq.com:null_480_9070/jenkins-api.git
aaa@qq.com:null_480_9070/jenkins-service.git
aaa@qq.com: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 "aaa@qq.com"
ssh-****** -t rsa -C "aaa@qq.com"
一路回车
cat ~/.ssh/id_rsa.pub 
添加公钥到码云(没有码云的先去注册个账号)
Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war
第二种方式:
下载:
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 "aaa@qq.com"
ssh-****** -t rsa -C "aaa@qq.com"
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
访问仓库地址:
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
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

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

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

(4)安装用到的jenkins插件

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

        以下这些都需要安装:

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

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

(5)配置免密登录:

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

①配置第2台服务器上的tomcat远程部署
cd /root/tomcat
vim conf/tomcat-users.xml (第37行添加以下代码,保存并退出)
<role rolename="admin-gui" />
<role rolename="manager-gui" />
<role rolename="manager-script" />
<user username="tomcat" password="tomcat" roles="admin-gui, manager-gui, manager-script"/>
把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
②由于*仓库下载不到dubbox2.8.4版本,需要手动远程部署到maven私服
上传或下载dubbox2.8.4源码 https://github.com/dangdangdotcom/dubbox
先在pom.xml中加:
  <distributionManagement>
        <repository>
            <id>releases</id>
            <name>Local Nexus Repository</name>
            <url>http://第1台服务器地址:8081/nexus/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <name>Local Nexus Repository</name>
            <url>http://第1台服务器地址:8081/nexus/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>
然后当前项目根目录下执行命令进行deployed
mvn deploy -Dmaven.test.skip=true
Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war
(9)jenkins系统管理相关配置(回到jenkins页面,图片如果看不清点击可放大)
①系统管理 - 全局工具配置
  • 配置JDK
  • 配置Git
  • 配置Maven
Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war
Linux下使用Jenkins+Git+Maven+码云搭建自动化部署,可远程部署jar和war
②Credentials:
这里需要添加三个Credentials,后面会用到

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

                添加tomcat部署账号

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

项目地址git配置:

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

build:

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

以下是图中用到的代码

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 aaa@qq.com第2台服务器地址:/root/item
scp ${WORKSPACE}/target/jenkins-service.jar aaa@qq.com第2台服务器地址:/root/item

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

保存后,立即构建。

部署成功:

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

访问rest地址:

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

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

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

项目配置:

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

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

部署成功:

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

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

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

相关标签: jenkins Linux