現在、opscode シェフをセットアップしており、すべてのクックブック、環境などを Git 経由で管理したいと考えています。ダッシュボードを介して行われたすべての変更 (新しい環境など) が自動的にバージョン管理に追加されるようにするためのベスト プラクティス/自動化はありますか?
2 に答える
この問題こそが、私が Web クライアントをめったに使用しない理由です。代わりに git リポジトリを用意し、JSON 構成をリポジトリに保存し、knife
そのfrom file
機能を使用してノード、ロール、環境、クックブックを更新します。これにより、git とchef が最新であることを確認するのがずっと簡単になります。
Web インターフェイスを使用する必要がある場合は、cron ジョブを設定して、Chef REST API を介して定期的にデータを取得し、変更を git リポジトリにコミットすることができます。
私たちが設計した解決策 (ただし、完全な開示のために POC を超えていません) は、変更 (http://guide.couchdb.org/draft/notifications.html) とドキュメントが変更されるたびに、couchdb を監視することです。それをcouchdbから引き出してgitにチェックインします。
変更を継続的にリッスンするか、スクリプトを作成して、最後に更新したレコードのポインターを保持することで、これを行うことができます。つまり、このソリューションは、couchdb 内のドキュメントを更新するクライアントに完全に依存しないことを意味します (つまり、knife/webui/recipes/command line スクリプトはすべて、API を介して、couchdb に変更を登録することになります)。
それがあなたに役立つことを願っています