jenkins搭建文档

news2025/1/18 19:08:48

jenkins搭建文档

  • 简介
  • 一、安装运行环境
    • 1、安装JDK环境
      • 1)查询自带的JDK
      • 2)卸载自带的JDK
      • 3)创建java文件夹并将jdk上传到该文件夹
      • 4)解压
      • 5)配置环境变量
      • 6)配置生效
      • 7)验证是否成功
    • 2、安装maven环境
      • 1)下载maven
      • 2)创建maven文件夹并将maven上传
      • 3)解压
      • 4)创建maven仓库
      • 5)替换settings.xml文件
      • 6)把本地的配置文件替换上去
      • 7)修改仓库地址
      • 8)配置环境变量
      • 9)配置生效
      • 10)验证是否成功
  • 二、执行脚本
    • 1、导入shell脚本文件
    • 2、赋予执行权限
    • 3、执行脚本
    • 4、等待执行完输出如下内容
  • 三、新手入门配置
    • 1、打开上面提示的网址
    • 2、将Jenkins管理员密码粘贴到页面点击继续
    • 3、自定义jenkins选择自定义安装推荐的插件
    • 4、创建用户并点击保存
    • 5、请求url配置使用默认即可,点击保存并完成
    • 6、开始使用jenkins
    • 7、重启jenkins生效中文化界面
  • 四、安装插件
    • 1、安装maven
    • 2、安装ssh
    • 3、安装NodeJS
    • 4、重启生效
  • 五、配置
    • 1、JDK配置
    • 2、maven配置
    • 3、ssh配置
    • 4、NodeJS配置
  • 六、后端项目构建
    • 1、点击新建任务
    • 2、git配置
    • 3、构建前配置
    • 4、构建配置
    • 5、构建后配置
    • 6、ssh上传到指定服务器
    • image.png
    • 7、归档功能配置
    • 8、构建操作
    • 9、查看日志
    • 10、页面下载
    • 11、远程服务器下载
  • 七、前端项目构建
    • 1、新建任务
    • 2、git配置
    • 3、构建环境配置
    • 4、构建配置
    • 5、ssh上传到指定服务器
    • 6、归档功能配置
    • 7、构建操作
    • 8、查看日志
    • 9、页面下载

在这里插入图片描述

简介

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成

一、安装运行环境

1、安装JDK环境

1)查询自带的JDK

rpm -qa | grep jdk

image.png

2)卸载自带的JDK

rpm -e --nodeps 要卸载的JDK

image.png

3)创建java文件夹并将jdk上传到该文件夹

cd /usr/local
mkdir java
cd java
#上传jdk安装文件

没有jdk安装文件的可以在官网下载
image.png

4)解压

tar -zxvf 所要解压的文件名

image.png

5)配置环境变量

vim /etc/profile

把光标移到最后一行,键盘按 i,进入编辑模式,然后插入以下内容:(注意自己所建java的路径、jdk的名称)

JAVA_HOME=/usr/local/java/jdk1.8.0_381
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

image.png
然后按ESC退出编辑模式,‘shift + :’,输入wq,回车,完成保存并退出

6)配置生效

source /etc/profile

7)验证是否成功

java -version

image.png

2、安装maven环境

1)下载maven

打开maven官网:Maven – Download Apache Maven
我选择的是3.9.5
image.png

2)创建maven文件夹并将maven上传

cd /usr/local
mkdir maven
cd maven
#上传maven安装文件

3)解压

tar -zxvf 所要解压的文件名

image.png

4)创建maven仓库

mkdir repository

5)替换settings.xml文件

cd apache-maven-3.9.5/conf

6)把本地的配置文件替换上去

没有的可以用我的
settings.xml

7)修改仓库地址

vi settings.xml

将localRepository修改为/usr/local/maven/repository
image.png
按Esc键退出编辑模式,输入:wq保存并退出vim编辑器

8)配置环境变量

vim /etc/profile

把光标移到最后一行,键盘按 i,进入编辑模式,然后插入以下内容:(注意自己所建maven的路径)

export MAVEN_HOME=/usr/local/maven/apache-maven-3.9.5
export PATH=$PATH:$MAVEN_HOME/bin

image.png
然后按ESC退出编辑模式,‘shift + :’,输入wq,回车,完成保存并退出

9)配置生效

source /etc/profile

10)验证是否成功

mvn -v

image.png

二、执行脚本

1、导入shell脚本文件

install_jenkins.sh

#!/bin/bash

# 检查Docker是否已安装
if ! command -v docker &> /dev/null; then
    echo "Docker未安装,开始安装Docker..."

    #卸载残留docker
    sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine

    #安装工具包
    sudo yum install -y yum-utils

    #设置储存库
    sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

    # 安装Docker
    sudo yum install docker-ce docker-ce-cli containerd.io -y

    # 启动Docker服务
    sudo systemctl start docker

    # 设置Docker开机自启动
    sudo systemctl enable docker

    #创建文件
    mkdir -p /etc/docker

    #配置docker镜像
    sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://w6rlizew.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

# 重启后台线程
    sudo systemctl daemon-reload
    # 重启docker
    sudo systemctl restart docker

    echo "Docker安装完成."
fi

# 下载Jenkins镜像
sudo docker pull jenkins/jenkins:2.415

# 创建Jenkins容器,将端口映射为8090
CONTAINER_ID=$(sudo docker run -d -u root -p 8090:8080 -p 50000:50000 -v /var/jenkins_home/workspace/:/var/jenkins_home/workspace/ -v /usr/local/maven/repository/:/usr/local/maven/repository/ -v /var/run/docker.sock:/var/run/docker.sock  -v /usr/bin/docker:/usr/bin/docker -v /usr/local/java/jdk1.8.0_371:/usr/local/java -v /usr/local/maven/apache-maven-3.9.5:/usr/local/maven -e JAVA_OPTS="-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/Shanghai" --name jenkins_container jenkins/jenkins:2.415)

# 检查Jenkins容器是否正在运行
sudo docker ps

chmod -R 777 /var/jenkins_home

#等待启动 睡眠5秒
sleep 5

#获取管理员密码
PASSWORD=$(sudo docker exec -it $CONTAINER_ID cat /var/jenkins_home/secrets/initialAdminPassword)

if [ -z "$PASSWORD" ]; then
    echo "Jenkins启动超时,无法获取管理员密码。"
    exit 1
fi

echo "Jenkins管理员密码: $PASSWORD"

ip_address=$(hostname -I | awk '{print $1}')
echo "请在浏览器中访问 http://${ip_address}:8090 进行配置和使用。"

:::info
解释
-d :后台运行
-p:8098:8080 镜像8080 :端口映射到宿主机 10240端口
-p:50000:50000 镜像50000 :端口映射到宿主机 10241端口
-v:/var/jenkins_home/workspace/:/var/jenkins_home/workspace/
/var/jenkins_home/workspace/ 宿主机的Jenkins目录挂载路径 jenkins
/var/jenkins_home/workspace/ 镜像服务器中jenkins的工作目录
-v /usr/bin/docker:/usr/bin/docker : 挂载docker
-v /usr/local/java/jdk1.8.0_371:/usr/local/java : 挂载映射宿主机jdk
-v /usr/local/maven/apache-maven-3.9.5:/usr/local/maven : 挂载映射宿主机maven
-e JAVA_OPTS=“-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/Shanghai” \ :同步时间
–name myjenkins(自定义容器名称) jenkins/jenkins(需要映射容器名称)

:::

2、赋予执行权限

chmod 755 install_jenkins.sh

image.png

3、执行脚本

sh install_jenkins.sh

4、等待执行完输出如下内容

Jenkins管理员密码: 8bd1236206f64520b16f8d81b827f613
请在浏览器中访问 http://192.168.0.44:8090 进行配置和使用。

image.png
备注:Jenkins管理员密码后续会在网页中使用。

三、新手入门配置

1、打开上面提示的网址

打开http://192.168.0.44:8090会弹出如下页面
在这里插入图片描述

2、将Jenkins管理员密码粘贴到页面点击继续

备注:Jenkins管理员密码在第一步执行完脚本后会输出出来
image.png

3、自定义jenkins选择自定义安装推荐的插件

image.png
等待安装完成
image.png

4、创建用户并点击保存

image.png

5、请求url配置使用默认即可,点击保存并完成

image.png

6、开始使用jenkins

image.png

7、重启jenkins生效中文化界面

开始jenkins后进入到该页面,会发现部分中文化有问题,比如Manage Jenkins,需要对jenkins进行重启以解决该问题
image.png

# 查询镜像id
docker ps -a
# 重启镜像
docker restart 镜像id

image.png
重启后需要重新登录
image.png
重启后中文化异常问题修复。没错 就是这么神奇!!!
image.png
至此新手入门配置全部完成

四、安装插件

部署需要用到很多的插件,比如java、git、maven、ssh等,这里对插件进行安装
点击系统管理-插件管理-Available plugins
image.png

1、安装maven

搜索maven,选择Maven IntegrationVersion3.23,点击安装
image.png

2、安装ssh

搜索ssh,选择Publish over SSH,点击安装
image.png

3、安装NodeJS

在插件安装页面搜索node,选择NodeJS,点击安装
image.png

4、重启生效

等待安装完成后重启jenkins。

# 查询镜像id
docker ps -a
# 重启镜像
docker restart 镜像id

image.png

五、配置

1、JDK配置

在系统管理-全局工具配置页面下拉,找到JDK 安装,点击新增JDK
image.png
输入别名和JAVA_HOME

/usr/local/java

image.png

2、maven配置

在系统管理-全局工具配置页面下拉,找到Maven 安装,点击新增Maven
image.png
输入别名和MAVEN_HOME

/usr/local/maven

image.png
点击保存
3、上传无法下载的jar包到maven文件夹
在我们项目中有2个jar包下载通过阿里云下载不下来,分别是com.kingbase8和mobset.smsSDK,提前将这俩包上传到我们服务器的maven仓库/usr/local/maven/repository
image.png
image.png

3、ssh配置

在系统管理-系统配置页面中,拉到最下面找到Publish over SSH栏
image.png
依次输入密码、名称、地址、用户名,然后点击Test Configuration

image.png
显示Success表示配置成功
image.png

4、NodeJS配置

在系统管理-全局工具配置页面下拉,找到Maven 安装,点击新增Maven
image.png
点击安装NodeJS
image.png
按照如下配置自动安装
:::info
版本:14.9.0
Global npm packages to install:6.14.8
:::
image.png

六、后端项目构建

1、点击新建任务

image.png
输入项目名(自定义即可),选择构建一个maven项目
image.png

2、git配置

将我们dcim的git地址粘贴上来,注意得是http的,然后点击添加
在这里插入图片描述

在弹出页面输入我们的用户名和密码,点击添加
在这里插入图片描述

添加成功后在Credentials选择下拉,选中我们刚刚添加的账号
在这里插入图片描述

选择后报红的“无法连接仓库”相关提交将会小时
在这里插入图片描述

再修改分支
在这里插入图片描述

3、构建前配置

设置环境变量,将我们安装的java8作为默认的java环境。因为该jenkins镜像使用的是2.415版本,默认的java版本为11,但是我们的项目用的是java8,所以需要专门指定一下。
image.png

#设置环境变量,将我们安装的java8作为默认的java环境。因为该jenkins镜像使用的是2.415版本,默认的java版本为11,但是我们的项目用的是java8,所以需要专门指定一下。
export JAVA_HOME=/usr/local/java

image.png

4、构建配置

在Build中添加Goals and options

clean package -Dmaven.test.skip=true

image.png
如果想要构建单独的模块

5、构建后配置

这里选择Run only if build succeeds,然后添加执行shell
image.png

# 创建jar包的保存文件夹
mkdir -p /root/jar
#将构建后的jar包保存到该文件夹下
find /var/jenkins_home/workspace/dcim/ -name '*.jar' -exec cp {} /root/jar \;

image.png

6、ssh上传到指定服务器

仍然在Post Steps点击添加,并选择 Send files or execute commands over SSH
image.png
按照如下进行配置
:::info
Transfer Set Source files:**/*.jar
Remote directory:jar/
:::

image.png

7、归档功能配置

归档功能能让我们在部署成功后直接在页面上下载jar包,非常的方便
在页面最下面找到构建后操作栏,点击增加构建后操作步骤选项
image.png
弹出选择框中选择归档成品选项
image.png
在用于存档的文件栏输入如下内容,并点击保存按钮。

**/*.jar

image.png
至此配置全部完成。

8、构建操作

回到首页,对任务进行构建操作
image.png

9、查看日志

点进任务中,点击左侧的构建列表标号
image.png
点击控制台输出查看
image.png

10、页面下载

在首页打开dcim
image.png
在页面上点击对应的jar包可以进行下载
image.png

11、远程服务器下载

连接我们配置的远程服务器,比如我配置的192.168.0.41
image.png
打开配置的文件夹
image.png
在对应的模块里面就有各自的jar包
image.png

七、前端项目构建

1、新建任务

在首页点击新建任务
image.png
自定义一个任务名称,下面选择构建一个自由风格的软件项目
image.png

2、git配置

输入如下的前端构建地址,选择有权限的用户,这里举例比如前端分支默认是master
在这里插入图片描述

3、构建环境配置

在构建环境配置中选择Provide Node & npm bin/ folder to PATH,在弹出的下方选择我们自动安装的14.9.0版本
image.png

4、构建配置

在构建设置里面点击新增,选择执行shell,输入如下命令

node -v
npm -v
npm install
NODE_OPTIONS=--max-old-space-size=4096 npm run build

image.png
点击执行即可完成

5、ssh上传到指定服务器

继续点击新增按钮,选择 Send files or execute commands over SSH
image.png
上传到指定路径
image.png

6、归档功能配置

在页面最下面找到构建后操作栏,点击增加构建后操作步骤选项
image.png
弹出选择框中选择归档成品选项
image.png
在用于存档的文件栏输入如下内容,并点击保存按钮。
image.png

7、构建操作

回到首页,对任务进行构建操作
image.png

8、查看日志

点进任务中,点击左侧的构建列表标号
image.png

9、页面下载

在首页打开dcim-front,点击工作空间
image.png
进入dist文件夹下,点击右下角的打包下载全部文件
image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1290886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习IO的第四天

作业 : 使用两个子进程完成两个文件的拷贝&#xff0c;子进程1拷贝前一半内容&#xff0c;子进程2拷贝后一般内容&#xff0c;父进程用于回收两个子进程的资源 #include <head.h>int main(int argc, const char *argv[]) {int rd -1;if((rdopen("./01_test.c&quo…

18、XSS——cookie安全

文章目录 1、cookie重要字段2、子域cookie机制3、路径cookie机制4、HttpOnly Cookie机制5、Secure Cookie机制6、本地cookie与内存cookie7、本地存储方式 一般来说&#xff0c;同域内浏览器中发出的任何一个请求都会带上cookie&#xff0c;无论请求什么资源&#xff0c;请求时&…

python 数据分析

数据分析 数据分析是指用适当的方法对收集的数据进行分析,提取有用信息并且形成结论. 广义的数据分析包括狭义的数据分析和数据挖掘.狭义的数据分析是指根据目的,采用对比分析,分组分析,交叉分析,回归分析等分析方法,对数据进行分析和处理,得到特征统计量的过程.数据挖掘是指…

【LLM_05】使用fastgpt搭建本地离线大语言模型(Chatglm3)问答+知识库平台

1、FastGPT 的知识库逻辑1.1 基础概念1.2 FastGPT知识库的导入1.3 FastGPT新建应用&#xff08;1&#xff09;创建一个知识库助手&#xff08;2&#xff09;创建一个python开发小助手 2、词向量比较测试2.1 开启词向量模型2.2 词向量模型性能比较 3、配置好之后的运行3.1 运行大…

python二维数组创建赋值问题:更改单个值却更改了所有项的值

test_list [] dic1 {} test_list [dic1 for _ in range(3)] ll [1, 2, 3]for i in range(3):test_list[i][value] ll[i]print(test_list)运行结果&#xff1a;每次赋值都更改了所有项 原因&#xff1a;python的二位数据创建方式就是这样&#xff0c;官方文档中有描述Wha…

数据结构初阶之二叉树性质练习与代码练习

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 数据结构初阶 Linux 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力,共赴大厂。 目录 1.前言 2.性质练习 3…

嵌入式学习---ARM中断控制系统

目录 外部事件与CPU的交互方式查询方式中断方式 什么是中断源S3C2440支持60个中断源FIQ和IRQ 中断处理流程将外设中断通知给CPUSUBSRCPND寄存器INTSUBMSK寄存器SRCPND寄存器INTMSK寄存器INTMOD寄存器INTPND寄存器 硬件中断处理是实时系统设计的最重要、最关键的问题。 外部事件…

Ubuntu22.04通过Maas和Juju部署openstack charm

目录 官方文档材料准备软件硬件 模板机和虚拟网络安装MAAS官方文档MAAS节点配置安装MAAS浏览器登录MAAS进行配置 激活DHCP 官方文档 https://docs.openstack.org/project-deploy-guide/charm-deployment-guide/2023.1/ 这是一个通过Maas面板即可部署openstack的方式&#xff0…

CTF特训日记day7

复现华为杯研究生国赛的adv_lua题目 从题目描述来看&#xff0c;漏洞应该和bytearray相关 用IDA逆向一下然后直接字符串搜索bytearray 只有这里有bytearray字样&#xff0c;继续查找交叉引用&#xff1a; 可以看到一系列方法&#xff0c;显然都是为bytearray所注册的吗&am…

smarty模版 [BJDCTF2020]The mystery of ip 1

打开题目 点击flag给了我们一个ip 点击hint&#xff0c;查看源代码处告诉了我们要利用这个ip bp抓包&#xff0c;并添加X-Forward-For头 所以这道题是XFF可控 本来联想到XFF漏洞引起的sql注入&#xff0c;但是我们无论输入什么都会正常回显&#xff0c;就联想到ssti注入 我们…

区块链密码学:基础知识、应用与未来发展

一、引言 区块链技术&#xff0c;作为一种分布式、去中心化的数据管理方式&#xff0c;密码学在其安全性和可靠性方面发挥着至关重要的作用。本文将详细介绍区块链密码学的基础知识、应用以及未来发展趋势。 二、区块链密码学基础知识 区块链密码学是区块链技术的核心组成部分…

React面试题(1)

1、什么是React&#xff1f; React是一个用于构建用户界面的JavaScript库。 2、React的特点是什么&#xff1f; React的主要特点包括&#xff1a; 组件化虚拟DOM单向数据流JSX语法高效的性能生态系统丰富 3、什么是JSX&#xff1f; JSX是一种JavaScript的语法扩展&#x…

2023年12月实时获取地图边界数据方法,省市区县街道多级联动【附实时geoJson数据下载】

首先&#xff0c;来看下效果图 在线体验地址&#xff1a;https://geojson.hxkj.vip&#xff0c;并提供实时geoJson数据文件下载 可下载的数据包含省级geojson行政边界数据、市级geojson行政边界数据、区/县级geojson行政边界数据、省市区县街道行政编码四级联动数据&#xff0…

Linux shell编程学习笔记33:type 命令

目录 0 引言1 type 命令的功能和格式 1.1 type命令的功能1.2 type 命令的格式2 type命令用法实例 2.1用type命令查看shell内置命令&#xff08;以echo命令为例&#xff09;2.2 用type命令查看别名&#xff08;以ls命令为例&#xff09;2.3 用type命令同时查看shell内置命令和别…

Ros智行mini,opencv,Gmapping建图,自主导航auto_slam,人脸识别,语音控制

功能 一、Gmapping建图 二、自主导航 起始点 、终点 三、人脸识别 四、语音控制 完成任务: 机器人先建图 建完图后给出目标点&#xff0c;机器人就可以完成调用自主导航走到目标点&#xff0c;期间会调用激光雷达扫描局部环境来进行自主避障&#xff0c;到达终点后进行语音…

UVM建造测试用例

&#xff08;1&#xff09;加入base_test 在一个实际应用的UVM验证平台中&#xff0c;my_env并不是树根&#xff0c;通常来说&#xff0c;树根是一个基于uvm_test派生的类。真正的测试用例都是基于base_test派生的一个类。 class base_test extends uvm_test;my_env e…

rpm安装gitlab

1.rpm包下载 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ 2.进行安装 rpm -ivh gitlab-ce-15.9.7-ce.0.el7.x86_64.rpm --nodeps --force 3.配置访问地址 vim /etc/gitlab/gitlab.rb 4.重新加载配置以及重启服务 gitlab-ctl reconfiguregitlab-ctl resta…

指针(进阶)

指针进阶&#xff1a; 通过指针基础我们已经了解了指针&#xff0c;这篇文章我们会举大量的例子&#xff0c;使我们对指针透彻理解&#xff0c;我们下来看一段代码&#xff1a; int main() {char a[] "ab";char* pc a;printf("%c\n", *pc);printf("…

指定分隔符对字符串进行分割 numpy.char.split()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 指定分隔符对字符串进行分割 numpy.char.split() 选择题 请问下列程序运行的的结果是&#xff1a; import numpy as np print("【执行】np.char.split(I.Love.China, sep .)") p…

GNSEC 2022年第8届全球下一代软件工程线上峰会-核心PPT资料下载

一、峰会简介 新一代软件工程是指利用新的理论、方法和技术&#xff0c;在软件开发、部署、运维等过程中&#xff0c;实现软件的可控、可预测、可维护的软件生产方式。它涵盖了多个领域&#xff0c;如软件开发、测试、部署、运维等&#xff0c;旨在提高软件生产效率和质量。 …