Chef infra 如何让yum\u包资源在chef\u gem包之前运行?
我正在写一个使用ruby_libvirt的配方,它需要libvirt-devel 所以我需要在chef_gem ruby_libvirt之前运行yum_-package libvirt-devel 我把yum_包放在厨师长宝石的食谱中,放在角色运行列表中。Chef infra 如何让yum\u包资源在chef\u gem包之前运行?,chef-infra,chef-recipe,Chef Infra,Chef Recipe,我正在写一个使用ruby_libvirt的配方,它需要libvirt-devel 所以我需要在chef_gem ruby_libvirt之前运行yum_-package libvirt-devel 我把yum_包放在厨师长宝石的食谱中,放在角色运行列表中。 我希望这会迫使这个问题 chef_gem似乎提前进行了评估。您是否尝试过将其置于ruby块下 yum_package "libvirt-devel" ruby_block 'chef_gem_gemname' do block do
我希望这会迫使这个问题
chef_gem似乎提前进行了评估。您是否尝试过将其置于ruby块下
yum_package "libvirt-devel"
ruby_block 'chef_gem_gemname' do
block do
chef_gem "gemname"
...
end
end
由于
chef\u gem
在编译阶段安装ruby gems,您应该使yum\u package
也在这个阶段运行
yum_package 'libvirt-devel' do
action :nothing
end.run_action :install
chef_gem 'ruby_libvirt'
chef_gem
resource只能在chef需要安装一些gem的情况下使用(例如,当它在菜谱中进一步使用gem时)。如果您只需要安装gem,请使用gem\u包
resource。它与任何其他资源一样,在执行阶段进行评估
yum_package 'libvirt-devel'
gem_package 'ruby_libvirt'
.Chef gem设计为在编译时运行。它不应该在Ruby块中使用。@sethvargo这不是真的,你不能用
chef_gem
调用它,你必须像chef::Provider::ChefGem
那样调用它。@abc123 chef_gem肯定在编译时运行-这是chef_gem和gem_包的主要区别:完美。我试试看。是的,因此我需要gem_包装。想要使用配方中的库。