我有一個廚師食譜奇怪的問題。讓我告訴你,我是新來的廚師,如果有什麼看起來非常錯誤的話,請原諒我。廚師第一次執行失敗
我有我的戰爭檔案,它是由Spring Boot建立的。我只需要運行java -jar <file>.war -config=config/
來運行我的應用程序。
我最近開始嘗試廚師,並開始寫食譜來完成這項工作。
從我的食譜中的代碼如下:
#Some code has been omitted intentionally.
directory "#{home}" do
owner 'root'
group 'root'
mode '0755'
recursive true
end
directory "#{home}/config" do
owner 'root'
group 'root'
mode '0755'
end
cookbook_file "#{home}/config/ehcache.xml" do
source "ehcache.xml"
mode "0644"
end
# Get the war file from the repo
remote_file "#{home}/app.war" do
source "#{node['baseos']['files_repo_url']}/wars/app.war"
owner 'root'
group 'root'
mode '0644'
end
execute 'Run the war file' do
command "java -jar '#{home}/app.war' -config='#{home}/config/'"
action :run
end
戰爭文件,及其內容相關的config文件夾中execute
命令被炒魷魚之前被成功複製到各自的目的地。問題是當機器被新創建時kitchen create
,第一個kitchen verify
會失敗,說'Errno::ENOENT: No such file or directory - java -jar /opt/com/app.war -config=config/'
。 這隻發生在第一次。令人驚訝的是,在再次說出kitchen verify
後,該應用程序啓動併成功運行。
這很奇怪,因爲所需的文件app.war和config /在機器中已經存在,或者應該已經存在於具有適當權限的機器中。
我知道Chef會按順序處理這些東西,所以如果執行命令是我配方中的最後一行,它應該已經具有運行war文件所需的內容。我瘋了,任何人都可以提供一些見解,這一點?
謝謝!
可能的重複[如何從廚師的食譜背景運行java程序](http://stackoverflow.com/questions/18414090/how-to-run-a-java-program-at-background-from-廚師食譜) –
一個要點或運行的東西和調試輸出可能會有所幫助。我想知道是不是在抱怨戰爭,但配置和我注意到你已經在cookbook_file資源gh_home刪除配置。你的錯誤輸出在配置參數時也看起來不匹配執行資源。 – lamont
對不起,這是一個錯字,它實際上是家,而不是gb_home。現在糾正它。 –