【devops】五、Integrate工具——容器部署Jenkins(下)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【devops】五、Integrate工具——容器部署Jenkins(下)

5.3 Jenkins入门配置


由于Jenkins需要从Git拉取代码、需要本地构建、甚至需要直接发布自定义镜像到Docker仓库,所以Jenkins需要配置大量内容。


5.3.1 构建任务

准备好GitLab仓库中的项目,并且通过Jenkins配置项目,实现当前项目的DevOps基本流程。


1、gitlab上创建新项目
  • 构建Maven工程发布到GitLab(Gitee、Github均可)
  1. 在gitlab上创建一个新的项目命名为“mytest”

670075043cac482a87998a5dfc8373c0.png

91b5f48c5d3e48dc920053ec0584cae0.png

2、填写项目名称,这里创建公开的,不需要验证就可以访问

d9b9757affd34054b372876bc0d7ce22.png

创建完成后出现以下页面:

137edc8eff80492bbf48a8a8590bdf4f.png

以下命令记录一下,一旦往里面推送了代码,就消失了
git config --global user.name "Administrator"
git config --global user.email "admin@example.com"
cd existing_folder
git init --initial-branch=main
git remote add origin http://192.168.2.210/root/mytest.git
git add .
git commit -m "Initial commit"
git push -u origin main

3、GitLab查看项目

c40506c417214e95ad71434193275406.png

注:代码可以通过编译工具上传到gitlab或者直接在gitlab上创建,由于我的电脑里没有Java编译工具,我直接在gitlab上创建pom.xml文件和HelloWorld.java和greeter.java文件。

或者使用pycharm上传代码到gitlab,流程参考CSDN文档:https://blog.csdn.net/weixin_64124795/article/details/129697625

8ecf92ebe1ac44b6b56090e04b0723c9.png

2、Jenkins上新建任务并配置
  1. 新建任务

5ba3a4bd8cf041f6a4ce5870df57df34.png

2、选择自由风格构建任务

8a827f98c6824b19a40895768dfe52e3.png


确定之后就要配置Git的URL地址。


5.3.2 配置Jenkins上的源码拉取地址

Jenkins需要将Git上存放的源码存储到Jenkins服务所在磁盘的本地

  • 配置任务源码拉取的地址
  1. 进入到创建的【mytest任务】中,选择左侧的“配置”,将git的URL和对应分支配置上
    注意:分支必须要与gitlab 上的一致。由于我们gitlab创建的是公开的,所以这里不需要密码,如果gitlab是私有的,需要配置密码

3d7a5b04758b40ccbd3116b4c3d39350.png

  • Jenkins立即构建
  1. 点击立即构建之后,Jenkins就会拉取gitlab上的代码到容器内部

a8ef86dd859f4364a7336c7c4ce110f5.png

查看任务拉取Git源码日志:查看构建工程的日志,点击上述③的任务条即可

891e08e088de432b88b10e7eeaecce20.png

可以看到源码已经拉取到Jenkins本地,可以根据第三行日志信息,查看Jenkins本地拉取到的源码。也就是说Jenkins拉取的源码存放到了这个目录下。


2、构建成功后,说明源码已经拉取到Jenkins容器内部了,可以进入容器内部/var/jenkins_home/workspace/test查看Jenkins容器中的源码,与gitlab上的保持一致

docker exec -it jenkins bash
cd /var/jenkins_home/workspace/mytest
ls


源码存放位置:容器内/var/jenkins_home/workspace/mytest

b2e2cf40acf144c3b419a0c27d0c4cd6.png


5.3.3 配置Maven构建代码

代码拉取到Jenkins本地后,需要在Jenkins中对代码进行构建,这里需要Maven的环境,而Maven需要Java的环境,接下来需要在Jenkins中安装JDK和Maven,并且配置到Jenkins服务。

maven能够将从gitlab上拉取的代码进行构建,所以需要在Jenkins上进行配置。

(修改settings.xml文件的步骤在Build阶段工具中进行了配置,参考前面)

  • 配置已经完成,我们还需要把/usr/local下的maven和jdk文件移动到/usr/local/jenkins_docker/data下:
# 检查maven文件和jdk文件
cd /usr/local
ls
# 将/usr/local目录下的jdk和maven移动到 /usr/local/docker/jenkins_docker/data 目录下,目的是通过数据卷映射到容器内部
cd /usr/local/jenkins_docker/data
mv /usr/local/maven/ ./
mv /usr/local/jdk/ ./
ls


(Build阶段工具已做) 准备JDK、Maven压缩包通过数据卷映射到Jenkins容器内部/var/jenkins_home/下。

数据卷存放位置:

8fcd04317eb745d9937d38b3fb176764.png

(Build阶段工具已做) 解压压缩包,并配置Maven的settings.xml

<!-- 阿里云镜像地址 -->
<mirror>  
    <id>alimaven</id>  
    <name>aliyun maven</name>  
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>          
</mirror>
<!-- JDK1.8编译插件 -->
<profile>
    <id>jdk-1.8</id>
    <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
    </activation>
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>        
</profile>


1、Jenkins配置JDK&Maven并保存

【系统管理】——【全局工具配置】——【配置JDK&Maven】

9814b7ed66114dfca97125eebd0ea492.png

路径为jdk在容器内部的位置,前面操作已经把jdk文件通过数据卷映射到了容器内的/var/jenkins_home/jdk

927dc542d85a40b880c556c36301a5df.png

路径为maven在容器内部的位置,前面操作已经把maven文件通过数据卷映射到了容器内的/var/jenkins_home/maven

8d3072ef22b445038687a9a15e7d2ec8.png

2、CI操作(1)——配置Jenkins任务构建代码

这步配置可以让Jenkins调用maven将代码打包成jar包

1ff80c5af2f34d3abc026e688b1033e1.png

37902dc17768489dab19b60879b6173e.png


点击立即构建测试

查看日志可以看到执行了执行的clean packsge -DskipTests 命令:

0ccafd35d515455f968b03c13af23f1d.png

再进入到Jenkins容器内部查看,可以看到target下的jar包:

cd /var/jenkins_home/workspace/mytest/target

2e2bb826eb664651b6e97e19a6845af5.png

5.3.4 配置Publish发布&远程操作

jar包构建好之后,就可以根据情况发布到测试或生产环境,这里需要用到之前下载好的插件Publish Over SSH


1、配置Publish Over SSH连接

配置Publish Over SSH连接测试、生产环境,这里配置的信息都是目标服务器的信息,目标服务器里必须要有docker


1、Publish Over SSH配置

【系统管理】——【系统配置】——【 Publish over SSH】

1cb9190ca33541d8a01e48e0877b74ea.png

576db4d410254ab8ac1ab44c954858d5.png

高级设置中,勾选密码,这个密码是目标服务器对应的密码,不是Jenkins的密码。这里是192.168.2.211的密码

65efe357c5614ab4990da3ef4a15cfe7.png

注意:提前要创建目标服务器指定的目录。否则点击测试会报错,创建之后测试成功

b7df83ad6afc4a928c85f0947858d01f.png


2、CI操作(2)——配置任务的构建后操作
  • Jenkins通过构建后操作配置,把maven构建好的jar包发布到目标服务器
  • 配置构建后操作

987b3ae242654115a4b7a07aa68a5737.png

选择把哪些文件推送到目标服务器上

ddfbbd4e704b42b6a8b0e2c8f2a080de.png

立即构建任务,并去目标服务器目录下查看,这里是/usr/local/test,目标目录在【系统管理】——【系统配置】——最下面的【Publish over SSH】中配置过

查看构建日志

8351a4a368904b37b97284ee4138d331.png


构建成功后能看到目标服务器中目标目录下多了一个target文件,说明已经把内容推送到目标服务器了

0f9adb70766c4505a41873e48abb1f38.png


总结


到这里,我们完成了镜像拉取,通过maven构建成jar包,通过publish over ssh 推送到目标服务器的工作。接下来我们还要增加对代码进行检测、推送到harbor仓库等操作。

相关实践学习
日志服务之数据清洗与入湖
本教程介绍如何使用日志服务接入NGINX模拟数据,通过数据加工对数据进行清洗并归档至OSS中进行存储。
相关文章
|
12天前
|
弹性计算 数据可视化 安全
高效部署企业门户网站【阿里云云效平台详细指南】
使用阿里云云效部署企业网站涉及备案域名、ECS、VPC、云效代码仓库和流水线。一键部署通过ROS快速配置,手动部署则需详细配置流水线,包括代码源、构建、部署到ECS。整个流程约10分钟,但需注意网络问题可能导致的异常。一键部署适合快速启动,手动部署适合定制化。文档详细,但可增加常见问题解答和自动化脚本支持。
4665 3
高效部署企业门户网站【阿里云云效平台详细指南】
|
2天前
|
Kubernetes Devops 持续交付
容器化技术在DevOps中的应用
【7月更文挑战第6天】容器化技术在DevOps中的应用极大地提高了软件开发的效率和可靠性。通过自动化部署、持续集成与持续交付、环境一致性以及资源管理和监控等功能,容器化技术为开发人员和运维人员提供了更加便捷、高效的管理和部署方式。随着云计算技术的不断发展和普及,容器化技术将在DevOps中发挥越来越重要的作用。
|
24天前
|
弹性计算 运维 持续交付
构建与部署企业门户网站:阿里云云效解决方案评测
在数字化时代,企业门户网站作为企业形象的线上窗口,其建设和运维效率直接影响着企业的在线品牌形象与用户体验。阿里云提供的“构建企业门户网站”解决方案,借助云效平台实现从代码到云端的无缝部署,为开发者和企业带来了前所未有的便捷性与效率。
358 5
构建与部署企业门户网站:阿里云云效解决方案评测
|
10天前
|
敏捷开发 弹性计算 负载均衡
阿里云云效产品使用问题之如何将应用部署到部署组的某一台特定服务器上
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
10天前
|
敏捷开发 jenkins 测试技术
阿里云云效产品使用问题之如何进行类似于jenkins那样参数化构建
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
13天前
|
监控 Devops 测试技术
DevOps实践:持续集成与持续部署(CI/CD)在现代软件开发中的作用
【6月更文挑战第24天】本文深入探讨了持续集成(Continuous Integration,简称CI)和持续部署(Continuous Deployment,简称CD)在现代软件开发生命周期中的核心作用。通过阐述CI/CD的概念、优势以及实施策略,文章旨在为读者提供一套完整的理论框架和实践指南,以促进软件开发流程的高效性和产品质量的提升。
|
14天前
|
域名解析 弹性计算 网络协议
阿里云云效企业门户网站部署解决方案全面测评
测评范围:账号注册、ECS实例创建、代码管理、流水线配置、域名解析。 优点: 注册登录简便,ECS创建直观,代码托管顺畅,云效项目创建与配置流程清晰,一键部署便捷。 改进点: 提供更多操作提示,增强新手引导,增加模板和最佳实践,优化大文件上传性能,完善容错机制。 结论: 云效提供高效企业门户解决方案,适合快速部署,需进一步优化高级功能和用户体验。
|
17天前
|
运维 Devops 测试技术
DevOps:文化、工具与实践的深度融合
【6月更文挑战第21天】DevOps融合文化、工具与实践,促进开发与运维协作,加速软件交付。核心包括共享文化、自动化工具(如Git、Jenkins)与流程优化(敏捷、自动化、微服务)。DevOps助力团队协作,提高效率,降低运维成本,驱动企业持续创新与成长。
|
20天前
|
运维 监控 Devops
DevOps实践:持续集成与持续部署(CI/CD)的精髓
【6月更文挑战第17天】本文将深入探讨DevOps文化中的核心实践——持续集成(CI)和持续部署(CD)。我们将从理论出发,逐步过渡到实际操作,介绍如何搭建一个高效的CI/CD流程。文章将涵盖工具选择、流程设计、自动化测试以及监控和反馈机制的建立。通过具体案例分析,揭示成功实施CI/CD的关键因素,并探讨如何在组织内推广这一实践以促进开发和运维之间的协作。
|
3天前
|
Prometheus 运维 监控
DevOps实践中的监控策略与工具应用
在当今快速发展的软件交付领域,DevOps实践已成为提升效率、确保质量的关键因素。本文深入探讨了在DevOps流程中实施有效监控的必要性,分析了监控数据对于优化运维工作的价值。文章首先概述了监控在DevOps中的作用,随后详细介绍了一系列现代监控工具,并通过实际案例展示了如何整合这些工具以构建强大的监控系统。最后,文中讨论了监控策略的最佳实践,旨在帮助读者构建一个全面、自动化和高效的监控体系。