Patch-политика описывает параметры обновления пакетов для разных операционных систем и дополнительные шаги.
patchConfig:rebootConfig: DEFAULTretryStrategy: nullapt:type: DISTexcludes: []exclusivePackages: []yum:security: trueminimal: trueexcludes: []exclusivePackages: []goo: nullzypper: nullwindowsUpdate: nullpreStep: nullpostStep: nullmigInstancesAllowed: falsedryRun: false
Параметр | Тип | Описание |
|---|---|---|
rebootConfig | Строка | Поведение перезагрузки при установке обновлений:
|
retryStrategy | Объект или null | Выполнение повторных попыток установки обновления:
|
apt | Объект или null | |
yum | Объект или null | |
goo | Объект или null | |
zypper | Объект или null | |
windowsUpdate | Объект или null | |
preStep | Объект или null | |
postStep | Объект или null | |
migInstancesAllowed | Булево | Разрешить выполнение на виртуальных машинах, входящих в группы (MIG). Параметр используется для совместимости, поведение агента не изменяет. |
dryRun | Булево | Если true, агент выполнит все шаги симуляции: проверит наличие пакетов, определит, какие будут обновлены, но не применит ни одного изменения и не перезагрузит систему. Полезно для оценки объема обновлений перед реальным запуском. Несовместимо с retryStrategy. |
Применяются на виртуальных машинах под управлением Debian и Ubuntu.
apt:type: DISTexcludes: []exclusivePackages: []
Параметр | Тип | Описание |
|---|---|---|
type | Строка | Тип обновления:
|
excludes | Массив | Список пакетов, которые не будут обновлены. Например: ["docker-ce", "containerd.io"]. Несовместимо с exclusivePackages. |
exclusivePackages | Массив | Список пакетов, которые единственные будут обновлены. Пакеты, отсутствующие в системе, игнорируются. Несовместимо с excludes. |
Применяются на виртуальных машинах под управлением RHEL, CentOS и SberLinux.
yum:security: trueminimal: trueexcludes: []exclusivePackages: []
Параметр | Тип | Описание |
|---|---|---|
security | Булево | Если true, агент установит только обновления, помеченные как исправления безопасности. |
minimal | Булево | Если true, агент установит только минимально необходимые версии пакетов для закрытия уязвимостей, без мажорных обновлений. Совместимо с security. |
excludes | Массив | Список пакетов, которые не будут обновлены. Например: ["kernel-debug", "kernel-devel"]. Несовместимо с exclusivePackages. |
exclusivePackages | Массив | Список пакетов, которые единственные будут обновлены. Пакеты, отсутствующие в системе, игнорируются. Несовместимо с excludes. |
Применяются на виртуальных машинах Windows с менеджером пакетов GooGet. Выполняется googet update.
goo: {}
Объект может быть передан, но не содержит настраиваемых полей.
Применяются на виртуальных машинах под управлением SUSE Linux Enterprise Server и openSUSE. Выполняется zypper patch с соответствующими флагами.
zypper:withOptional: falsewithUpdate: truecategories:- securityseverities:- critical- importantexcludes: []exclusivePatches: []
Параметр | Тип | Описание |
|---|---|---|
withOptional | Булево | Если true, агент включает в обновление необязательные патчи. |
withUpdate | Булево | Если true, агент включает обновления пакетов наряду с патчами. |
categories | Массив строк | Список категорий патчей, которые будут обновлены. Распространенные значения: security, recommended, feature, optional. |
severities | Массив строк | Список уровней критичности патчей, которые будут обновлены. Возможные значения: critical, important, moderate, low. |
excludes | Массив строк | Список названий пакетов, которые не будут обновлены. Несовместимо с exclusivePackages. |
exclusivePackages | Массив строк | Список пакетов, которые единственные будут обновлены. Пакеты, отсутствующие в системе, игнорируются. Несовместимо с excludes. |
Применяются на виртуальных машинах под управлением Windows. Обновления устанавливаются через Windows Update Agent.
windowsUpdate:classifications:- CRITICAL- SECURITYexcludes: []exclusivePatches: []
Параметр | Тип | Описание |
|---|---|---|
classifications | Массив строк | Классы обновлений, которые будут установлены. Возможные значения:
Если список пуст, устанавливаются обновления всех классов. |
excludes | Массив строк | Список идентификаторов обновлений (Knowledge Base), которые не будут установлены. Обычно не обновляют через политику следующие пакеты:
Их лучше обновить вручную. Несовместимо с exclusivePatches. |
exclusivePatches | Массив строк | Список идентификаторов обновлений, которые единственно будут установлены. Несовместимо с excludes. |
Блоки позволяют выполнить произвольный скрипт:
preStep — перед началом обновления;
postStep — после его завершения, но до проверки необходимости перезагрузки.
preStep:linuxExecStepConfig:localPath: /opt/scripts/pre-patch.shinterpreter: SHELLallowedSuccessCodes: [0]windowsExecStepConfig:localPath: C:\Scripts\pre-patch.ps1interpreter: POWERSHELLallowedSuccessCodes: [0]
Параметр | Тип | Описание |
|---|---|---|
linuxExecStepConfig | Объект | Конфигурация для виртуальной машины Linux. |
windowsExecStepConfig | Объект | Конфигурация для виртуальной машины Windows. |
localPath | Cтрока | Абсолютный путь к исполняемому файлу на виртуальной машине. Несовместимо с gcsObject. |
gcsObject | Объект | Альтернативный способ указания скрипта — объект из GCS:
Несовместимо с localPath. |
interpreter | Cтрока | Интерпретатор для выполнения скрипта:
|
allowedSuccessCodes | Массив чисел | Коды ответа, которые считаются успехом. По умолчанию [0]. Если скрипт завершится с кодом вне списка, задача будет помечена как FAILED. |
Ниже приведены примеры Patch-политик для различных сценариев обновления ПО.
Политика обновляет все виртуальные машины Ubuntu с префиксом «web-» каждое воскресенье в 02:00:
Агент на каждой виртуальной машине выполняет apt-get update && apt-get dist-upgrade.
Если во время обновления возникает сбой, агент повторяет попытку.
После установки агент проверяет /var/run/reboot-required. Если файл существует, перезагружает виртуальную машину.
Одновременно обновляются максимум 5 виртуальных машин.
Параметры:
График выполнения — 0 2 * * 0;
Префикс хоста — web-;
Одновременные обработки — 5;
Режим — Patch;
Политика в формате YAML — указан следующий шаблон:
patchesTask:patchConfig:rebootConfig: DEFAULTretryStrategy:enabled: trueapt:type: DISTexcludes: [kubelet, kubeadm, kubernetes-cni, linux-image*, postgresql*]exclusivePackages: []yum: nullgoo: nullzypper: nullwindowsUpdate: nullpreStep: nullpostStep: nullmigInstancesAllowed: falsedryRun: false
Политика обновляет все виртуальные машины CentOS с тегом «security-updates» 1-го числа каждого месяца в 03:00:
Агент выполняет yum update-minimal -y --security.
Пакеты kernel-debug и kernel-devel исключены.
После завершения все машины перезагружаются.
Одновременно обновляются максимум 3 виртуальные машины.
Параметры:
График выполнения — 0 3 1 * *;
Теги — security-updates;
Одновременные обработки — 3;
Режим — Patch;
Политика в формате YAML — указан следующий шаблон:
patchesTask:patchConfig:rebootConfig: ALWAYSretryStrategy: nullapt: nullyum:security: trueminimal: trueexcludes:- kernel-debug- kernel-develexclusivePackages: []goo: nullzypper: nullwindowsUpdate: nullpreStep: nullpostStep: nullmigInstancesAllowed: falsedryRun: false
Политика проверит необходимость обновления — агент определит, какие пакеты нужно обновить, но не изменит систему.
Параметры:
patchesTask:patchConfig:rebootConfig: DEFAULTretryStrategy: nullapt:type: UPGRADEexcludes: []exclusivePackages: []yum: nullgoo: nullzypper: nullwindowsUpdate: nullpreStep: nullpostStep: nullmigInstancesAllowed: falsedryRun: true