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 
添加公钥到码云(没有码云的先去注册个账号)

第二种方式:
下载:
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 

访问仓库地址:
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私服地址)

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





(4)安装用到的jenkins插件

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

        以下这些都需要安装:

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


扫描二维码关注公众号,回复: 1635144 查看本文章

(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行添加以下代码,保存并退出)
<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

②由于中央仓库下载不到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

(9)jenkins系统管理相关配置(回到jenkins页面,图片如果看不清点击可放大)
①系统管理 - 全局工具配置
  • 配置JDK
  • 配置Git
  • 配置Maven
800

②Credentials:
这里需要添加三个Credentials,后面会用到

                添加tomcat部署账号


添加root账号

添加git私钥
查看私钥并填写(第1台服务器上操作)
cat ~/.ssh/id_rsa

添加完后如下:

③系统管理 - 系统设置:
SSH设置

(10)新建maven任务并配置(jar包远程部署教程)
新建任务

项目地址git配置:


build:


以下是图中用到的代码

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

保存后,立即构建。

部署成功:


访问rest地址:

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


(11)新建maven任务并配置(war包远程部署教程)
新建任务


项目配置:


部署成功:


访问地址:

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


猜你喜欢

转载自blog.csdn.net/zhou870498/article/details/80071626