3
我有以下廚師配方如何讓移動文件之前廚師等待應用程序部署?
aws_s3_file "/usr/share/tomcat/webapps/system.war" do
bucket "mybucket"
remote_path "builds/system_latest.war"
aws_access_key_id node[:aws_access_key_id]
aws_secret_access_key node[:aws_secret_access_key]
end
service "tomcat" do
action [:restart]
end
aws_s3_file "/usr/share/tomcat/webapps/system/WEB-INF/application.properties" do
bucket "mybucket"
remote_path "config/application.properties"
aws_access_key_id node[:aws_access_key_id]
aws_secret_access_key node[:aws_secret_access_key]
end
,每天我運行它工作正常,但如果機器是一個新鮮的一個。
當它是一個新的機器,我得到:
變量Errno :: ENOENT -------------沒有這樣的文件或目錄 - 在/ usr /共享/ tomcat的/webapps/system/WEB-INF/application.properties
我認爲這是因爲tomcat沒有部署應用程序,因此運行此語句時文件夾不存在。
我想象在應用程序部署時移動文件是一個正常的過程。我該怎麼做,並保證廚師將等到部署完成?
這將導致一個資源,將「更新」每個廚師運行,對不對?可能是一個不幸,但必要的邪惡。只是一個想法,但是你怎麼看待將這種循環放入現有資源的'only_if'或'not_if'中?這會起作用嗎?這不會導致廚師跑等,但沒有「更新」資源的副作用? – 2014-11-05 01:49:41
如果您是那種關心資源更新計數的人(提示:不要),您可以改用LWRP。 – coderanger 2014-11-05 08:20:00
但是我確實想要替換文件,即使這存在。這是開發人員爲應用程序設置屬性的文件,因此應在每次部署時更新:) – JSBach 2014-11-05 15:06:53