2024最新_Jenkins安装配置教程|Docker+Git+Maven+项目自启动Shell脚本

文章摘要:
Linux - [CentOS7.6-x86系统] 使用Docker容器化安装配置Jenkins:

Jenkins安装Jenkins国内镜像源配置Git设置Maven设置Shell自启动脚本

这可能是你看过最全的 Jenkins 安装配置总结!尤其是 Git 设置 部分,替大家踩了很多坑!
欢迎大家留言学习交流~

本文共分为六章,码字不易,记得点赞收藏!


一、依赖环境

服务器需要 jdk环境

若服务器没有 jdk环境,可以执行如下命令安装:

yum install -y java-1.8.0-openjdk.x86_64


二、Docker 安装启动 Jenkins

——本章默认已经安装Docker,若需要Docker安装步骤的小伙伴可以留言,我将再起文章进行总结

1、docker 搜索 jenkins:

docker search jenkins

在这里插入图片描述
本应一如既往选择 STARTS(标星)数量最多的,但很多时候拉下来的是旧版本,
!!!注意,如果jenkins版本过旧,会出现初始化下载插件大规模爆红无法正常下载,很麻烦!!!
所以在拉取的时候直接指定版本,我用的是较新版本2.456,后文配置也是基于此版本

2、拉取指定版本的 jenkins:
(如果需要其他版本可以到官网选择对应版本然后拉取)

docker pull jenkins/jenkins:2.456

3、配置启动 jenkins:

docker run -d -u root -p 18080:8080 -p 58888:50000 -v /var/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins/jenkins:2.456

  • Docker启动命令 -p 端口映射 (宿主机端口在前,容器内部端口在后)
  • 将容器内8080端口映射到服务器18080端口,将容器内50000端口映射到服务器58888端口
    此处基于安全性考虑,会映射其他端口而不使用默认端口如果你的机器还处于裸机状态,经常被黑客光临,可以看我的另一篇文章:
    Linux服务器CentSO7.6初始化网络安全防火墙及用户组配置
  • Docker启动命令 -v 挂载物理存储地址 (宿主机路径在前,容器内部路径在后)
  • -v /etc/localtime:/etc/localtime 同步服务器时间

4、启动 jenkins:

docker start jenkins

5、查看docker容器状态:

docker ps -a

在这里插入图片描述
可以看到 STATUSUP ,表示启动成功。

6、网页打开 jenkins:

我们根据 CONTAINER_ID 来进入日志,看一下初始密码:

docker logs 811a56759eee

在这里插入图片描述
浏览器打开,输入 ip地址:端口号 ,例如:192.168.xxx.xxx:18080

将日志中的初始化密码拷贝出来,输入进行下一步。

7、点击继续后,选择 按照推荐安装插件

在这里插入图片描述

这里等待安装完成就好了,如果有个别爆红的也没关系,可以在初始化完成后,更换镜像源后重新下载 (如果大面积爆红,可能是版本较低导致,可以在插件自动安装完成后,直接在控制台页面选择在线升级jenkins版本,升级后会自动再次进行初始化)


三、配置 Jenkins 国内镜像源

1、Dashboard --> 系统管理 --> 插件管理 --> Advanced settings,根据路径进入设置

2、在升级站点区域,将默认的更新中心 URL 地址更改为国内镜像源地址。
(常用的Jenkins国内镜像有华为云镜像、清华大学开源镜像站等)例如清华大学开源镜像站的地址:

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

3、将地址填写到文本框中,点击 提交(Submit) 按钮保存更改。

4、返回到插件管理页面,点击 立即检查(Check now) 按钮强制更新当前插件列表。

在这里插入图片描述


四、全局工具配置 Maven

1、配置Maven:Dashboard --> 系统管理 --> 全局工具配置
注意:要将Maven放到Jenkins的本地数据挂载目录内,容器才可以读取到配置文件!
可以下载后将Maven包通过FTP上传到服务器。

输入服务器jenkins挂载目录下,Maven包中setting.xml的文件路径地址,保存,配置完成。

在这里插入图片描述

2、setting.xml配置(可选操作):

如果想对Maven仓库进行更好的管理,可以自定义本地仓库地址,在完成第一步后,修改 /conf/setting.xml 文件:

打开文件后,找到 <localRepository> 标签,然后在新的一行,输入新地址(jenkins挂载路径内的地址)

在这里插入图片描述

举例如下:

<localRepository>/var/jenkins_home/apache-maven-3.3.9/repository</localRepository>

此处补充Linux文件编辑基本操作(大佬可以跳过不看):

 - 输入 vi + 文件名,进入文件。
 - 移动光标至对应需要修改的位置,按 i 进行插入编辑,此时已经可以编辑内容,可以删除/修改/输入文本。
 - 修改完成后按 Esc 建退出编辑模式,然后键入 :wq 保存并退出,如果此时退出文件,则保存修改成功。

五、配置 SSH 服务器

此步骤依赖插件SSH,若初始化未安装此插件,请提前安装

1、配置SSH server:Dashboard --> 系统管理 --> 系统配置:

找到SSH server配置项(一般在页面最后),点击 新增 ,输入:

Name:连接名称,建议与ip地址一样。
Hostname:SSH服务器ip地址,此处不需要加端口号。
Username:登录服务器的用户名称。

在这里插入图片描述

2、高级设置

输入步骤一的内容后,点击下方的 高级 按钮,
勾选 Use password authentication, or use a different key
Passphrase/Password 一栏中 输入登录服务器的密码,
Port 输入ssh连接的端口号
超时时间 Timeout 建议设置为 300000ms(=300s)

在这里插入图片描述

3、测试连接服务器

在输入区域右下方有 Test Configuration 按钮,点击进行连接测试,看是否可以成功连接。

4、保存设置,配置完成


六、配置 Jenkins 构建任务

1、进入Dashboard界面,选择新建任务:

在这里插入图片描述

2、构建一个自由风格的软件项目

在这里插入图片描述

—— Git 设置(拉取项目代码)

3、源码管理,配置Git拉取代码

在这里插入图片描述

  • 如图,按步骤进行配置:
    3.1 选择Git
    3.2 输入Git(Gitee、GitCode)代码仓库克隆地址,举例(通过HTTPS Clone项目):
GiteeGitCode
https://gitee.com/xxx/xxx.githttps://gitcode.net/xxx/xxx.git
  • 3.3 添加用户口令
    在这里插入图片描述
    重点:这里很多朋友因为在日常使用中并不会设置密码,而是用邮箱和ssh公钥直接连接,所以不知道自己的用户名密码是什么,可以到代码托管平台,查看或设置用户名、密码:
    用户名 :个人主页 --> 个人资料 --> 个人空间地址 ,就可以查看/更改用户名。
    密码 :个人主页 --> 个人设置 --> 安全设置 --> 私人令牌 --> 生成新令牌,注意,此令牌只会展示一次,一定要复制粘贴妥善保管!!!

    3.4 填入账号密码,如果用户密码正确,则无法连接提示会消失
    在这里插入图片描述

    3.5 设置拉取代码的分支
    在这里插入图片描述

    3.6 保存设置,Git配置完成

—— Maven 设置(编译构建项目)

4、增加构建步骤 - 调用顶层Maven目标

  • 4.1 在 Build Steps 模块,点击 增加构建步骤,选择 调用顶层Maven目标
    在这里插入图片描述

  • 4.2 在下拉选框中,选择 第四章 配置的maven

  • 4.3 在 目标 文本框中输入:

    clean install

  • 4.4 在 POM 文本框中输入 项目中的pom文件地址(注意是git同步到jenkins目录下的项目地址)
    在这里插入图片描述

  • 4.5 保存,maven配置完成

—— SSH 推送设置(自动发布项目)

5、增加构建步骤 - Send files or execute commands over SSH
此步骤依赖插件 Publish Over SSH,若初始化未安装此插件,请提前安装

  • 5.1 在 Build Steps 模块,点击 增加构建步骤,选择 Send files or execute commands over SSH
    在这里插入图片描述

  • 5.2 配置 SSH ServerName 下拉框中选择 第五章 配置的SSH服务器

  • 5.3 配置 TransfersSource files 文本框中输入:

    /

    在这里插入图片描述

  • 5.4 在 Exec command 文本框中输入要执行的Shell脚本

  • 第一行代码,将 构建好的 jar包 拷贝至 jenkins 单独的 packages 目录下(可自定义目录地址和名称), 第一行代码中路径需要根据自己的实际路径进行修改!

  • 最后 nohup java 为后台启动,-jar 参数后的packages 目录路径也要对应更改。

sudo cp /var/jenkins_home/workspace/your_application/***/target/your_application.jar /var/jenkins_home/packages/
#!/bin/bash
APP_NAME=your_application.jar
LOG_NAME=your_application.log
PIDS=`ps -ef | grep $APP_NAME | grep -v grep|awk '{print $2}'`

if [ -n "$PIDS" ]; then
    str1="杀掉历史进程pid为:"
    for pid in $PIDS
    do 
        result=$str1$pid
        echo $result >> $LOG_NAME
        sudo kill -9 $pid
    done
else
    String="程序不存在历史进程"
    echo $String >> $LOG_NAME
fi

sudo nohup java -Xms300m -Xmx300m -jar /var/jenkins_home/packages/$APP_NAME >>$LOG_NAME 2>&1 &
str2="程序正在启动..."
echo $APP_NAME$str2 >> $LOG_NAME

(ps:此处对日志进行了优化,将启动中日志都输出到了项目日志中,可以到 /home/user 目录下进行查看对应项目日志)

最后,功德圆满,大功告成!


以上为所有内容,如果问题还没有得到解决,欢迎大家留言讨论交流,有帮助到你就 点个赞吧 ^.^


  • 32
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DockerJenkinsGitLab、Maven、Harbor和Spring Boot是一些常用的IT工具和技术,可以用于实现自动化构建和部署。 Docker是一个开源的容器化平台,可以将应用程序及其依赖项打包到容器中,从而实现应用程序的快速部署和隔离。使用Docker可以方便地创建、分享和管理应用程序的容器化版本。 Jenkins是一个开源的持续集成和持续交付工具,可以帮助团队自动化构建、测试和部署应用程序。使用Jenkins可以通过配置和管理各种构建和部署任务,从而实现自动化的软件开发流程。 GitLab是一个基于Git的代码托管和协作平台,可以帮助团队协同开发、管理代码和进行版本控制。使用GitLab可以方便地管理代码仓库、进行代码审查和版本管理。 Maven是一个软件项目管理和构建工具,可以帮助团队自动化构建、测试和部署Java项目。使用Maven可以方便地管理项目依赖、编译代码、运行单元测试等构建任务。 Harbor是一个开源的企业级Docker镜像仓库,用于管理和存储Docker镜像。使用Harbor可以方便地管理镜像的推送、拉取和版本控制。 Spring Boot是一个轻量级的Java开发框架,可以帮助开发者快速构建和部署基于Spring的应用程序。使用Spring Boot可以简化项目配置和管理,提高开发效率。 将这些工具结合使用,可以实现自动化构建和部署。例如,可以使用Jenkins配置一个定时任务,当代码提交到GitLab时,Jenkins会自动触发构建任务。构建任务可以使用Maven编译、打包和测试应用程序,然后使用Docker将应用程序打包成容器镜像,并推送到Harbor中。最后,使用Docker将应用程序部署到服务器上进行运行。这样,我们就可以实现应用程序的自动化构建和部署,提高开发和交付效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值