gitlab-ci - Gitlab 屏蔽变量

标签 gitlab-ci

我似乎无法屏蔽 Gitlab CI 上的变量 -

我正在尝试上传 ssh 私钥,无论我做什么,它都拒绝屏蔽它。

那是我试图在 Gitlab 上存储一个私钥,供我的生产服务器具有公钥的 Gitlab 运行器使用。我不是在问如何在构建过程中将它介绍给运行者,如对 this question 的回答中所述。

我使用的是 ed25519 key ,因此字符开始时并非都是 base 64。

所以在生成 key 之后

$ cat gitlab
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmU....etc etc
-----END OPENSSH PRIVATE KEY-----

我通过管道将它传输到 base64
$ cat gitlab|base64

没有快乐。

Gitlab 似乎也将换行符引入粘贴的文本/变量字段

所以我做了
$ cat gitlab|base64|tr -d '\r'

乃至
$ cat gitlab|base64|tr -d '\r'|xclip

我找到了 this guy
那是什么鬼
$ cat gitlab|base64|base32|tr -d '\r'|xclip

都没有快乐。

任何人得到这个工作?

最佳答案

给我 cat gitlab | base64 -w0作品。

在你绝对想用 tr ,你会使用 tr -d '\n'反而。

编辑 : 当然你还需要在使用它时取消base64。

这是一个可以消除混淆的示例:

silex@silex-laptop:/tmp$ echo secret > gitlab

silex@silex-laptop:/tmp$ MY_SECRET_ENCODED="$(cat gitlab | base64 -w0)"

silex@silex-laptop:/tmp$ echo $MY_SECRET_ENCODED
c2VjcmV0Cg==

silex@silex-laptop:/tmp$ MY_SECRET_DECODED = "$(echo MY_SECRET_ENCODED | base64 -d)"

silex@silex-laptop:/tmp$ echo $MY_SECRET_DECODED
secret

这里 MY_SECRET_ENCODED 是您在界面中的变量, MY_SECRET_DECODED 是您在脚本中使用的变量。

关于gitlab-ci - Gitlab 屏蔽变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60247900/

相关文章:

docker - 使用 Docker 为 Ci 和 Runners 安装 Gitlab CI,并在重启后使其持久化

google-chrome - Chrome在docker网络内部无法访问

maven - 在容器中安装 Docker 供 GitLab CI 构建使用

docker - Gitlab CI - 注册表和 nginx

continuous-integration - 如何仅在 Gitlab Ci runner 中的 HEAD 提交上运行管道?

docker - 具有外部包依赖性的 Golang 测试未通过 Gitlab Ci,但通过本地

kubernetes - 如何使用 gitlab-ci 动态分配命名空间名称?

node.js - 在 AWS Ubuntu 实例中为 NodeJS 部署设置 GitLab CI

Gitlab 从 only/except 更改为控制 ci 的规则,它的替代方案是什么

gitlab - 如何使用 REST API 在 GitLab 中创建文件,如果存在同名文件,则覆盖旧文件