mpe*_*ner 2 chef-infra chef-recipe
我正在写一个使用ruby_libvirt的食谱,它需要libvirt-devel.
所以我需要在chef_gem ruby_libvirt之前运行yum_package libvirt-devel.
我把yum_package放在了chef_gem的一个食谱中,在角色运行列表中.
我希望这会迫使这个问题.
chef_gem似乎是提前评估的.
由于chef_gem在安装红宝石宝石编译阶段,你应该yum_package在此阶段运行了.
yum_package 'libvirt-devel' do
action :nothing
end.run_action :install
chef_gem 'ruby_libvirt'
Run Code Online (Sandbox Code Playgroud)
chef_gem但是,只有当Chef需要安装一些gem时(例如,当它在配方中进一步使用它时)才应该使用资源.如果您只需要安装gem使用gem_package资源.它在执行阶段与任何其他资源一样进行评估.
yum_package 'libvirt-devel'
gem_package 'ruby_libvirt'
Run Code Online (Sandbox Code Playgroud)