2016-12-06 72 views
0

我需要由gitlab-ci.yml(运行Ubuntu 14.04)创建的VM安装包装器,然后访问和下载我的整个私人gitlab回购,或者只是一个人来自该回购的文件。动态地添加和删除ssh密钥到私人gitlab回购

首先,我尝试在创建容器和虚拟机的脚本中创建一个ssh密钥,然后远程将.pub添加到gitlab回购。但是我忘记了新建立的容器在构建完成后被丢弃。每次创建容器时都会生成新的键。

无论如何,我可以动态地添加和删除私人GitLab回购密钥?

回答

2

要使用SSH密钥在GitLab CI多克尔容器访问GitLab服务器上的其它存储库:

  • 生成SSH密钥对(一次)。
  • 添加公钥为deploy key每一个地方是关键,应授予访问权限
  • 做注射钥匙插入容器中的以下内容:
    • 添加私人键名为秘密变量SSH_PRIVATE_KEY
    • 添加以下到before_script.gitlab-ci.yml文件
  • 注入GitLab服务器的SSH主机密钥到container:
    • 添加主机密钥为名为GITLAB_HOST_KEY
    • 一个秘密变量添加以下到before_script.gitlab-ci.yml文件
before_script: 
    # Add SSH private key and GitLab server host key 
    - eval $(ssh-agent -s) 
    - ssh-add <(echo "$SSH_PRIVATE_KEY") 
    - mkdir -p /root/.ssh 
    - echo "$GITLAB_HOST_KEY" >> /root/.ssh/known_hosts 
+0

这几乎是我结束了(只是解决了它)。谢啦! – intRG

+0

不客气。请记住总是投票赞成有帮助的答案,并接受最能回答您问题的答案。 –