2

私は CFEngine を初めて使用し、ホスト名に基づいていくつかのアクションを実行しようとしています。

例: stable を持つすべてのホスト名には、slist 1 のパッケージが含まれている必要があります。test を持つすべてのホスト名には、slist 2 のパッケージが含まれている必要があります。

bundle agent package_lists {
packages:
 stable&dist_class::
    "$(user_packages.package_stable)"
            package_policy => "add",
            package_method => yuck,
            classes => if_repaired("package_changed");
}

これを変更して、テストを含むホストをウェルに含めたい

テストの追加で十分ですか?dist_class:: と stable が何であるか理解できません。

-stable&dist_class::

+テスト&stable&dist_class::

4

1 に答える 1

1

OR演算子「||」を使用する必要があると思います and '&'/'&&' 演算子ではなく (3 つのクラスすべてが同じパッケージのインストールを必要とするサーバーのグループを表すクラスについて話していると仮定します)。アンパサンド (&) またはドット (.) を使用すると、個人ではなく 3 つのクラスすべてに属するサーバーのみが一致します。https://docs.cfengine.com/docs/3.5/manuals-language-concepts-classes.html

一度に 3 つのクラス定義すべてに一致するサーバーのみを一致させたい場合は、アンパサンド (の 1 つ) が適しています。

個人的には、物事をできるだけアトミックに保つのが好きなので、実際には 3 つのクラスすべての promise を個別に定義するか、共通パッケージ用の新しいクラスを作成して、上記のサーバーがそのクラスに属していることを確認します。

于 2015-02-11T10:22:02.237 に答える