簡體   English   中英

使用Chef Cookbook EC部署ruby on rails應用程序

[英]ruby on rails app deployment using chef cookbook ec

我正在嘗試與廚師一起在Rails應用程序上部署ruby,但是我遇到了一個問題。 在代碼部署期間,我需要運行包更新/包安裝。 我試圖弄清楚如何運行該命令。 我嘗試使用“ bundler true”,在部署時廚師拋出了錯誤。 所以我寫了一個函數

execute "bundler" do
command "bundle install"
ssh_wrapper "/home/ubuntu/.ssh/chef_ssh_deploy_wrapper.sh"
end

由於我的gemfile包含適用於github和其他位存儲桶帳戶的gems和代碼存儲庫,因此它停止將其添加到known_hosts,並且Chef無法繼續。

如何避免此類問題並順利進行部署。 請提示。

通常我會用

  • 負責配置服務器的廚師
  • capistrano用於部署代碼(包括安裝gem)

話雖如此,您可以使用ssh config來配置用戶帳戶,而不必進行嚴格檢查

# files/ssh_config
Host github.com
    StrictHostKeyChecking no    

# recipes/user_setup.rb
user = "someuser"
cookbook_file "/home/#{user}/.ssh/config" do
  source "ssh_config"
  owner "#{user}"
  group "#{user}"
  mode "0600"
end

您可能會在廚師部署期間嘗試捆綁安裝gem時遇到問題,因為廚師出於執行廚師腳本的目的而使用其自己的隔離ruby安裝,您不想捆綁到該ruby中,而是捆綁到您指定的已安裝ruby中

同樣,我建議使用capistrano進行部署

還建議使用ubuntu用戶使用Chef進行配置,但是要使用第二個帳戶來運行Rails應用程序,capistrano將使用此應用程序帳戶進行部署

您的問題來自未建立與github的初始ssh連接等。我在.ssh / config文件中使用以下配置:

主機github StrictHostKeyChecking否UserKnownHostsFile = / dev / null LogLevel = ERROR用戶yourdeployuser IdentityFile〜/ .ssh / somefile.pem

要點是,您要明確告訴ssh不需要,或者要在連接github時使用ssh中的已知主機功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM