6

展開用に Puppet スクリプトを試しています。

これらのスクリプトを作成するプロセスで最も難しいのは、スクリプトを繰り返しテストすることです。

私は自分のローカル開発マシンではやりたくないのでpuppet apply、台無しになりがちです。申請したい白紙のリモートボックスがあります。また、操り人形師が私をどのように助けることができるかわかりません。後で実稼働展開のために puppetmaster を使用する可能性がありますが、今のところ、コードを機能させたいだけです。

そこで、ローカルの puppet モジュール パスからリモート マシンの /tmp へのさまざまなディレクトリを rsync し、実行する簡単なシェル スクリプトをまとめましたpuppet apply。これは大変不便です。特に構文エラーについて話している場合は遅いです。

私が本当に欲しいのは、puppetd ​​<-> puppetmaster 接続のようなもので、リモート マシン上の puppetd ​​がコンパイル済みのマニフェストを受け取るようなものだと思います。Puppetmaster を実際にセットアップしたり、証明書を処理したりする必要はありませんpuppet apply user@host

そのようなものは何もないように見えますが、他の人はこれにどのように対処していますか? Puppet スクリプトに取り組んだ経験は、私にとって非常に苛立たしいものです。

4

7 に答える 7

9

Vagrant を使用することをお勧めします。puppet マスターのセットアップをテストしていない場合は、組み込みのプロビジョナー統合を使用できます。

すべてのセットアップが完了したら、vagrant プロビジョニングを実行するか、vagrant vm で puppet apply を実行します。

こちらも参考になりそうな関連記事です。

于 2012-07-05T13:12:17.807 に答える
3

rspec-puppetpuppetlabs-spec-helperを使用して、puppet rpsec テストも見ていきます。rspec-puppet-init は puppet doc と geppetto を破壊し、シンボリック リンクが原因で他のいくつかの問題が発生する可能性があります。 hieraにはいくつかの問題がありますが、テストはそれ以外の場合は簡単にセットアップでき、うまく機能し、jenkins/ に関連付けることもできます。ハドソン。

于 2012-07-20T21:54:02.903 に答える
2

私は通常、Puppet スクリプトに対して 2 つのレベルのテストを行います。

迅速なフィードバックのための単体テスト: rspec-puppetを使用して記述されたこれらは、テスト対象の class/define/etc の Puppet カタログをコンパイルし、それについてアサーションを行います。マイナーな変更を行うたびにローカルで実行し、チェックインするたびにビルド サーバーで実行します。テストはすばやく (10 秒未満) 実行され、構文と依存関係の問題を検出します。

実際に機能することを確認するための機能テスト: ArubaライブラリでCucumberを使用して記述されています。機能の実装が完了し、単体テストに合格すると、これらのテストは適切な Puppet マニフェストを使用して ( Vagrantを使用して) VM をプロビジョニングし、ログインして、VM の状態に関するアサーションを作成します。テスト自体は次のようになります。

Given I am SSHed into Vagrant box "webserver"
When I type "php --version"
Then the output should include "PHP 5.4.11"
于 2013-05-12T12:11:58.203 に答える
0

別の質問を見ているときに、ランプに出くわしました。git を使用している場合は、便利かもしれません。スライドデッキをご用意しています。

README.md から: 「Rump は、Puppet を Git チェックアウトに対してローカルで実行するのに役立ちます。」

于 2012-07-14T17:47:31.390 に答える
0

Puppet スクリプトの自動テスト用のツールキットである citac に興味があるかもしれません。Github で入手できます: https://github.com/citac/citac

Citac は、さまざまな構成で Puppet マニフェストを体系的に実行し、一時的なシステム障害、さまざまなリソース実行順序などを模倣します。生成されたテスト レポートは、非冪等リソースの問題、収束関連の問題などについて通知します。

このツールは実行に Docker コンテナーを使用するため、テスト中もシステムは変更されません。Puppet スクリプトの実行中に状態の変化が追跡され、詳細なテスト レポートが生成されます。

ツールがどのバグを検出できるかを把握するために、150 を超える公開 Puppet スクリプトを使用した大規模な評価が実行されました。結果はこちらから入手できます: http://citac.github.io/eval/ フィードバックやプルリクエストなどをお気軽にお寄せください。テストをお楽しみください!

于 2016-07-31T08:20:55.417 に答える
0

操り人形マスターを実行したくないのはなぜですか? まさにこの状況のた​​めに作成されました。

puppetmaster を絶対に実行できない場合は、(curl または wget を使用して) 最初にファイルをダウンロードする別のスクリプトで puppet 呼び出しをラップし、ダウンロードが成功した後にそれらを適用する必要があります。puppetmaster は実行するのが非常に単純なアプリケーションであることを考えると、それを使用しない方が良いとは思えません。

于 2014-06-12T10:45:39.460 に答える