jenkins搭建文档

2023-12-13 09:32:11

jenkins搭建文档

在这里插入图片描述

简介

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

文章来源:https://blog.csdn.net/qq_42055933/article/details/134822203
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。