2016-12-06 48 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

不客氣。請記住總是投票贊成有幫助的答案,並接受最能回答您問題的答案。 –