これは私の質問です。シェフがsudoersファイル内の何かを、おそらくはシェフのユーザーが誤ってcookbookを使って壊してしまった場合、サーバーは完全にアクセスできなくなるのではないかと心配しています。シェフを使ってsudoersファイルを管理すべきですか?
私はsudoersファイルを混乱させ、もはやボックスに入ることができないので、私たちが顧客用のプロダクションサーバを完全に失うのは嫌です。
これは私の質問です。シェフがsudoersファイル内の何かを、おそらくはシェフのユーザーが誤ってcookbookを使って壊してしまった場合、サーバーは完全にアクセスできなくなるのではないかと心配しています。シェフを使ってsudoersファイルを管理すべきですか?
私はsudoersファイルを混乱させ、もはやボックスに入ることができないので、私たちが顧客用のプロダクションサーバを完全に失うのは嫌です。
シェフには、この検証者を支援する機能があります。あなたは、このようなあなたのsudoerテンプレートにverifies
を設定することができます。
template '/etc/sudoers' do
source 'whatever.erb
verify 'visudo -c -f %{path}'
end
visudoを構文を拒否した場合、一時ファイルの場所に置かれることはありません飽きないだろうと収束が失敗します。確かに、構文上有効ではあるが役に立たないsudoersがあれば、これは役に立ちません。 /etc/sudoers.d
構造を使用することを検討することができます。これは、各ビットを少なくともいくらか分離しておき、誤って迷惑にならないようにするためです。
ちょうどcronjobで定期的にrootとして実行するようにChefを設定するだけです(chef_client料理ブックでそれを実行できます)。したがって、あなたが料理本でそれを壊した場合、それを料理本に修正し、次回の実行時にChefがファイルを修正します。 – Tensibai
checkout ['sudo'](https://github.com/chef-cookbooks/sudo)のクックブックを使うと、sudoersファイルを管理する方がはるかに簡単です。いつものように、あなたは '' chefspec'(https://github.com/sethvargo/chefspec)を使って 'sudo'の料理本を使ったあなたの料理本をテストすることもできます – MrRoth