2016-10-05 81 views
5

這裏的是我要實現的工作流程:到位桶管道如何設置SSH代理部署遠程服務器

  1. 提交代碼
  2. 到位桶管道運行測試我的公共碼頭工人形象
  3. 到位桶管道執行ansible腳本部署在我的公衆形象碼頭工人做工精細

第2個步驟,但現在的問題是:如何 /我應該在哪裏存儲我的私鑰s允許ssh代理ssh到我的遠程服務器?

我有點不願意將私鑰存儲在Pipeline env設置中,因爲其他人都可以通過管理員訪問回購可以看到它。

有一個類似的問題here問,但答案建議在碼頭上設置密鑰並使用私人回購,這與我的有點不同。

回答

0

我已經設置了一個類似的過程並使用管道環境變量,有一個複選框來保護這個值,所以你不必擔心其他人查看它。

的設置是很容易的:

  • 的Base64編碼的私人密鑰並將其存儲在一個環境變量 在到位桶
  • 提交了「my_known_hosts」文件到您的代碼庫,其中包括 公共SSH遠程主機的密鑰。

然後在你的到位桶,pipelines.yml文件設立的known_hosts和重點:

- mkdir -p ~/.ssh 
- cat my_known_hosts >> ~/.ssh/known_hosts 
- (umask 077 ; echo $MY_SSH_KEY | base64 --decode > ~/.ssh/id_rsa) 

完整文檔,請點擊這裏https://confluence.atlassian.com/bitbucket/access-remote-hosts-via-ssh-847452940.html

2

現在,您可以根據管道設置的設定SSH密鑰,使您不需要使用環境變量並將其複製到容器中的某些位置。私鑰完全不顯示。

Settings -> Pipelines -> SSH keys

你需要得到公共密鑰來生產容器known_hosts文件。