Я пытаюсь выполнить запланированную задачу на большом пуле виртуальных серверов, но я хочу минимизировать результирующее влияние на производительность гипервизора, в идеале выполняя его на одном сервере за раз.
Подумайте примерно так:
Hr07.Min01.host_1::
"scheduled_service_restart" usebundle => service_restart;
Hr07.Min02.host_2::
"scheduled_service_restart" usebundle => service_restart;
Hr07.Min03.host_3::
"scheduled_service_restart" usebundle => service_restart;
...
Теперь это работает; но список будет значительно расширяться, и смотреть на него не очень приятно.
Могу ли я сопоставить порядковый номер имени хоста (или порядковый номер любого общего класса) с целым числом в MinXY
хардкласс как-то?
Я бы не рекомендовал использовать 1-минутные классы разрешения, такие как Min01, если вы не запускаете агент с 1-минутным интервалом. Этот класс будет определен только в течение этой минуты. По умолчанию агент запускается каждые 5 минут, и даже с большими наборами политик полный запуск политики обычно завершается в течение минуты.
Возможно, вы захотите взглянуть на splayclass функция. Вы можете определить класс детерминированно для часового или дневного периода. Например:
bundle agent example
{
classes:
Hr07::
"service_restart"
expression => splayclass("$(sys.fqhost)", "hourly"),
comment => "So that we only perform restarts during the 7 oclock
hour, and so that not all hosts restart at the same time
we splay the restart class over an hour. Each host will
define some 5 minute time slot during the hour.";
methods:
service_restart::
"scheduled_service_restart" usebundle => service_restart;
}
#cfengine на irc.freenode.net и help-cfengine также отличные места, чтобы задать вопросы, связанные с CFEngine.