私は数年前に Opscode Chef を使用していましたが、新しい会社で再び Opscode Chef を使用することを考えています。同じ回避策。
私は Server フレーバーの多くの機能を気に入っていましたが、クックブックとロールのバージョン管理が、Chef サーバーへのアイテムの実際の追加とは別であるという事実が好きではありませんでした。私の考えでは、これら 2 つの異なる手順を実行することは、誰かがファイルから実行リストを作成し、それらの変更をバージョン管理にコミットすることを怠ったときに問題を求めているだけでした。私は最終的にchef-soloを使用し、cronジョブで実行してリポジトリから変更を取得し、特定のnode.json構成を指すシェルスクリプトから実行しました. このように、アイテムを Chef に取り込む唯一の方法は、アイテムを Git に入れることでした。正直なところ、これが唯一の正しい方法のように思えます。プロジェクトにバージョン管理を使用せず、ファイルを運用サーバーに FTP で送信します。
新しいバージョンの Chef には、バージョン管理されたリポジトリから構成の更新のみを読み取る機能がありますか? そうでない場合、リポジトリでコミット フックを使用して Chef の構成を更新するツールはありますか? 同じような懸念を持っている人はいますか? どのように対処しましたか?
私は Puppet (またはその他のプルベースのツール) を使用することにもオープンです。経験がないので、最初の選択肢ではありません。Ansible / プッシュベースのツールは機能しません。ファイアウォールの背後にあるマシンを管理しており、ネットワーク接続が予測できない場合があります。