写点什么

🏆(不要错过!)【CI/CD 技术专题】「Jenkins 实战系列」(1)全流程介绍 Jenkins 环境搭建 + 基础部署配置(Windows->Linux)

发布于: 5 小时前
🏆(不要错过!)【CI/CD技术专题】「Jenkins实战系列」(1)全流程介绍Jenkins环境搭建+基础部署配置(Windows->Linux)

背景

  • 在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试;

  • 前后端分离后,经常会修改接口,然后重新部署;这些情况都会涉及到频繁的打包部署;

手动打包常规步骤:

  1. git commit + git push 提交代码

  2. 问一下同组小伙伴有没有要提交的代码

  3. 拉取代码并打包(war 包,或者 jar 包)

  4. 上传到 Linux 服务器

  5. 查看当前程序是否在运行

  6. 关闭当前程序

  7. 启动新的 jar 包

  8. 观察日志看是否启动成功

  9. 如果有同事说,自己还有代码没有提交......再次重复 1 到 8 的步骤。


基于以上的痛点,有一种工具能够实现,将代码提交到 git 后就自动打包部署勒,答案是肯定的:现在这里主要介绍 jenkins


当然除了 Jenkins 以外,也还有其他的工具可以实现自动化部署,如 Hudson、gitlab CI/CD 等。只是 Jenkins 相对来说,使用得更广泛。


文章结构:

Jenkins 服务器搭建及基本配置

简介

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

Jenkins 自动化部署实现原理


Jenkins 部署环境

基本环境

  1. jdk 环境,Jenkins 是 java 语言开发的,因需要 jdk 环境

  2. git/svn 客户端,因一般代码是放在 git/svn 服务器上的,我们需要拉取代码

  3. maven 客户端,因一般 java 程序是由 maven 工程,需要 maven 打包,当然也有其他打包方式,如:gradle


以上是自动化部署 java 程序 jenkins 需要的基本环境,请自己提前安装好,下面着重讲解 Jenkins 的安装部署配置

Jenkins 安装

  1. 下载安装包 jenkins.war;

  2. 在安装包根路径下,运行命令 java -jar jenkins.war --httpPort=8080,(linux 环境、Windows 环境都一样);

  3. 打开浏览器进入链接 http://localhost:8080.

  4. 填写初始密码,激活系统



  1. 进入插件安装选择


这里建议选择,推荐安装的插件,保证基本常用的功能可以使用。


中文版



英文版



  1. 选择后,进入插件安装页面


  1. 设置初始用户和密码



  1. 进入系统,安装完成


Jenkins 基本配置

系统初始化配置


  1. Configure System (系统设置)


  • 在系统设置这里,我们只需要设置最后面的一项,配置远程服务器地址,

  • 即我们代码最终运行的服务器地址信息,就像我们之前手动部署时使用 xshell 登录 Linux 服务器一样,

  • 当然这里是可以配置多台远程 Linux 服务器的,配置完成后点击保存即可,为后面我们配置自动化部署做准备,配置如下图



  1. Configure Global Security (全局安全配置)


配置用户相关的权限



配置钩子程序(当用代码更新时通知)访问权限,避免报 403 错误


默认是勾选上了的,这里去掉勾选


  1. Global Tool Configuration (全局工具配置 )


配置 maven 的全局 settings 路径



配置 jdk



配置 git



配置 maven 的安装路径


配置必要插件


主要是检查如下这两个插件是否已安装


  • 插件 1:Publish over SSH

  • 插件 2:Deploy to container Plugin


Jenkins 自动化部署

我们配置一个自动化部署的的 java 程序(springBoot+maven+gitHub),基本必要配置就差不多了,后面配置过程中如果需要在配置

Jenkins 服务器上创建项目和配置

大体步骤:General(基础配置)--》源码管理--》构建触发器--》构建环境--》构建--》构建后操作


  1. 创建一个工程



  1. General(基础配置)


仅需填写标准部分,其他可不填写



  1. 源码管理



上图中点击“添加”按钮添加一组账号和密码



  1. 构建触发器



如上图:当前项目的回调地址为:


http://localhost:8080/job/jenkinsSpringBootDemo/build?token=token_demo2


只要执行这个地址(在浏览器上访问改地址),该项目就会发起一次构建项目,即拉取代码打包部署操作,在实际中,是由 git 服务器回调该地址。


5. 构建环境(无需配置)

6. 构建

  1. 构建后操作

  2. 构建后操作的意思是,jar 打包好后,要将 jar 发送到哪里去,发送后去和启动等。

  3. 这里需要提前在需要部署的服务器上配置好路径,写好启动和停止项目的脚本,并设置为可以执行的脚本,

  4. 其实就是我们平时在 Linux 上手动部署项目操作的脚本。


案例中给出的 start.sh 脚本如下:


#!/bin/bashexport JAVA_HOME=/usr/java/jdk1.8.0_131echo ${JAVA_HOME}echo 'Start the program : demo2-0.0.1-SNAPSHOT.jar'chmod 777 /home/ldp/app/demo2-0.0.1-SNAPSHOT.jarecho '-------Starting-------'cd /home/ldp/app/nohup ${JAVA_HOME}/bin/java -jar demo2-0.0.1-SNAPSHOT.jar &echo 'start success'
复制代码


案例中给出的 stop.sh 脚本如下:


#!/bin/bashecho "Stop Procedure : demo2-0.0.1-SNAPSHOT.jar"pid=`ps -ef | grep java | grep demo2-0.0.1-SNAPSHOT.jar | awk '{print $2}'`echo 'old Procedure pid:'$pidif [ -n "$pid" ]thenkill -9 $pidfi
复制代码

Linux 服务器配置

在 Linux 服务上,上传上文中的两个脚本,用于启动和停止


GitHub 服务器配置

在 GitHub 服务器上的指定项目里面配置上文中提到的回调地址


特别注意:为了保证回调地址网可以使用,


所以,下面配置的是外网映射地址。



可以参考:官方文档

发布于: 5 小时前阅读数: 4
用户头像

我们始于迷惘,终于更高水平的迷惘。 2020.03.25 加入

🏆 【酷爱计算机技术、醉心开发编程、喜爱健身运动、热衷悬疑推理的”极客狂人“】 🏅 【Java技术领域,MySQL技术领域,APM全链路追踪技术及微服务、分布式方向的技术体系等】 🤝未来我们希望可以共同进步🤝

评论

发布
暂无评论
🏆(不要错过!)【CI/CD技术专题】「Jenkins实战系列」(1)全流程介绍Jenkins环境搭建+基础部署配置(Windows->Linux)