【发布时间】: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 work 和SO 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