云部署:阿里云Jenkins+ Gitee构建自动化部署二#记

1,833 阅读3分钟

介绍

Jenkins是一个流行的持续集成和持续交付工具,可以帮助开发团队自动化构建、测试和部署软件。在阿里云服务器上配置 Jenkins,你可以轻松地创建和管理不同的 CI/CD 管道。本文将为你介绍阿里云服务器上配置 Jenkins 的步骤。

步骤1:创建阿里云服务器(ECS)

首先,在阿里云控制台上创建一台 ECS 实例。确保你选择的 ECS 规格能够满足 Jenkins 运行所需的资源要求。选择一个适合的操作系统,如 Ubuntu 或 CentOS,并分配一个公网 IP 地址。

步骤2:登录服务器并更新系统

使用 SSH 客户端登录到你的 ECS 实例。运行以下命令更新系统软件包:

sudo apt update      # 如果使用 Ubuntu
sudo yum update     # 如果使用 CentOS

从这篇文章云部署:阿里云Docker+Jenkins构建自动化部署一#记

我们可以使用docker安装 Jenkins镜像 至于安装步骤,可以移步我上一篇文章。

接下来我们开始安装和使用Jenkins

验证Jenkins

浏览器输入服务器地址:8080/jenkins_home

会提示要输入密码,密码位于docker/jenkins_home/secrets/initialAdminPassword

centos 可以使用命令: cat /docker/jenkins_home/secrets/initialAdminPassword 或者用可视化操作查找

提示安装,使用推荐的 image.png

然后创建一个管理员

image.png

配置好服务后,就会进入到这个界面

image.png

我这里默认就安装了中文包,如果忘记初始化的时候选择中文包,则可以通过【Dashboard】——>【Manage Jenkins】——>【Plugins】——>【Available plugins】,搜索local,选择localization Chiness,点击install进行安装。

image.png

安装完成后,重启Jenkins或者在浏览器输入服务器地址:8080/jenkins_home/restart

安装gitee插件

image.png

image.png 选择不重启安装 image.png 安装完成后手动重启jenkins容器 docker restart jenkins

创建jenkins任务

image.png

image.png

安装Publish Over SSH、NodeJS

同样的方式这里不再具体操作,【Dashboard】——>【Manage Jenkins】——>【Plugins】——>【Available plugins】,搜索Publish Over SSHNodeJS,安装后重启。

(1)Publish Over SSH配置远程服务器

Publish Over SSH用来连接远程服务器,接下来去设置连接远程服务器验证方式,本案例采用密码验证。 找到Publish Over SSH,点击新增新增后出来的面板中输入信息,之后点击高级 输入密码服务器端口,并点击Test Configuration Success进行测试,显示successs则成功,之后先点击应用,再保存

这一个步骤可以借鉴该篇文章juejin.cn/post/730603…

GitHub webHooks配置

在gitee配置webhooks

image.png

payload URL 在jenkins项目里面配置,如下:

image.png

然后生成密码:

image.png

然后将URL和密码添加到在gitee的webhooks里面

手动触发webhook无法生效:

image.png

最后,再本地提交代码触发自动构建

image.png

image.png

配置项目邮件通知

  • 进入项目的配置页面,找到“Post-build Actions”部分,点击“Add post-build action”按钮并选择“Editable Email Notification”。

  • 配置邮件接收者、主题、内容等信息。

  • 如果在第2步中全局配置了这里都不用填写,直接默认就可以。

  •  

定制化的是

 

  • 标题是:

  • 构建通知:${BUILD_STATUS} - ${PROJECT_NAME} - Build # ${BUILD_NUMBER}

  • 内容是:


    (自动化构建邮件,无需回复!)

    项目名称:$PROJECT_NAME

    项目描述:$JOB_DESCRIPTION

    运行编号:$BUILD_NUMBER

    运行结果:$BUILD_STATUS

    触发原因:${CAUSE}

    构建日志地址:${BUILD_URL}console

    构建地址:$BUILD_URL

    详情:${JELLY_SCRIPT,template="html"}


  • 参数的一些说明:

    • $BUILD_STATUS – 构建结果
    • $PROJECT_NAME – 构建脚本名称
    • $BUILD_NUMBER – 构建脚本编号
    • $JOB_DESCRIPTION – 构建项目描述
    • $CAUSE – 脚本启动原因
    • $BUILD_URL – 脚本构建详情URL地址
  • 更多模板,自行搜索哈~

打包配置Build Steps

提交服务器代码是没有node_moudle,所以我们需要执行脚本去安装依赖, 源码管理可以看到Build Steps模块,选择Execute NodeJS script

image.png

这个node版本是在上面我们已经配置过的,如果需要其他版本可通过上面操作新增NodeJs即可

后续在需要打包的时候,再配置该选项命令,用来构建项目,现在暂且不需要

image.png

image.png 上面打包到了Jenkins中的workspace中,但是我们设置的项目环境路径跟这个不同,比如开发环境项目目录是/docker/html/dev/dist/,所以需要打包后,把dist文件内容推送到/docker/html/dev/dist/目录下。修改一下上面的脚本,改为下面:

#!/bin/bash
node -v 
npm -v 
npm install
# npm i esbuild-linux-64@0.13.4 -D
echo "依赖安装成功"
npm run build
echo "打包成功"
echo $PATH

遇到的问题

在配置gitee的账号级ssh后,按照官方文档:help.gitee.com/base/accoun…

然后报错如下:

image.png

说明之前已有登录失效凭证,需要删除才可以。 mac电脑在这删除:

image.png