使用Jenkins Dashboard插件可视化部署

k8s技术圈

共 2456字,需浏览 5分钟

 ·

2021-11-11 22:14


使用Jenkins可视化部署


插件地址:https://plugins.jenkins.io/deploy-dashboard/   插件名称:Deploy Dashboard by Namecheap


您是否曾经问过自己或您的同事“开发环境中当前部署了哪个版本?” 或“昨天将修补程序部署到生产了吗?” 或“我们的客户两天前遇到了一个错误。您还记得当时部署的版本吗?”。

如果经常出现诸如此类的问题,并且您使用Jenkins进行其CI / CD处理,那么此插件绝对适合您!

在敏捷开发领域,我们必须非常频繁地更新软件应用程序。每个版本都应部署到众多环境中。最终,当我们谈论将哪个版本部署到哪个环境时,情况变得一团糟。将整体部署状态放在一个地方会很好,对吗?

在Namecheap,我们将Jenkins用于CI/CD。因此,我们决定通过编写一个名为Deploy Dashboard的Jenkins插件来确保始终检查每个部署状态。

在本文中,我将向您展示该插件的功能以及如何使用它。

使用Deploy Dashboard进行可视化

首先,我们想知道哪些代码发布版本已部署到哪些测试和生产环境(或设备)。为了实现此目标,我们制作了一个自定义视图,用作仪表板。

此外,可以通过单击特定环境查看发布历史。


入门:将新版本添加到仪表板

假设您已经有一个Jenkins作业可以构建和部署您的应用程序。您唯一要做的就是addDeployToDashboard使用环境名称和应用程序版本参数调用该方法。

properties([parameters([    string(name: 'version', description: 'App version to deploy'),    choice(        name: 'env',        choices: ['dev', 'prod'],        description: 'Environment where the app should be deployed'    )])])node {    //...    stage("Deploy") {        // Deploy app version ${params.version} to ${params.env} env                //add release information to the dashboard        addDeployToDashboard(            env: params.env,            buildNumber: params.version        )    }}

创建仪表板

在Jenkins主页或文件夹上,单击+选项卡以启动新视图向导(如果看不到+,则可能是您无权创建新视图)。

在“创建新视图”页面上,为视图命名,然后选择“部署视图”类型,然后单击“确定”。

正则表达式可用于指定要包含在视图中的作业。(例如:“ .*”将选择文件夹中的所有作业)。


将部署按钮添加到您的版本

在某些情况下,您希望将CI管道与CD分开保存。在这种情况下,Deploy Dashboard Plugin允许您向构建侧边栏添加其他按钮。您应该只调用buildAddUrl带有标题和URL地址的方法。

node {    stage("Build") {        String builtVersion = "v2.7.5"        // Build app with ${builtVersion} version        //Add buttons to the left sidebar        buildAddUrl(title: 'Deploy to DEV', url: "/job/app-deploy/parambuild/?env=dev&version=${builtVersion}")        buildAddUrl(title: 'Deploy to PROD', url: "/job/app-deploy/parambuild/?env=prod&version=${builtVersion}")    }}

此功能对于质量检查团队非常有用。只需单击几下,他们就可以将任何现有版本部署到其环境中。我希望它有助于改善您对Jenkins的体验!欢迎您为GitHub中的项目做出贡献。


声明式脚本

pipeline {    agent any    parameters {      choice choices: ['dev','prod'], description: '', name: 'env'      string defaultValue: '', description: '', name: 'version', trim: false    }	        stages {        stage('Hello') {            steps {                script {                   addDeployToDashboard(                        env: params.env,                        buildNumber: params.version                    )                }            }        }    }}


浏览 45
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报