这是我的问题。我担心如果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
结构,因为这种结构可使每一位至少保持一定程度的分隔,并且更难以意外地使自己感到困惑。