2015-06-19 33 views
0

我想創建使用saltstack和capistrano在ec2上運行我的rails應用程序。如何使minion連接到使用saltstack和capistrano的git存儲庫

這是我迄今已成功完成的工作。 使用鹽雲和鹽主我能夠創建一個新的奴才實例,並設置應用程序運行所需的一切,即紅寶石,鐵軌,獨角獸,MySQL等

我已經爲capistrano做了適當的配置。當我嘗試部署時,我看到以下錯誤。

DEBUG [ed84c6ab] Command: (GIT_ASKPASS=/bin/echo GIT_SSH=/pathto/git-ssh.sh /usr/bin/env git ls-remote -h [email protected]:somehost/somerepo.git) 
DEBUG [ed84c6ab] Warning: Permanently added 'github.com,ip' (RSA) to the list of known hosts. 
DEBUG [ed84c6ab] Permission denied (publickey). 
DEBUG [ed84c6ab] fatal: Could not read from remote repository. 
DEBUG [ed84c6ab] 
DEBUG [ed84c6ab] Please make sure you have the correct access rights 
DEBUG [ed84c6ab] and the repository exists. 
DEBUG [ed84c6ab] Finished in 12.600 seconds with exit status 128 (failed). 

因此,這意味着,從我的本地Capistrano的是能夠連接到僕從但是當它試圖檢出混帳回購協議失敗。

我知道這是因爲minion的ssh公鑰沒有添加到github中。

所以目標是。 運行鹽雲創建實例 運行鹽highstate來安裝應用程序運行 Capistrano的部署所需的一切來啓動應用程序

我想太自動化的github授權過程。我的意思是一旦創建了minion,那麼minion應該能夠克隆git repo而無需任何人工干預。

我很困惑,因爲這可以通過capistrano或saltstack來完成。

+1

使ssh forwarding爲github上

在Capistrano的deploy.rb文件配置SSH轉發

那麼如何推動一個已知SSH密鑰的奴才?這可以通過saltstack完成。或者,您可以創建一個「新的個人訪問令牌」,並將其用於基於http(s)的基本身份驗證:https://developer.github.com/v3/auth/#basic-authentication – ahus1

+0

所以,您的意思是我的本地私鑰或者其公鑰在github上可用的主人可以複製到其他機器上? – bitkot

+0

複製SSH密鑰是一種可能的選擇。帶有個人訪問令牌和HTTP基本身份驗證的另一個選項將爲您提供對您的小夥伴或主人可以執行的操作(即只讀訪問github回購)的細粒度訪問控制。所有這些信息都應該安全地存儲在支柱中,如果你不想讓其他奴才來訪問它。 – ahus1

回答

0

我用github ssh轉發來實現這個功能。 以下是我所做的更改。

步驟加入forward_agent: true

set :ssh_options, { 
user: 'user', 
auth_methods: %w(publickey), 
port: <some port>, 
forward_agent: true 
} 
相關問題