所有文章 > 学习各类API > Jenkins实现自动化构建与部署详解
Jenkins实现自动化构建与部署详解

Jenkins实现自动化构建与部署详解

本文详细介绍了如何使用Jenkins实现自动化构建和部署。Jenkins是一种流行的持续集成工具,可以在代码提交到代码仓库后自动获取最新代码并进行自动化部署,省去了手动打包和上传服务器的繁琐步骤。本文涵盖了从Jenkins的安装到配置SSH Keys以便从GitHub拉取代码,再到创建Pipeline和自动化任务的各个步骤,旨在帮助用户更高效地实现自动化部署。

前言

在现代软件开发中,自动化构建与部署已经成为提高开发效率和产品质量的重要手段。Jenkins作为一个开源的自动化服务器,通过其强大的插件系统和灵活的构建流程配置,广泛应用于CI/CD(持续集成/持续交付)中。本文将介绍如何使用Jenkins实现自动化构建与部署。

前置介绍

在本文中,我们将使用以下软件和硬件环境:

  1. 操作系统:CentOS
  2. OpenJDK版本:11
  3. Jenkins版本:2.375.2
  4. 项目架构:Egg + Vue2 + Typescript

对于不熟悉Linux命令行的读者,编辑文件时可以按“i”键进行编辑,完成修改后按ESC退出编辑,输入“:wq”保存并退出,输入“:q”不保存直接退出。

安装

JDK 安装

卸载

首先,检查系统中是否已经安装了OpenJDK。

rpm -qa | grep java
rpm -qa | grep jdk

如果有安装过旧版本,需要先卸载。

rpm -qa | grep jdk | xargs rpm -e --nodeps
rpm -qa | grep java | xargs rpm -e --nodeps

安装

有两种安装方式:

通过 yum 安装
yum install -y java-11-openjdk java-11-openjdk-devel

安装完成后,运行以下命令查看安装目录。

ls -l $(which java)

安装路径

自行下载后解压安装

下载OpenJDK压缩包后,创建目录并解压。

mkdir /usr/java
cd /usr/java/
tar -zxvf openjdk-11+28_linux-x64_bin.tar.gz

安装路径为/usr/java/jdk-11

环境变量配置

编辑配置文件,设置JAVA_HOME。

vim /etc/profile

环境变量配置

保存后运行以下命令生效。

source /etc/profile

Jenkins 安装

卸载

如之前安装过Jenkins,需先卸载。

systemctl stop jenkins.service
rpm -e jenkins

安装

从清华大学镜像站下载Jenkins rpm包,上传到服务器并安装。

mkdir /usr/local/jenkins
rpm -ivh jenkins-2.375.2-1.1.noarch.rpm

查看Jenkins安装路径。

rpm -ql jenkins

Jenkins 启动前配置

修改端口、账号名(非必要)

可在配置文件中修改端口和账号名。

vim /etc/sysconfig/jenkins

sysconfig jenkins配置

执行命令生效。

systemctl daemon-reload

Jenkins 初始化配置

访问Jenkins地址,根据提示输入初始管理员密码。选择安装推荐的插件。

jenkins welcome(网图)

SSH Keys 配置

生成凭证

生成SSH密钥,邮箱地址替换为你自己的。

ssh-keygen -t rsa -C "123456@qq.com"

公钥配置到 Github

将生成的公钥内容配置到GitHub。

github ssh

私钥配置到 Jenkins

在Jenkins中配置私钥。

凭据配置

创建任务

Pipeline

使用Pipeline可以直观地查看构建情况。

新建任务

WebHook

通过WebHook实现GitHub到Jenkins的自动化。

github webhooks

Pipeline 脚本文件

Jenkinsfile 语法(Declarative)

Jenkinsfile支持Declarative和Scripted两种语法,这里使用Declarative。

编写

将构建任务分为四个阶段:拉取代码、项目构建、Docker构建和Docker运行。

pipeline{
    agent any
    tools {
        nodejs 'NodeJS_14.17.6'
    }
    stages{
        stage("pull"){
            steps {
                sh 'sudo rm -rf public'
                sh 'sudo rm -rf logs'
                git branch: 'master', credentialsId: 'xxx', url: 'git@github.com:LuciferHuang/xxx.git'
            }
        }
        stage("project build"){
            steps {
                sh 'npm install'
                sh 'npm run build'
                sh 'sudo rm -rf node_modules'
            }
        }
        stage("docker build"){
            steps {
                sh 'docker build -t xxx:v${BUILD_NUMBER} . '
            }
        }
        stage("docker run"){
            steps {
                sh 'docker stop $(docker ps -a -q)'
                sh 'docker run -p 80:80 --name xxx_v${BUILD_NUMBER} -d xxx:v${BUILD_NUMBER}'
            }
        }
    }
}

结语

通过本文的讲解,相信你已经掌握了如何通过Jenkins实现自动化构建与部署。修改代码并提交到仓库,Jenkins将自动进行构建和部署,大大提高了开发效率。

FAQ

问:如何在CentOS上安装OpenJDK 11?

  • 答:可以通过两种方式安装OpenJDK 11。首先,可以使用yum安装,命令是yum install -y java-11-openjdk java-11-openjdk-devel。其次,可以下载OpenJDK压缩包后手动解压,将其放在/usr/java目录下。

问:如何在Jenkins中配置SSH Keys用于自动化部署?

  • 答:首先,使用ssh-keygen -t rsa -C "your_email@example.com"命令生成SSH密钥,然后将生成的公钥添加到GitHub账户中。在Jenkins中,通过“凭据”页面将私钥配置到Jenkins,以便Jenkins可以访问GitHub仓库。

问:Jenkins自动化部署的Pipeline如何编写?

  • 答:Jenkins的Pipeline可使用Declarative语法编写,主要包括四个阶段:1)拉取代码,2)项目构建,3)Docker构建,4)Docker运行。每个阶段使用sh命令执行相应的脚本。

问:如何通过WebHook实现GitHub到Jenkins的自动化构建?

  • 答:可以在GitHub仓库的“Settings”中找到“Webhooks”选项,添加Jenkins的URL作为WebHook目标地址,使GitHub在代码推送后触发Jenkins的构建任务。

问:Jenkins自动化部署的安装步骤是什么?

  • 答:首先,卸载已存在的旧版本,使用rpm -e jenkins命令。然后,从清华大学镜像站下载Jenkins RPM包并上传到服务器,使用rpm -ivh jenkins-2.375.2-1.1.noarch.rpm安装。安装完成后,可以在/etc/sysconfig/jenkins中修改端口和账号信息并使用systemctl daemon-reload使其生效。
#你可能也喜欢这些API文章!