首页 > 其他分享 >jenkins部署手册

jenkins部署手册

时间:2024-10-30 23:21:27浏览次数:6  
标签:name service 部署 手册 maven jenkins mvn software

文章目录

一、环境配置

资源配置

操作系统

18.04.6 LTS (Bionic Beaver)

资源配置

服务器

CPU: 8核

内存: 16 GB

磁盘: 300 GB sda[系统盘] 100GB, 默认分区

sdc[数据盘] 200GB 挂载点 /data

备注:数据盘需支持扩展

备注:无。

二、jenkins软件部署

2.1 下载软件包

jenkins官网下载地址

https://get.jenkins.io/war-stable/2.426.2/jenkins.war

2.2 启动jenkins

2.2.1 准备jdk环境

详细安装可参考: 离线部署jdk8,jdk17, jdk21

由于最新的jenkins都是基于java17,而我们项目还是用的Java8进行编译,所以需要下载两个jdk。

下载地址:

https://adoptium.net/zh-CN/temurin/archive/?version=17

在这里插入图片描述

分别下载java17 和 java8 ,传入服务器

解压java17,java8

mkdir -p /software/java/jdk8 && mkdir -p /software/java/jdk17

tar -xvf OpenJDK8U-jdk_x64_linux_hotspot_8u392b08.tar.gz

tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.9_9.tar.gz

mv jdk8u392-b08/\* /software/java/jdk8

mv jdk-17.0.9+9/\* /software/java/jdk17

2.2.2 准备maven环境

版本:maven-3.6.3

# 解压 
tar -xvf apache-maven-3.6.3-bin.tar.gz

mv apache-maven-3.6.3 /software

# 配置环境变量

vim /etc/profile

export JAVA_HOME=/software/java/jdk8

export MAVEN_HOME=/software/apache-maven-3.6.3

export PATH=\$PATH:\$MAVEN_HOME/bin:\$JAVA_HOME/bin

source /etc/profile

备注: 最开始选用的是3.9.9最新版本,但由于项目在maven打包的时候报错,所以降版本选用了3.6.3

创建软连接

root@guoqing:\~\# ln -s /software/apache-maven-3.6.0/bin/mvn /usr/bin/mvn

root@guoqing:\~\# ln -s /software/apache-maven-3.6.0/bin/mvn /usr/local/bin/mvn

因为Jenkins 通过shell脚本调用 mvn 命令的时候,是从/usr/bin 文件夹中找命令的;所以要建立这样的软链接

2.2.3 编写jenkins.service

vim /etc/systemd/system/jenkins.service

[Unit]
Description=Jenkins
After=network.target

[Service]
ExecStart=/software/java/jdk17/bin/java -jar -DJENKINS_HOME=/data/jenkins -Xmx2g  /software/jenkins/jenkins.war -Djava.awt.headless=true --httpPort=80 
User=root
Restart=always
SuccessExitStatus=143

[Install]
WantedBy=default.target

写入以上内容,保存

创建文件夹

mkdir -p /software/jenkins && mkdir -p /data/jenkins

对应的war包放入/software/jenkins文件夹中

systemctl daemon-reload

systemctl start jenkins

2.3 配置jenkins

由于使用root账号启动,所以可以用80端口,不需要nginx进行端口转发了。

访问 http://10.0.99.11 回车;会让你输入临时密码.

cat /data/jenkins/secrets/initialAdminPassword

安装必要插件

其中有两个插件需要额外的安装下

Git Parameter, Publish Over SSH

建议安装插件

Extended Choice Parameter Plugin(多选框)、Material Theme (好看的主题插件)

2.3.1 修改插件源(非必要不修改)

没有必要修改,如果你访问官网环境很差,可参考修改。

  1. 修改url为:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

  1. 修改default文件

把里面的连接修改下

sed -i 's/http:\/\/updates.jenkins.ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

重启jenkins使其生效

systemctl restart jenkins

2.3.2 配置环境变量

配置jdk

配置maven

注意修改maven的配置文件settings.xml。

配置使用私有nexus库;

需要先配置用户名密码

</servers>
   <server>
      <id>ccdc-dev</id>
      <username>dev-normal-01</username>
      <password>******</password>  
    </server>
  </servers>

再配置镜像源,注意id需要对应上

<mirrors>
	<mirror>
          <id>ccdc-dev</id>
          <mirrorOf>*</mirrorOf>
          <name>ccdc-私有镜像仓库</name>
          <url>http://10.0.99.187:1****/repository/maven-public/</url>
    </mirror>
 </mirrors>

上述的地址和密码均做了模糊处理,在配置时改为自己的;

2.3.3 配置Publish over SSH

将生成的公钥内容复制到对应服务器的/root/.ssh/authorized_keys文件中

image-20241030184529756

即可连接上对应的服务器;ssh免密登录。

比如10.0.99.124上已经配置了公钥。

提示连接成功

2.3.4 配置邮箱

QQ邮箱授权码:smnhssleav****

jenkins邮件提醒

2.4 创建job

先看最终效果

可做到打包指定微服务,选择分支,发往哪台服务器中;做到更加灵活的配置。

2.4.1 新建job

坑:这里没有用构建一个maven项目。我没有安装maven的插件,因为此插件在近年发布的jenkins版本中已经不支持java8 了。至少需要java11的版本,而我们项目是基于java8的。会导致mvn打包的时候一直报错。

2.4.2 参数化构建

新建字符参数

service_name

新建字符参数

新建git参数

在这里插入图片描述

新建选项参数

这个选项参数可结合下方的Send files or execute commands over SSH

做到选择部署到哪台服务器。

2.4.3 源码管理

添加凭证即可,注意URL不能写错。

2.4.4 build steps

1. 先创建shell脚本

#!/bin/bash
echo `pwd`
echo "${git_branch}当前的git分支"
if [ "$service_name" = "numen-gateway" ]; then
    /software/apache-maven-3.6.3/bin/mvn clean package -P ${mvn_profile} -pl ./numen-component/${service_name} -am -U -Dmaven.test.skip=true
else
    /software/apache-maven-3.6.3/bin/mvn clean package -P ${mvn_profile} -pl ./numen-modules/${service_name} -am -U -Dmaven.test.skip=true
fi

if (( $? ))
then
        echo "mvn package failed"
        exit 1
else
        echo "mvn package success"
        echo '$service_name build start...'
        local_path=`pwd`
        target_local="${local_path}/images/"
        mkdir -p $target_local
             
        echo 'build image start'
        _IID=$(docker images | grep "$service_name" | awk '{print $3}')
        if [ -n "$_IID" ]; then
            docker rmi "$_IID"
        fi
        if [ "$service_name" = "numen-gateway" ]; then
        	cd "${local_path}"/numen-component/"${service_name}" || exit
        else
        	cd "${local_path}"/numen-modules/"${service_name}" || exit
        fi
        docker build -t "$service_name" .
        echo "images目录为:${target_local}${service_name}.tar"
        docker save -o "${target_local}${service_name}".tar "$service_name":latest
        echo '部署完成'
        
fi

因为项目最终打包成docker镜像,所以服务器中也需要安装docker;

有关安装docker的教程可参考:

docker部署手册(离线)

2. Send files or execute commands over

  1. 配置参数与上述的选项参数关联

注意:这个插件的参数Source files 是针对工作空间来说的,并不支持绝对路径

把选项中的四台服务器均配置上去。

2.4.5 构建后操作

完全是为了节省磁盘空间.

至此部署配置完成;

标签:name,service,部署,手册,maven,jenkins,mvn,software
From: https://blog.csdn.net/tb_problem/article/details/143374601

相关文章

  • docker部署手册(离线)
    文章目录一、下载地址二、部署环境三、安装部署3.1上传安装包3.2解压3.3创建docker.service3.4创建daemon.json文件3.5授权3.6启动3.7查看信息3.8设置开机启动3.9允许远程连接到docker方法一:修改docker.service方法二:修改daemon.json3.10处理报错docker.ser......
  • 【接口自动化测试】Jenkins+Git+Allure综合应用
    Jenkins安装官网:https://www.jenkins.io/,建议下载.war包,支持win、mac、linux。JDK要11+安装1、进入war包所在位置,输入cmd,输入java-jarwar包的名字进行等待即可2、打开:ip:8080http://127.0.0.1:8080/3、只需要输入默认的密码,然后按照提示一步步即可。(安装比较慢,有可能......
  • 基于SpringBoot+Vue+uniapp的宿舍管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 大模型低资源部署策略
    文章目录解码效率分析大模型训练后量化方法经验性分析与相关结论    由于大模型的参数量巨大,在解码阶段需要占用大量的显存资源,因而在实际应用中的部署代价非常高。在本文中,我们将介绍一种常用的模型压缩方法,即模型量化(ModelQuantization),来减少大模型的显......
  • ES操作RestHighLevelClient手册
    //设置分页searchSourceBuilder.from(1);searchSourceBuilder.size(5);//排序searchSourceBuilder.sort("age",SortOrder.DESC);searchSourceBuilder.sort("id",SortOrder.DESC);//数据过滤创建SearchSourceBuilder条件构造......
  • 本地生活小程序(源码+文档+部署+讲解)
    最近我在挖掘一些优秀的开源项目时,无意间发现了一个相当给力的系统——本地生活小程序管理平台。这个系统不仅在功能上满足了我的一些需求,而且在代码质量和社区活跃度上都令人印象深刻。作为一名技术爱好者,我觉得有必要把这个好东西推荐给我的读者们。接下来,我会简单介绍一......
  • 仓储管理系统-贵金属(源码+文档+部署+讲解)
    最近我在挖掘一些优秀的开源项目时,无意间发现了一个相当给力的系统——仓储管理系统-贵金属。这个系统不仅功能完善,满足了贵金属仓储管理的需求,而且基于源码二开,具有很高的灵活性。作为一名技术爱好者,我觉得有必要把这个好东西推荐给我的读者们。接下来,我会简单介绍一下这个......
  • Leangoo敏捷管理工具支持私有部署
    ​在当今快速变化的商业环境中,敏捷开发已成为许多企业追求高效和灵活性的首选方法。作为一款专注于敏捷管理的工具,Leangoo以其强大的功能和灵活性而备受欢迎。其中一个显著的优势就是它支持私有部署,为企业提供了更多的安全性和可控性。1.私有部署的优势**数据安全** 在企业......
  • Docker快速部署snipeit(Mac机)
    前提安装好mysql和docker环境(很多地方需要db统一的方便管理)官方操作手册1.拉取配置文件curlhttps://raw.githubusercontent.com/snipe/snipe-it/master/docker-compose.yml--outputdocker-compose.ymlcurlhttps://raw.githubusercontent.com/snipe/snipe-it/master/.env.......
  • 使用rsync批量部署
    使用rsync批量部署......