这是我的问题。我担心如果Chef在sudoers文件中破坏了某些内容,很可能是由于Chef用户错误地使用了食谱,那么服务器将完全无法访问。

我不希望我们完全为客户失去生产服务器,因为我们弄乱了sudoers文件,无法再将其装箱。

最佳答案

验证程序可以为Chef提供帮助的功能。您可以像这样在sudoer模板上设置verifies:

template '/etc/sudoers' do
  source 'whatever.erb
  verify 'visudo -c -f %{path}'
end

如果visudo拒绝语法,则临时文件将永远不会放置到位,并且收敛将失败。当然,如果您在语法上有效但无用的sudoers,这无济于事。您可能会考虑使用/etc/sudoers.d结构,因为这种结构可使每一位至少保持一定程度的分隔,并且更难以意外地使自己感到困惑。

10-07 15:03