7

puppetの変数(より具体的にはファクト)に特定の値があることを表明し、そうでない場合はインストールを中止する方法はありますか?

背景として、状況は次のとおりです。

ほとんどの場合、ホスト名を参照できますが、IPアドレスを使用する必要がある場合もあります。たとえば、ログコレクターホストは、(サブネット全体ではなく)複数の特定のマシンのファイアウォールでポートを開く必要があります。ファイアウォールに穴を開けるには、IPアドレスを使用する必要があります。マシンのIPアドレスは変更されないため、構成の一部としてIPアドレスをエンコードすることを計画していましたが、実際のIPアドレスが構成内のIPアドレスと一致するかどうかを個々のホストで確認し、失敗した場合は失敗します。そうではありません。それは可能ですか?

4

1 に答える 1

11

私はこのようなものがうまくいくと信じています:

if $ipaddress != $expectedipaddress {
  fail("IP mismatch")
}

このfail()関数は解析の失敗を引き起こします。条件付きでラップすると、assert希望する動作が得られるはずです。

この特定の使用法はテストしていませんが、解析が失敗した場合、新しいカタログはコンパイルされず、クライアントは何も取得しません。

于 2011-09-28T20:27:03.403 に答える