我們目前正在使用廚師來配置我們的服務器,並且我們希望我們的食譜/食譜本在mongo數據庫安裝並運行後自動添加一些數據。在mongodb啓動後獲得廚師執行mongodb腳本
這是我們開始遇到問題的地方。我們使用的執行資源來運行蒙戈這樣的腳本:
execute "install-mongodb-config" do
command "mongo #{node[:mongodb][:mongo_db_host]}/#{node[:mongodb][:mongo_db]} \"#{node[:mongodb][:mongo_add_config_script]}\""
action :run
end
配方的這部分總是失敗不管我們盡力了!我不會詳細介紹我們在這裏嘗試的所有內容(除非我需要),但讓我只說我已經用盡了所有可能的訂閱並通知(我認爲)。
該問題源於我們使用mongodb :: 10gen_repo安裝mongodb的事實。當apt-get安裝包時,配方會退出,然後廚師繼續執行更多資源。
我們已經嘗試過在mongodb :: 10gen_repo之後直接執行上述資源,但似乎沒有mongodb可用,並且mongo shell無法連接並運行腳本。我們看到的錯誤是有點像這樣:
MongoDB shell version: 2.0.2
Thu Sep 6 18:40:45 ReferenceError: setTimeout is not defined mongotest.js:2
failed to load: mongoAddConfig.js
沒有我們曾試圖已經能夠解決這個問題一個很好的廚師方式。我們使出的事情是替換爲下面的執行資源:
execute "install-mongodb-config" do
command "sleep 60; mongo #{node[:mongodb][:mongo_db_host]}/#{node[:mongodb][:mongo_db]} \"#{node[:mongodb][:mongo_add_config_script]}\""
action :run
end
這只是讓60秒的命令睡眠運行蒙戈腳本之前。我知道這不是正確方式做到這一點,但它現在的作品。
任何人都可以提出正確的方法來做到這一點?我有一種感覺,我需要與創建mongodb廚師腳本並請求功能的人交談!
好吧,似乎越來越接近我所需要的。我明白,使用connectTimeoutMS參數似乎是一個很好的方法,但我的問題是,我似乎無法連接在mongo交互式shell上使用該連接字符串方法。有任何想法嗎? –
您可以顯示您運行的命令的輸出以及返回消息的內容嗎? – ChadsworthIII