背景:
在程序开发过程中,尤其是设计多人多组合作产出时,必然会遇到代码联调时的项目部署问题。在没有自动化集成系统的情况下,一般来讲至少需要经历以下几个步骤

  1. 前后端代码提交
  2. 合并拉取代码并根据测试环境进行项目打包
  3. 上传测试服务器
  4. 启动项目测试运行情况
  5. 收集项目运行日志或根据需求重新部署项目等

 
所以我们需要一套自动化流程替我们去完成这些繁琐的任务

Jenkins 介绍

  • Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。具备持续集成和持续交付、简易安装、配置简单、可扩展插件、分布式等多个特点。可以配合常用的代码仓库例如GitLab,构建工具例如Maven、Ant、Gradle等构建CI/CD流水线。

Jenkins 部署

  1. 使用包管理器安装Jenkins
    # RHEL7 使用YUM包管理器
    sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
    sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io-2023.key
    sudo yum update && sudo yum -y install fontconfig java-17-openjdk jenkins
    # RHEL8、9 使用DNF包管理器
    sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
    sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io-2023.key
    sudo dnf update && sudo dnf -y install fontconfig java-17-openjdk jenkins
  2. 启动Jenkins并设置开机自启
    sudo systemctl start jenkins
    sudo systemctl enable jenkins
  3. 防火墙放行8080/TCP端口
    # Firewalld防火墙如下操作
    sudo firewall-cmd --zone=public --add-port=8080 --permanent
    sudo firewall-cmd --reload
    # UFW防火墙如下操作
    sudo ufw allow 8080/tcp
  4. 初始化设置Jenkins
    • 输入初始化密码
      # 查看初始化随机密码
      cat /var/lib/jenkins/secrets/initialAdminPassword

      file

    • 根据需求选择推荐插件安装或者自定义插件安装
      file
    • 创建用户以及密码
      file
    • 配置URL
      file
  5. 进入到仪表板
    file