Время компиляции против времени выполнения в рецептах шеф-повара
У меня есть следующий (упрощенный) рецепт, называемый Java, для установки Java, конечно.
Файл recipes / default.rb
include_recipe "install_java"
Файл рецептов / install_java.rb
# Install RPM from yum repo via yum_install library function
yum_install("jdk1.7.0_51")
# List the directories in /usr/java
jdk_dir = `ls -ld /usr/java/jdk1.* | sort | tail -1`
if jdk_dir.empty?
raise "Missing JDK installation"
end
Когда я запускаю рецепт "chef-client -o recipe [java]"
Synchronizing Cookbooks:
- java
Compiling Cookbooks...
ls: /usr/java/jdk1.*: No such file or directory
================================================== ========================= Ошибка компиляции рецепта в /var/chef/cache/cookbooks/java/recipes/default.rb ===== ================================================== ====================
RuntimeError
------------
Missing JDK installation
Похоже, что функция yum_install () НЕ вызывается. Однако, если я изменю рецепт install_java.rb, просто
# Install RPM from yum repo via yum_install library function
yum_install("jdk1.7.0_51")
оно работает.
Почему это?