【问题标题】:run job on server using ssh key使用 ssh 密钥在服务器上运行作业
【发布时间】:2021-02-11 16:47:25
【问题描述】:

我想在这台服务器上部署 serverBNP-prod1 我试着在下面写这段代码。使用此代码我应该在哪里添加我的 ssh 本地密钥?

谢谢

job_deploy_prod:
stage: deploy
only:
 - master
 - tags
when: manual
environment:
name: prod
variables:
SERVER: serverBNP-prod1
SSH_OPTS: -p 22 -l udoc -o BatchMode=true -o StrictHostKeyChecking=no
script:
- export VERSION=$(fgrep -m 1 -w version pom.xml | sed -re 's/^.*>(.*)<.*$/\1/')
- ssh $SSH_OPTS -i $HOME/.ssh/id_rsa $SERVER "docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.gitlab.com"
- ssh $SSH_OPTS -i $HOME/.ssh/id_rsa $SERVER "docker rm -f proj"
- ssh $SSH_OPTS -i $HOME/.ssh/id_rsa $SERVER "docker pull registry.gitlab.com/bnp/proj:$VERSION"
- ssh $SSH_OPTS -i $HOME/.ssh/id_rsa $SERVER "docker run -d -p 8080:8080 -e 'SPRING_PROFILES_ACTIVE=prod' -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone --name proj registry.gitlab.com/bnp/proj:$VERSION"

标签: - 产品

【问题讨论】:

    标签: docker ssh gitlab-ci


    【解决方案1】:

    您可以:

    • 使用File 类型的Settings / CI-CD / Variable,您将在其中放置您的私钥数据,或者
    • 如果您的服务器只有用户名和密码,您可以使用“sshpass”命令并提供SSHPASS 环境变量,仍在 CI-CD 变量部分中

    有关如何使用 GitLab CI/CD 环境变量(文件类型、安全性等)的更多详细信息,请参见此处: https://docs.gitlab.com/ce/ci/variables/

    您可以屏蔽变量,但请注意,与 Jenkins 不同,当用户在 Gitlab 中有足够权限查看/编辑设置时,无法删除“显示值”按钮,因此您必须仔细选择您的项目权限,例如,允许其他人 Developer 权限但没有 Maintainer 权限(允许编辑设置)。

    【讨论】:

      猜你喜欢
      • 2023-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      • 1970-01-01
      • 2017-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多