Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 使用ssh密钥在服务器上运行作业_Docker_Ssh_Gitlab Ci - Fatal编程技术网

Docker 使用ssh密钥在服务器上运行作业

Docker 使用ssh密钥在服务器上运行作业,docker,ssh,gitlab-ci,Docker,Ssh,Gitlab Ci,我想在此服务器上部署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 StrictHostKey

我想在此服务器上部署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"
job\u deploy\u prod:
阶段:部署
仅:
-主人
-标签
时间:手动
环境:
姓名:prod
变量:
服务器:serverBNP-prod1
SSH\u选项:-p 22-l udoc-o BatchMode=true-o StrictHostKeyChecking=no
脚本:
-导出版本=$(fgrep-m1-w VERSION pom.xml | sed-re的/^.*>(*)您可以:

  • 使用类型为
    文件
    设置
    /
    CI-CD
    /
    变量
    ,将私钥数据放入其中,或
  • 如果您只有服务器的用户名和密码,则可以使用“sshpass”命令,并在CI-CD变量部分提供
    sshpass
    环境变量
有关如何使用GitLab CI/CD环境变量(文件类型、安全性等)的更多详细信息,请参见:

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