当前位置: 首页 > news >正文

DevOps持续集成与交付

概述

Jenkins是一个支持容器化部署的、使用Java运行环境的开源软件,使用Jenkins平台可以定制化不同的流程与任务、以自动化的机制支持DevOps领域中的CI与CD,在软件开发与运维的流程中自动化地执行软件工程项目的编译、构建、打包、测试、发布以及部署,本文主要是描述使用Jenkins支持DevOps的实施过程。

环境描述

A服务器的IP地址:192.168.0.100

该服务器部署基于Java应用业务、Docker容器引擎

B服务器的IP地址:192.168.0.102

该服务器部署Nexus仓库服务、GitLab仓库服务、Docker容器引擎

C服务器的IP地址:192.168.0.106

该服务器部署Jenkins平台服务、Docker容器引擎

准备服务器运行环境

图片

如上所示,在A服务器上安装Java应用运行环境、安装Docker容器运行环境

图片

如上所示,在B服务器上运行GitLab仓库服务、安装Nexus仓库服务

图片

如上所示,在C服务器上运行maven、Jenkins

本地代码工程

图片

图片

如上所示,将本地开发环境的项目代码工程提交到B服务器的GitLab的代码仓库

图片

图片

如上所示,本地开发环境使用maven编译打包构建、安装到本地仓库、部署到服务器B的nexus仓库成功

Jenkins运行环境配置

图片

如上所示,在C服务器上生成GitLab的客户端远程访问权限的ssh-key

图片

如上所示,在GitLab用户设置页面配置git的ssh-key成功

图片

如上所示,在C服务器上配置B服务器的GitLab的访问地址与IP映射

图片

如上所示,在C服务器上拉取B服务器GitLab上的test2023项目代码工程成功

Jenkins构建项目配置

图片

如上所示,在Jenkins页面上安装Blue Ocean插件成功

图片

如上所示,在Jenkins页面上新建一个test2023的流水线项目

图片

如上所示,在Jenkins页面上,配置项目test2023的本地GitLab仓库对应的代码工程目录

图片

如上所示,在Jenkins页面上,配置项目test2023的Jenkinsfile,该文件用于Jenkins执行流水线任务的执行步骤

/usr/lib/systemd/system/jenkins.service

hudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true

图片

如上所示,在C服务器上文件设置Jenkins环境变量、重新启动Jenkins服务

/etc/maven/settings.xml

图片

如上所示,在C服务器上设置maven仓库的配置

图片

如上所示,在Jenkins页面的Blue Ocean上构建项目test2023成功

Jenkins部署项目配置

ssh-keygen

ssh-copy-id -i /root/.ssh/id_rsa.pub  root@192.168.0.100

ssh 192.168.0.100

 

图片

如上所示,在C服务器上生成ssh免密登录的公钥私钥,将公钥发送给A服务器,C服务器可以免密登录A服务器执行部署Java应用服务

图片

如上所示,在项目工程代码上编码部署发布的脚本deploy.sh

图片

如上所示,在Jenkinsfile上增加部署发布的步骤deploy.sh、设置Jenkins使用root用户启动

图片

如上所示,在Jenkins页面Blue Ocean显示项目构建成功、发布项目成功

图片

如上所示,在A服务器上显示Java应用test2023部署运行成功

http://www.lryc.cn/news/178010.html

相关文章:

  • lambda的使用案例(1)
  • nodejs+vue装修公司CRM系统设计elementui
  • 开源博客项目Blog .NET Core源码学习(3:数据库操作方式)
  • QT--Opencv下报错Mat/imwrite/imread找不到文件
  • 风光储一体化能源中心 | 数字孪生智慧能源
  • JavaScript数组分组
  • IEEE PDF eXpress系统报错:TimesNewRoman PS-BoldMT, ItalicMT, PSM
  • 【MATLAB源码-第40期】基于matlab的D*(Dstar)算法栅格路径规划仿真。
  • Pikachu-xxe (xml外部实体注入漏洞)过关笔记
  • Unity实现设计模式——责任链模式
  • Java中String转换为double类型
  • 不同埋深地下管线的地质雷达响应特征分析
  • 重新认识mysql
  • 系统集成|第十九章(笔记)
  • 【Linux】Linux远程访问Windows下的MySQL数据库
  • android安卓core tombstone .pb
  • C++简单实现红黑树
  • 国庆加速度!新增功能点锁定功能,敏捷开发新增估算功能,助力项目快速突破!
  • uniapp 如何动态切换应用图标、名称
  • CUDA学习笔记0929
  • XML-Based Configuration Beans for Ioc Container
  • 俞敏洪:董宇辉在北京有房子了!
  • 蓝桥等考Python组别七级006
  • 港联证券:股市3000点什么意思?
  • windows 下 vs code 格式化代码(clang-format)
  • USB TypeC接口说明
  • 深眸科技入局AI视觉行业,以深度学习赋能视觉应用推进智造升级
  • 基于微信小程序的校园失物招领系统设计与实现(源码+lw+部署文档+讲解等)
  • 蓝桥等考Python组别七级001
  • 【软件测试】开发/测试模型