首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >简化从Gitlab CI运行程序到外部服务器运行多个SSH命令

简化从Gitlab CI运行程序到外部服务器运行多个SSH命令
EN

Stack Overflow用户
提问于 2022-11-08 07:57:43
回答 2查看 34关注 0票数 0

目前正在使用ff。在.gitlab-ci.yml中运行多个SSH命令的(简化)代码:

代码语言:javascript
运行
复制
stage: deploy
script:
  - ssh 1.2.3.4 "docker login -u foo -p bar example.com"
  - ssh 1.2.3.4 "docker pull my_image"
  - ssh 1.2.3.4 "docker run -d -p 80:80 my_image"
  - ssh 1.2.3.4 "and so on ..."
  - ssh 1.2.3.4 "exit"

它可以工作,但是否有一种更简单的方法来做到这一点,例如,没有在每一行中指定ssh 1.2.3.4

EN

回答 2

Stack Overflow用户

发布于 2022-11-08 07:59:06

您可以使用环境变量,并使它们从受保护项目级配置中传递出来。

为了最小化复制,请像这样使用!参考资料

代码语言:javascript
运行
复制
.ssh-access:
  script:
    - ssh 1.2.3.4

script:
 - !reference [.ssh-access, script]
 - docker login
 - ...

但是你不能把这个加到同一行,或者你可以尝试,我还没有检查

您也可以尝试多行命令:

代码语言:javascript
运行
复制
script:
 - |
   !reference [.ssh-access, script]
   docker login
   ...
票数 0
EN

Stack Overflow用户

发布于 2022-11-24 05:36:25

对于那些关心我的人,我想出了一些对我有用的东西。上述代码的简化版本是:

代码语言:javascript
运行
复制
stage: deploy
script:
  - >
    ssh 1.2.3.4
    "
      docker login -u foo -p bar example.com;
      docker pull my_image;
      docker run -d -p 80:80 my_image;
      and so on ...;
      exit;
    "
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74357354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档