龙空技术网

Jenkins自动化完整流程,从Jenkins服务到部署项目

芝麻粉 700

前言:

如今小伙伴们对“ubuntu安装jdk901”大约比较关切,同学们都需要了解一些“ubuntu安装jdk901”的相关知识。那么小编同时在网络上汇集了一些有关“ubuntu安装jdk901””的相关文章,希望大家能喜欢,我们快快来学习一下吧!

阅读本文前可以先看看之前的三篇

Jenkins 在 docker 容器中安装

Jenkins 安装中文插件

Jenkins 之更换新的登录页

启动 jenkins 服务容器

这里开放多个端口

root@ubuntu:/# root@ubuntu:/# docker run -d \>   --name zmf_jenkins \>   -u root \>   -p 8090:8080 \>   -p 50000:50000 \>   -p 9001:9001 \>   -p 9002:9002 \>   -p 9003:9003 \>   -p 9004:9004 \>   -p 9005:9005 \>   -p 9006:9006 \>   -p 9007:9007 \>   -p 9008:9008 \>   -p 9009:9009 \>   -p 9010:9010 \>   -p 9011:9011 \>   -p 9012:9012 \>   --restart=always \>   -v /export/jenkins/data:/var/jenkins_home \>   -v /var/run/docker.sock:/var/run/docker.sock \>   --privileged=true \>   jenkinsci/blueocean67e76c3f3dd597901a94c1344084ac2d7cbafda7ce44de959713a0e07787d5a1root@ubuntu:/# root@ubuntu:/# docker ps -aCONTAINER ID        IMAGE                                      COMMAND                  CREATED             STATUS                      PORTS                                                                                NAMES67e76c3f3dd5        jenkinsci/blueocean                        "/sbin/tini -- /usr/…"   8 seconds ago       Up 6 seconds                0.0.0.0:9001-9012->9001-9012/tcp, 0.0.0.0:50000->50000/tcp, 0.0.0.0:8090->8080/tcp   zmf_jenkins

进入挂载目录下找到 jenkins 的两个配置文件 default.json、hudson.model.UpdateCenter.xml ,修改一下

root@ubuntu:/# root@ubuntu:/# cd /export/jenkins/data/root@ubuntu:/export/jenkins/data# lltotal 128drwxr-xr-x 15 root root  4096 Oct 26 05:31 ./drwxr-xr-x  3 root root  4096 Oct 26 05:27 ../drwxr-xr-x  3 root root  4096 Oct 26 05:31 .cache/-rw-r--r--  1 root root   475 Oct 26 05:31 com.cloudbees.hudson.plugins.folder.config.AbstractFolderConfiguration.xml-rw-r--r--  1 root root  1643 Oct 26 05:31 config.xml-rw-r--r--  1 root root  4323 Oct 26 05:31 copy_reference_file.logdrwxr-xr-x  3 root root  4096 Oct 26 05:31 .groovy/-rw-r--r--  1 root root   156 Oct 26 05:31 hudson.model.UpdateCenter.xml-rw-r--r--  1 root root   370 Oct 26 05:31 hudson.plugins.git.GitTool.xml-rw-------  1 root root  1712 Oct 26 05:31 identity.key.encdrwxr-xr-x  3 root root  4096 Oct 26 05:31 .java/-rw-r--r--  1 root root     7 Oct 26 05:31 jenkins.install.UpgradeWizard.state-rw-r--r--  1 root root   171 Oct 26 05:31 jenkins.telemetry.Correlator.xmldrwxr-xr-x  2 root root  4096 Oct 26 05:31 jobs/-rw-r--r--  1 root root     0 Oct 26 05:31 .lastStarteddrwxr-xr-x  4 root root  4096 Oct 26 05:31 logs/-rw-r--r--  1 root root   907 Oct 26 05:31 nodeMonitors.xmldrwxr-xr-x  2 root root  4096 Oct 26 05:31 nodes/drwxr-xr-x 96 root root 24576 Oct 26 05:31 plugins/-rw-r--r--  1 root root    64 Oct 26 05:31 secret.key-rw-r--r--  1 root root     0 Oct 26 05:31 secret.key.not-so-secretdrwx------  4 root root  4096 Oct 26 05:31 secrets/drwxr-xr-x  2 root root  4096 Oct 26 05:31 updates/drwxr-xr-x  2 root root  4096 Oct 26 05:31 userContent/drwxr-xr-x  3 root root  4096 Oct 26 05:31 users/drwxr-xr-x 11 root root  4096 Oct 26 05:31 war/drwxr-xr-x  2 root root  4096 Oct 26 05:31 workflow-libs/root@ubuntu:/export/jenkins/data# 
hudson.model.UpdateCenter.xml 配置文件中,

把 改成

<?xml version='1.1' encoding='UTF-8'?><sites>  <site>    <id>default</id>            <!-- <url>;/url> -->    <url>;/url>  </site></sites>
updates/default.json 配置文件中,

"connectionCheckUrl":"; 改成 "connectionCheckUrl":";

重启 jenkins 服务

root@ubuntu:/# root@ubuntu:/# docker restart zmf_jenkinszmf_jenkinsroot@ubuntu:/# 

访问 jenkins 服务,

首次需找到默认的 admin 密码

root@ubuntu:/# cat /export/jenkins/data/secrets/initialAdminPassword a1651b17f0be42d78b803320eadc48fdroot@ubuntu:/# 

安装 jenkins 插件

1、中文插件,Localization: Chinese (Simplified)

操作路径,Manage Jenkins -> Manage Plugins -> 选择 Tab "Available" -> 搜索 Localization 关键字

2、Maven 插件,Maven Integration

创建用户

操作路径,系统管理 -> 管理用户 -> 新建用户

在 Jenkins 容器服务上创建公钥、密钥

进入 Jenkins 容器服务,创建公钥、密钥

root@ubuntu:~# docker exec -it zmf_jenkins /bin/bashbash-5.0#
bash-5.0# ssh-keygen -t rsa -C "xxxxxxxxx@qq.com"Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'.Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsaYour public key has been saved in /root/.ssh/id_rsa.pubThe key fingerprint is:SHA256:CdcdTQ/+N1DDQSzPYKPZ2CaY+EPz8v3P7atWOoJn4SY xxxxxxxxx@qq.comThe key's randomart image is:+---[RSA 3072]----+|            .o*=.||         . . Bo=.||      . o + O.B .||       + * = +.+ ||        S o o  .o||         + o   .o||          * o o  ||         E B = ..||          = o.++B|+----[SHA256]-----+bash-5.0# bash-5.0# cd .ssh/bash-5.0# ls -ltotal 8-rw------- 1 root root 2602 Oct 27 00:09 id_rsa-rw-r--r-- 1 root root  570 Oct 27 00:09 id_rsa.pubbash-5.0# 

把公钥配置到阿里云代码托管平台

操作路径,设置 -> SSH 公钥 -> 增加 SSH 公钥 -> 把在 jenkins 容器服务上生成的公钥添加进来

全局工具配置

操作路径,系统管理 -> 全局工具配置

1、JDK 配置

找到 Jenkins 容器服务上的自带的 jdk JAVA_HOME

bash-5.0# echo $JAVA_HOME/opt/java/openjdkbash-5.0#

2、Maven 配置

最后点击保存按钮

添加全局凭证

1、创建用于访问阿里云代码管理平台的凭证

操作路径,系统配置 -> Manage Credentials -> 添加凭据

创建任务

操作路径,新建任务

1、我们希望通过 maven 处理,需要先安装 maven 插件

2、选中“构建一个maven项目”,点击确定

3、选择源码管理,填入项目 git 地址和凭证(代码放在阿里云代码托管平台上)

4、先构建一版

第一次会有点慢,需要下载依赖包

5、配置 shell 脚本

操作路径,在项目中点击配置 -> Post Steps (构建后执行的操作)

Shell 脚本,这里要注意是 nohup 而不是 nohub

#!/bin/bash# 服务名称SERVER_NAME=jenkins_demo_app01# 源码打成jar包的路径,mvn打包完成之后,target目录下的jar包名称,# 也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行JAR_NAME=jenkins_demo_app01-0.0.1-SNAPSHOT# 源jar路径  #/var/jenkins_home/workspace--->jenkins 工作目录#demo 项目目录#target 打包生成jar包的目录JAR_PATH=/var/jenkins_home/workspace/jenkins_demo_app01/target# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建JAR_WORK_PATH=/var/jenkins_home/workspace/jenkins_demo_app01/targetecho "查询进程id-->$SERVER_NAME"PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`echo "得到进程ID:$PID"echo "结束进程"for id in $PIDdokill -9 $id  echo "killed $id"  doneecho "结束进程完成"#复制jar包到执行目录echo "复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATHecho "复制jar包完成"cd $JAR_WORK_PATH#修改文件权限chmod 755 $JAR_NAME.jarnohup  java -jar $JAR_NAME.jar

6、重新构建一版

1)此时会出现一个问题,Jenkins启动项目后会一直在转圈,但不影响项目接口的使用

2)将项目的启动方式改为后台启动即可,BUILD_ID=dontKillMe nohup java -jar $JAR_NAME.jar &,再构建

#!/bin/bash# 服务名称SERVER_NAME=jenkins_demo_app01# 源码打成jar包的路径,mvn打包完成之后,target目录下的jar包名称,# 也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行JAR_NAME=jenkins_demo_app01-0.0.1-SNAPSHOT# 源jar路径  #/var/jenkins_home/workspace--->jenkins 工作目录#demo 项目目录#target 打包生成jar包的目录JAR_PATH=/var/jenkins_home/workspace/jenkins_demo_app01/target# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建JAR_WORK_PATH=/var/jenkins_home/workspace/jenkins_demo_app01/targetecho "查询进程id-->$SERVER_NAME"PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`echo "得到进程ID:$PID"echo "结束进程"for id in $PIDdokill -9 $id  echo "killed $id"  doneecho "结束进程完成"#复制jar包到执行目录echo "复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATHecho "复制jar包完成"cd $JAR_WORK_PATH#修改文件权限chmod 755 $JAR_NAME.jarBUILD_ID=dontKillMe nohup  java -jar $JAR_NAME.jar &

以上有错误的地方欢迎指正!

标签: #ubuntu安装jdk901