シェフのレシピをテストするためのベストプラクティスは?


18

私のチームは多数のシェフの料理本を作成しました。ノードが適切に構成されていることを確認するテストの作成を開始できるように、どのメソッドとフレームワークを検討する必要があるのか​​疑問に思っていましたか?


それはcooking.seに属しているように聞こえます;)
マーク・ヘンダーソン

しばらくの間、あなたがシェフについて話していると思った:en.wikipedia.org/wiki/Chef_%28programming_language%29
ジャンヌ・ピッカライネン

回答:


7

このためにVagrantを(また)調べるかもしれません。 ビデオはベイグラントとシェフ料理のコンボを使用する方法を示しています。また、OpscodeサイトにはVagrantとChefの専用ページがあります(2015-01-23更新:ページが消えました...)。


3

ありますcucumber-chefその宝石を使用しています「シェフとテスト駆動インフラ」 - -ルビーの宝石と最近リリースされたブックネルソン・スミスらhttp://www.cucumber-chef.org/は、

私のgithubウォッチリストからこれを思い出してくださいhttps : //github.com/gregretkowski/vmth/

VMTH(仮想マシンテストハーネス)は、パペットポリシー、シェフレシピ、リリース展開スクリプトなど、インフラストラクチャの自動化を単体テストするメカニズムを提供します。最新のVMモニター(qemuなど)の機能を使用してシステム状態のスナップショットを作成し、リセットします各テスト後の状態。これにより、VMインスタンスで一連のテストをすばやく連続して実行できます。


1

多くのオプションがあります。

OpscodeのChef開発ロードマップには、テストに役立つ「no-op」サポートがあります。「no-op」は必ずしもあなたが望むことをするわけではないが、その機能に対する欲求を理解していると主張します。


1

ここでの答えのいくつかは少し古いようです。CIおよびローカルテストについては、VagrantをサポートしているTest Kitchenなどのテストハーネスツールを活用することを検討しています。

今日の多くのクラウドおよび仮想化ソリューション(EC2、Digital Ocean、Vagrant、Dockerなど)に対してcoobkooksを実行できます。

また、今日存在する多くのインフラストラクチャテストツールの1つを実行できるプラグインもあります。

  • serverspec-最も一般的なテストフレームワーク。
  • goss -YAML、シンプル、自己完結型のバイナリ、非常に高速。
  • inspec-serverspecが改善されたと考えてください(シェフが作成しました)。
  • testinfra-Pythonベースのサーバーテストフレームワーク。

0

私の経験では、実際にこれを行う唯一の方法は、ステージング環境と注意深い開発プラクティスを使用することです。やるべき実際の作業は非常に面倒で壊れやすいアウトからかって、コミットまたはプッシュで実行されているCIのテストスイートは、多くのシェフは、おそらく多くの良い本で私の主な経験です人形、よりですが(書き込みへの努力と維持)、とんでもない時間をかけて実行します。

編集

これを書いた直後に、ユニオンファイルシステムとかなりの量の足場を使って、Chef / Puppetレシピの合理的に効率的な「ユニット」テストを行う方法があるかもしれないことに突然気付きました。ただし、この分野で既に誰かが行ったことをそこに見つけることはできません。私は自分自身がプロジェクトを見つけたかもしれません。


インフラストラクチャ自体のテストは非常に重要です。当然、ソフトウェアの方法論とはわずかに異なる方法でこれを実装するために必要な多くの方法論、すなわち機能的および非機能的があります。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.