【问题标题】:Can't run Chef as root无法以 root 身份运行 Chef
【发布时间】:2016-01-25 16:08:31
【问题描述】:

在中断了 2 年之后,我最近回到了 Linux。我试着 learn Chef 以自动化某些应用程序部署。在 Chef 教程中,它指出 sudo 是运行安装包的命令所必需的,这是有道理的。

webserver.rb

package 'httpd'

shell 命令

sudo chef-apply webserver.rb

教程摘录:

sudo 是必需的,因为此命令会安装一个包,因此必须以 root 权限运行。如果您在自己的机器上以 root 身份运行,则可以在命令中省略 sudo

我搜索了我遇到的问题并找到了"solution" that didn't workSO question that stated you shouldn't run Chef as root。我不确定我是否会买它。

首先, chef 不打算以 root 身份运行。许多资源假设它们以 root 身份运行,并且需要它。如果不以 root 身份运行,它们将失败。

他还说你应该使用sudo,这与他之前的说法相冲突。

使用 sudo 以测试用户运行 chef 客户端(需要在 sudoers 文件中输入)

我认为他的意思是说您不应该 100% 以 root 身份运行 Chef。我无法以 root 身份运行 Chef,这似乎与 OP 试图解决的问题相反。

我遇到的错误

/opt/rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:298:in `to_specs': Could not find 'chef' (>= 0) among 13 total gem(s) (Gem::LoadError)
        from /opt/rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:309:in `to_spec'
        from /opt/rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_gem.rb:53:in `gem'
        from /opt/rvm/gems/ruby-2.1.5/bin/chef-apply:22:in `<main>'
        from /opt/rvm/gems/ruby-2.1.5/bin/ruby_executable_hooks:15:in `eval'
        from /opt/rvm/gems/ruby-2.1.5/bin/ruby_executable_hooks:15:in `<main>'

如果教程说您可以以 root 身份运行 Chef,并且需要 root 来执行某些食谱,那么我认为 Chef 在某些情况下应该以 root 身份运行。

我最大的问题是如何修复此错误并以 root 身份运行 Chef?它像任何其他用户一样运行良好,但当我尝试sudo 时失败。

【问题讨论】:

  • 您能以非 root 用户身份运行 Chef 吗?似乎找不到您的 Chef gem。
  • 我可以以非 root 用户身份运行 Chef。我以为我错过了 Chef gem,所以我安装了它,然后运行 ​​rvm reset,一切正常。

标签: linux chef-infra


【解决方案1】:

rvm reset 毕竟工作了。

所以我之前嘲笑的“解决方案”帖子实际上是我正在寻找的解决方案。业力。

【讨论】:

    【解决方案2】:

    不要通过 GEM 安装 CHEF。(有很多充分的理由无法解释,但相信我,使用综合包)

    这里发生的情况是您的 rvm 已经覆盖了路径搜索顺序和 ruby​​ 调用,因此 chef 启动器在 rvm 路径中搜索,而不是在嵌入的 ruby​​ chef 路径中搜索。调用 rvm reset 通过删除覆盖/路径添加来解决问题。


    对于“成为或不成为根”部分,我对您链接的问题的回答有错字。 not 在改写后被遗忘,(我希望句子的其余部分需要明确的词根)。无论如何感谢您的提醒。

    Chef 本来应该以root 运行,但强烈建议您以root 远程连接到机器。

    因此,您应该 100% 使用 sudoroot 权限启动 chef-client。如果以普通用户身份运行,Chef 将在某些操作上失败,因为它旨在管理整个系统。

    注意:我说的是“应该”而不是“必须”,因为有人可能会发现一个极端情况,建议在有限的环境中运行 chef,但我真的认为这是一个极端情况,也许 chef 不是正确的工具在这种情况下。

    【讨论】:

    • 感谢您的解释;它提供了清晰度。
    • 不客气。太长了,无法对您的答案发表评论;)
    • 我有相反的经历。将它作为综合包安装会带来一些非常烦人的错误和问题。现在我安装了带有 gems 的 Chef,它运行良好。我也应该说我也不使用 rvm。
    • @Draco gem install 不受支持,使用风险自负。在 11 之前的 Chef 版本中,Gem 安装正常。
    猜你喜欢
    • 1970-01-01
    • 2015-04-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 2020-02-19
    • 2021-05-03
    • 2014-07-16
    • 1970-01-01
    相关资源
    最近更新 更多