1

さまざまなホスト グループを定義するためのポリシーを作成する必要があります。特定のことについては、ホスト グループに従って一連のパラメーターをチェックする必要があります。

たとえば、Web クラスターの 2 つの異なるセットがあります。1 つのクラスターhttpd.confでは下/usr/local/apache/httpd.confに保持され、別のセットでは下に保持され/etc/httpd/httpd.confます。

これらの構成のファイル変更をチェックするポリシーがありますが、特定のホスト グループに対して正確にチェックする場所を定義できる方法が必要です。

ヒント、助けは非常に価値があります。

4

1 に答える 1

2

一般的な答えは、グループごとにクラスを定義し、それに応じて適切なパスを変数に割り当てることです。例えば:

vars:
  group1::
    "httpd_conf" string => "/usr/local/apache/httpd.conf";
  group2::
    "httpd_conf" string => "/etc/httpd/httpd.conf";

次に$(httpd_conf)、ファイル操作で使用すると、グループに応じて正しい値になります。

潜在的にトリッキーな部分は、これらのクラスを定義する方法です。この場合、設定と好みによって異なります。たとえば、各グループのホストを明示的にリストすることで、クラスを定義できます。

classes:
  "group1" or => { "host1", "host2", "host3" };
  "group2" or => { "host4", "host5", "host6" };

または、ホスト名パターンと照合することにより:

classes:
  "group1" expression => classmatch("grp1.*");
  "group2" expression => classmatch("grp2.*");

他の可能性もあります。完全な処理については、私の著書「Learning CFEngine 3」の第 6 章にあるホスト グループのクラスの定義を参照してください。

于 2014-06-19T07:22:23.510 に答える