gitlab 使用特定用户启动 shell 管道

Posted

技术标签:

【中文标题】gitlab 使用特定用户启动 shell 管道【英文标题】:gitlab launch shell pipelines with specific user 【发布时间】:2021-11-22 05:31:19 【问题描述】:

gitlab_version: 14.1.1-ee

我将 ssh-id 复制到用户“user”的目标主机。

当我使用“shell”运行器创建管道时,我无法通过 ssh 与其他主机通信。

我用“id”命令创建了一个简单的任务,返回“root”。

如何使用“用户”用户启动 gitlab 管道。

谢谢。

【问题讨论】:

您能提供更多细节吗?你有可以分享的gitlab-ci.yml 文件吗?到目前为止,您尝试过的任何事情都遇到过错误吗?没有更多细节,我们无法回答您的问题。 【参考方案1】:

我找到了如何使用“其他用户”而不是“跑步者用户”连接到 linux 目标主机。

程序:

    在 gitlab 服务器主机上安装 sshpass。 在Project_name/settings/"CI/CD"/Variable 上,创建一个带密码的pass_var 键值上的字符串。 在 .gitlab-ci.yml 脚本行中的 pipeline/editor 上:
script:
- sshpass -p $pass_var ssh user@host_ip "hostname"

【讨论】:

以上是关于gitlab 使用特定用户启动 shell 管道的主要内容,如果未能解决你的问题,请参考以下文章

仅针对特定分支的 gitlab 触发管道

GitLab CI shell runner不继承系统环境变量

触发 Gitlab CI/CD 管道以部署存储库的特定部分

如何在 gitlab 中触发特定作业

为我的 GitLab-Server 上的每个存储库激活 CI/CD 管道

没有权限运行下游管道的用户如何从上游管道触发运行 GitLab 下游管道