1.简介:

    Jenkins 提供了数百个插件来支持构建、部署和自动化任何项目, 该项目致力于为最终用户和开

    发人员提供世界级的平台体验。这种体验的核心是Java,它是一种面向对象的编程语言,具有

    Java 虚拟机 (JVM)形式的跨平台运行时。

2.官网:

    官网连接:Jenkins

3.安装:

    Linux虚拟机上使用Docker安装Jenkins

  (1)搜索Jenkins镜像命令:docker search jenkins

  (2)拉取Jenkins镜像命令:docker pull jenkins/jenkins

  (3)查看Jenkins镜像命令:docker images

  (4)创建Jenkins目录命令:mkdir -p /data/jenkins_home/

  (5)授权Jenkins目录命令:chmod 777 /data/jenkins_home/

  (6)启动Jenkins容器命令:

     docker run -d -p 8090:8080 -p 50000:50000 
                -v /data/jenkins_home:/var/jenkins_home 
                -v /etc/localtime:/etc/localtime 
                -v /usr/local/apache-maven-3.6.3:/usr/local/apache-maven-3.6.3 
                -v /usr/local/java/jdk1.8.0_331:/usr/local/java/jdk1.8.0_331 
                --restart always 
                --name jenkins 
                jenkins/jenkins:latest

  (7)Jenkins界面初始化:

         (7.1)初始界面:

                     如图:Linux上输入命令vim /data/jenkins_home/secrets/initialAdminPassword,复制

                                密码

         (7.2)插件安装:

                      如图:                      

 

         (7.3)账号设置:

                      如图:                       

         (7.4)实例配置:

                      如图:

4.使用:

    前提准备:Linux虚拟机配置JDK、Maven环境

    profile文件配置:所在目录/etc

 #JDK环境配置
 export JAVA_HOME=/usr/local/java/jdk1.8.0_331
 export PATH=$JAVA_HOME/bin:$PATH
 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 #Maven环境配置
 export MAVEN_HOME=/usr/local/apache-maven-3.6.3
 export PATH=$MAVEN_HOME/bin:$PATH 

    如图:测试Linux虚拟机上的JDK、Maven环境

    

  (1)Jenkins基础配置:

         (1.1)Maven-settings设置:

                     如图:此路径为容器启动时已进行映射的路径 

                  

         (1.2)JDK设置:

                      如图:此路径为容器启动时已进行映射的路径 

                   

         (1.3)Maven设置:

                     如图:此路径为容器启动时已进行映射的路径

                  

         (1.4)SSH Server设置:

                     如图:Name为服务名(任意),Hostname为服务器ip,

                                Username为服务器登录名,Passphrase为服务器登录密码,

                                点击Test Configuration测试连接

                     

 

         (1.5)Jenkins安全设置:

                     如图:                

  (2)Jenkins插件配置:

            如图:安装必要插件SSH、Container,Subversion(非必要),安装完重启一下Jenkins

            

 

  (3)Jenkins项目配置:

         (3.1)创建项目:

                     如图:可根据自己需求去选择项创建              

         (3.2)项目描述:

                     如图:

                  

         (3.3)源码管理:

                     如图:Repository URL:项目在SVN位置地址,Credentials:SVN账号设置

                                Local module directory:存放项目本地目录, 图中'.'会在Jenkins         

                                的映射/data/jenkins_home根目录中创建workspace目录来存放项目

                    

 

         (3.4)构建触发器:

                     如图:身份验证令牌内容任意填               

         (3.5)BuildSteps:

                     如图:执行Maven命令clean install(-X:可用于追踪问题),进行清除、打包)

                   

        (3.6)SSH服务器配置:

                    如图:点击高级勾选Verbos(控制台中的详细输出,帮助追踪问题)

                               Transfer Set Source files(转移集源文件):任意填,

                               Remove prefix(删除前缀):任意填(均由脚本处理jar包位置)

                               Exec command(执行命令):启动项目服务的配置

                            

                               

                    start.sh启动脚本参考内容如下:

            echo 'jdk所在目录'
            export JAVA_HOME=/usr/local/java/jdk1.8.0_331
            echo ${JAVA_HOME}
            echo '根据jar包名查询对应的pid'
            pid_server_1=`ps -ef |grep java|grep server_1.jar|awk '{print $2}'`
            pid_server_2=`ps -ef |grep java|grep server_2.jar|awk '{print $2}'`
            pid_server_n=`ps -ef |grep java|grep server_n.jar|awk '{print $2}'`
            echo '杀掉对应的进程,如果pid不存在,则不执行'
            if [  -n  "$pid_server_1"  ];  then
                kill  -9  $pid_server_1;
            fi
            if [  -n  "$pid_server_2"  ];  then
                kill  -9  $pid_server_2;
            fi
            if [  -n  "$pid_server_n"  ];  then
                kill  -9  $pid_server_n;
            fi
            echo '删除原来的jar包'
            rm -rf /home/project/test/server_1.jar
            rm -rf /home/project/test/server_2.jar
            rm -rf /home/project/test/server_n.jar
            echo '将构建的jar包复制到指定目录下'
            cd /data/jenkins_home/workspace/test/server_1/target
            cp server_1.jar /home/project/test
            cd /data/jenkins_home/workspace/test/server_2/target
            cp server_2.jar /home/project/test
            cd /data/jenkins_home/workspace/test/server_n/target
            cp server_n.jar /home/project/test
            echo '运行构建的jar包'
            BUILD_ID=DONTKILLME
            cd /home/project/test
            nohup ${JAVA_HOME}/bin/java -jar server_gateway.jar                  
                  >>/home/project/test/nohup_1.out  &
            sleep 1
            nohup ${JAVA_HOME}/bin/java -jar service_user.jar 
                  >>/home/project/test/nohup_2.out  &
            sleep 1
            nohup ${JAVA_HOME}/bin/java -jar service_task.jar 
                  >>/home/project/test/nohup_n.out  &
            sleep 1
​

                    stop.sh停止脚本参考内容如下:

            echo '根据jar包名查询对应的pid'
            pid_server_1=`ps -ef |grep java|grep server_1.jar|awk '{print $2}'`
            pid_server_2=`ps -ef |grep java|grep server_2.jar|awk '{print $2}'`
            pid_server_n=`ps -ef |grep java|grep server_n.jar|awk '{print $2}'`
            echo '杀掉对应的进程,如果pid不存在,则不执行'
            if [  -n  "$pid_server_1"  ];  then
                kill  -9  $pid_server_1;
            fi
            if [  -n  "$pid_server_2"  ];  then
                kill  -9  $pid_server_2;
            fi
            if [  -n  "$pid_server_n"  ];  then
                kill  -9  $pid_server_n;
            fi

  (4)Jenkins项目部署:

         (4.1)部署问题:

                   (4.1.1)无法创建Maven本地库:

                                  如图:

                     

                                  解决办法:将Maven中settings的localRepository标签本地Maven仓库地址内

                                                    容改Jenkins容器内部地址为/var/jenkins_home/.m2

                   (4.1.2)拉取项目失败:

                                  如图:是由于Linux虚拟机防火墙是关闭的,导致无法拉取SVN仓库的项目

                                 

                                  解决办法:开启Linux虚拟机防火墙(命令:systemctl start firewalld),

                                                    即可正常拉取SVN仓库的项目

                   (4.1.3)文件无权限:

                                  如图:

                                  

                                  解决办法:chmod 777 文件名

                   (4.1.4)坏的解释器:

                                  如图:                                   

                                  或                                  

                                 

                                  或

                                 

                                  解决办法:sed 's/\r//' -i 文件名

         (4.2)部署成功:

                     如图:

                    

                    

                    

                     Linux上输入命令:ps -ef | grep java(查看对应服务是否启动)

         (4.3)访问项目:项目部署成功,但无法访问项目

                     解决办法:在Liunx虚拟机上添加一下部署项目的端口到防火墙中

                   (4.3.1)查看某端口是否开启:firewall-cmd --query-port=端口/tcp

                                  如图:

                                  

                   (4.3.1)添加某端口到防火墙:

                                  firewall-cmd --zone=public --add-port=端口/tcp --permanent

                                  注:--zone为作用域,--add-port为添加端口(格式:端口/通信协议)

                                         --permanent为永久生效

                                  如图:添加完端口,需重启一下Linux虚拟机       

                                  

                             

Logo

一站式 AI 云服务平台

更多推荐