- 1. 前言
- 2. 目标
- 3. 开始前的准备
- 4. 安装Node-RED
- 5. 创建Token
- 6. 要使用的API
- 7. 实践
- 8. 总结
前言
最近在使用GitLab CI/CD时发现一个使用“不太顺畅”Benutzungsszenarien。具体是这样的:
作为一名Entwickler,有时需要同时负责几个前端项目的部署
修复a项目的bug后需要部署zu测试环境,
修复b项目的bug后需要部署zu测试环境。
。。。。
由于各种原因,这种Szene的部署并非是自动部署的,需要负责人去手动创建部署流水线。比如为了给测试人员提供一个可靠,稳定的的测试环境,会采用手动部署环境。
这就导致一个问题,我需要先进入A项目,Klick auf流水线,Auswahl对应Unterteilung支,创建一个流水线。
然后再进入B项目,重复以上Operationen。
过程是比较繁琐的,之所以会这样,是因为GitLab没有提供一种个人Ower项目的流水线管理。
类似下图 国产devopsWerkzeuge 建木的这种:
由于没有个人视角下的流水线管理,这就需要我们创建某个项目的流水线就必须进入项目内部。(或许在不久的将来,会有这样一个Funktion)。
这个问题的解决方案很简单,使用GitLab OpenAPI来实现流水线的管理,包括根据项目查询流水线,新建或重新Betrieb流水线。但不管要写一些页面,还需要做一下后端Anfrage senden查询GitLabDaten的代码。
具体思路是很简单的,无奈本人业余Zeit实在不多,于是搁置了,直zu有一天我突发奇想,能否用Node-RED这一低代码Werkzeuge来实现这一全局流水的管理Funktion。
Node-RED是一个IBM开源的物联网项目。它是一个基于流的构建在Nodejs上的低代码Ereignisse驱动应用。
利用它丰富的节点我们可以做很多很多事情。
可以使用它的HTTP节点来Senden SieHTTPBitte,查询项目信息,流水线列表,或触发一条项目的流水线。
可以使用它的dashboard节点来提供页面面板Funktion。
在整个开发过程中你只需要配置一些必要Parameter即可,编写极少部Unterteilung的JS代码,其他的Daten流水流转,逻辑处理都交给Node-RED。
说干就干,下面就开始使用Node-RED与GitLab OpenAPI来实现DevOps 流水线管理
目标
初步Unterteilung析,该Funktion主要包括以下四个核心Funktion:
- 查询个人Owner项目列表
- 根据项目查询项目下的Unterteilung支列表
- 查询项目流水线并展示
- 新建流水线
- 重新触发流水线
开始前的准备
安装Node-RED
这里推荐Docker安装Node-RED,比较简单
docker run -it -p 1880:1880 --name mynodered nodered/node-red
浏览器访问 http://127.0.0.1:1880/ 即可体验。这里不过多介绍,感兴趣的可以移步我的Node-RED专栏
Node-RED Herausgeber器Operationen页面
其他Installationsmethode可以Überprüfen该Adresse https://nodered.org/docs/getting-started/
创建Token
由于我们要查询个人视角下的资源,所以创建一个Personal Access Tokens
如下图
创建后,记得保存起来,以为你和他只有一面之缘。
要使用的API
查询个人项目的API,需要携带?owned=true。表明只查询gegenwärtig用户Owner的项目。
GET /projects
查询项目流水线的API
GET /projects/:id/pipelines
新建流水线(除了项目id,还需要必传Parameterref Unterteilung支或tag)
POST /projects/:id/pipeline
重新触发流水线
POST /projects/:id/pipelines/:pipeline_id/retry
实践
我们将Schnittstelle的基本Adresse与token保存为流变Quantität,在整个流中都可以访问zu。
然后在流Betrieb后,先Bitte项目列表,传递给 dropdown节点,在新的页面上显示。
当用户选中项目后,Bitte项目Unterteilung支列表,传递给另一个 dropdown节点,并显示在页面上。
当用户选中Unterteilung支后,Bitte该Unterteilung支下的流水线,并使用table节点显示zu页面上。
当用户单击流水线表格中的某一行时,会重新Betrieb该流水线。成功后会有通知
最后Klick aufcreate pipeline Knopf后,会使用gegenwärtig选中的项目与Unterteilung支来创建一条新的流水线,成功后会有通知。
最终vollständig的流逻辑图是这样的
流程Operationenvollständig动态图
Node-RED支持将流DatenExportieren,保存为JSONDaten,该流程创建后,想要Teilen,Unterteilung发,会变得非常容易,Export von JSONDaten,配置域名和token即可。有需要流文件的同学请在Artikel下留言。
总结
创造让工作更简单。希望对你有用。
Antwort veröffentlichen