首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chef -在安装YUM之前查询YUM Repo

Chef -在安装YUM之前查询YUM Repo
EN

Stack Overflow用户
提问于 2017-10-30 01:33:47
回答 1查看 75关注 0票数 0

在调用install块之前,我想查询一下YUM repo,以确保pkg可用。

我在recipee的开头使用了以下代码

代码语言:javascript
复制
ruby_block 'shellout' do
  block do
    cmd = Mixlib::ShellOut.new('yum search httpd | grep -w httpd.x86_64 |tr -d "\n\r"'
    cmd.run_command
    Chef::Log.warn("printing #{cmd.stdout}")
    if cmd.stdout =~ /httpd/i
      Chef::Log.warn("pkg found in yum  #{cmd.stdout}")
    elsif cmd.stdout =~ /error/i
      Chef::Log.warn("yum returned an error #{cmd.stdout}")
    else
      Chef::Log.warn("pkg not in repo ? yum search returns #{cmd.stdout}")
    end
  end
end

然而,尽管pkg在repo中,但代码不起作用。

1)我做错了什么?

2)有没有更简单的方法?

3)如果答案是“因为您的代码没有在运行时运行,我如何强制它在Cf的运行时运行?”

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-10-30 02:55:44

这并不是厨师的工作方式。你不会对系统状态做出反应,你声明了它应该是什么,然后Chef强制执行它。在深度上,它执行测试和修复循环,但在高层次上,如果应该安装软件包,则使用package资源。如果您需要先设置一个特定的存储库,我们有yum_repository资源。如果这应该针对每个主机(或每个角色,哪个更好)进行配置,则可以使用一个节点属性来使整个部分具有条件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47003198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档