Skip to content

Обновление системы ​

Обновления Selenite устроены по схеме A/B: на диске хранятся два развертывания образа — активное, с которого загружена система, и резервное. Обновление не изменяет работающую систему: новый образ записывается в резервное развертывание, а переключение на него происходит при перезагрузке. Обновление либо применяется целиком, либо не применяется вовсе, а предыдущее развертывание остаётся на диске — к нему можно вернуться в любой момент.

Как проходит обновление ​

Обновление выполняется командой machine upgrade. Под капотом используется bootc:

  1. machine upgrade скачивает новый образ из registry
  2. Образ записывается в неактивный раздел
  3. После перезагрузки машина загружается с нового образа

Скачивание нового образа ничего не меняет в текущей системе — он активируется только при перезагрузке.

Откат ​

Если после обновления что-то сломалось, machine rollback вернёт машину на предыдущую версию образа. Хранится ровно одна предыдущая версия, поэтому откат возможен на один шаг назад — дальше поможет только machine switch.

Смена образа ​

machine switch переключает машину на другой образ целиком: другой тег или вообще другую сборку — например, собственную.

Типичные сценарии ​

Плановое обновление:

bash
ssh server machine upgrade   # скачать новый образ, сервисы не прерываются
ssh server machine reboot    # в удобное время применить его

Откат после проблемного обновления:

bash
ssh server machine rollback
ssh server machine reboot

Полный синтаксис команд и флаги — в справочнике команд machine.