У меня есть странная проблема с рецептом шеф-повара. Позвольте мне сказать вам, что я новичок в Шеф-поваре, простите меня, если что-то выглядит ужасно неправильно.Выполнение шеф-повара в первый раз
У меня есть файл войны, который построен 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
войны файл, и связанный с ним папку конфигурации вместе с его содержимым успешно копируются в соответствующие пункты назначения перед командой 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/находятся [или должны быть] уже на машине с соответствующими привилегиями.
Я знаю, что шеф-повар обрабатывает эти вещи последовательно, поэтому, учитывая, что команда execute является самой последней строкой в моем рецепте, она должна уже иметь то, что требуется для запуска военного файла. Я схожу с ума, может ли кто-нибудь объяснить это?
Спасибо!
Возможный дубликат [как запустить программу java на фоне рецепта шеф-повара] (http://stackoverflow.com/questions/18414090/how-to-run-a-java-program-at-background-from- chef-recipe) –
может помочь сущность или что-то вроде прогона и отладочного вывода. и мне интересно, не жалуется на войну, но конфиг, и я заметил, что у вас есть gh_home в ресурсе cookbook_file, чтобы удалить конфигурацию. ваш вывод ошибки также выглядит так, как будто он не соответствует ресурсу execute, когда дело доходит до аргумента config. – lamont
Извините, это опечатка, это на самом деле дом, а не gb_home. Исправил его сейчас. –