CFEngine соответствует имени хоста в агенте комплектации
Я новичок в CFEngine, и я пытаюсь выполнить некоторые действия на основе имен хостов.
Например: все имена хостов, имеющие стабильный, должны содержать пакеты из списка 1, все имена хостов, у которых есть тест, должны содержать пакеты из списка 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::
+test& stable & dist_class::
1 ответ
Я считаю, что вы должны использовать оператор ИЛИ '||' а не операторы '&'/'&&' (если вы говорите о классах, представляющих группы серверов, для которых все три класса требуют одинаковой установки пакета). Использование амперсанда (&) или точки (.) Будет соответствовать только серверам, принадлежащим всем трем классам, а не отдельным лицам. https://docs.cfengine.com/docs/3.5/manuals-language-concepts-classes.html
Если вы хотите сопоставлять только серверы, которые соответствуют всем трем определениям классов, тогда амперсанды - это один из способов.
Лично я хотел бы держать вещи как можно более атомарными, поэтому я бы на самом деле определял обещания для всех трех классов отдельно или создавал новый класс для общих пакетов, гарантируя, что вышеуказанные серверы принадлежат этому классу.