Skip to content

Команды machine ​

Справочник команд группы machine — управление жизненным циклом ОС: обновления, откаты, перезагрузки, диагностика и конфигурация.

Как устроены обновления и откаты — в разделе Обновление системы, формат конфигурации — в разделе Конфигурация машины.

Команды ​

machine info ​

Выводит информацию о системе: ресурсы, версии, состояние образа.

ssh server machine info

machine logs ​

Выводит системный журнал. Можно фильтровать по конкретному сервису и ограничивать количество строк.

ssh server machine logs [<service>]

Пример:

bash
# Последние 100 строк общего журнала
ssh server machine logs

# Логи конкретного сервиса
ssh server machine logs selenite-controller

# Следить за логами сервиса
ssh server machine logs -f selenite-controller

# Вывести всё, что есть
ssh server machine logs -n -1 selenite-controller

machine dmesg ​

Выводит сообщения из кольцевого буфера ядра (dmesg).

ssh server machine dmesg [flags]

Флаги:

ФлагОписание
-T, --ctimeПечатать человекочитаемые таймстампы
-l, --levelОграничить вывод заданными уровнями (например, err,warn)
-w, --followОжидать новые сообщения

Примеры:

bash
ssh server machine dmesg

ssh server machine dmesg --ctime

ssh server machine dmesg --level err,warn

ssh server machine dmesg --follow

machine reboot ​

Перезагружает машину.

ssh server machine reboot

Пример:

bash
ssh server machine reboot

WARNING

Соединение будет разорвано сразу после отправки команды. Все запущенные стеки будут остановлены и автоматически подняты после перезагрузки (если настроен restart: unless-stopped или always).


machine upgrade ​

Обновляет образ ОС до последней версии через bootc. После обновления требуется перезагрузка для применения нового образа.

ssh server machine upgrade

Пример:

bash
# Обновить образ
ssh server machine upgrade

# Обновить и сразу перезагрузить
ssh server machine upgrade && ssh server machine reboot

Процесс обновления:

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

TIP

Обновление не влияет на работающие стеки до перезагрузки.


machine rollback ​

Откатывает ОС к предыдущей версии образа. Как и upgrade, требует перезагрузки.

ssh server machine rollback

Пример:

bash
# Откатиться к предыдущему образу
ssh server machine rollback
ssh server machine reboot

bootc хранит ровно одну предыдущую версию образа, поэтому откат возможен только на один шаг назад.


machine switch ​

Переключает машину на другой образ ОС (другой registry или тег). Полезно для смены канала обновлений или миграции на другой образ.

ssh server machine switch <image>

Пример:

bash
# Переключиться на другой тег
ssh server machine switch ghcr.io/alt-atomic/selenite:stable

# Переключиться на другой образ
ssh server machine switch registry.example.com/my-selenite:latest

После switch нужна перезагрузка для применения изменений.


machine config apply ​

Применяет конфигурацию машины из YAML, переданного через stdin. Подробнее о формате — в разделе Конфигурация.

ssh server machine config apply [--reboot]

Флаги:

ФлагОписание
--rebootПерезагрузить машину после применения конфига

Примеры:

bash
# Применить конфиг
ssh server machine config apply < config.yml

# Применить конфиг и перезагрузить
ssh server machine config apply --reboot < config.yml

machine config patch ​

Частично обновляет конфигурацию машины. Принимает патчи через stdin в формате YAML. Поддерживает два стандарта:

  • JSON Merge Patch — объект с изменениями (добавление, изменение, удаление полей через null)
  • JSON Patch — список операций (add, replace, remove)

Можно передать несколько патчей через YAML document separator (---). Патчи применяются последовательно.

ssh server machine config patch [--reboot]

Флаги:

ФлагОписание
--rebootПерезагрузить машину после применения патча

Примеры:

bash
# Добавить новый параметр sysctl (Merge Patch)
echo 'sysctl:
  params:
    vm.max_map_count: "262144"' | ssh server machine config patch

# Изменить значение существующего параметра (Merge Patch)
echo 'sysctl:
  params:
    net.ipv4.ip_unprivileged_port_start: "1024"' | ssh server machine config patch

# Удалить параметр через null (Merge Patch)
echo 'sysctl:
  params:
    net.ipv4.ip_unprivileged_port_start: null' | ssh server machine config patch

# Использовать JSON Patch для замены значения
echo '- op: replace
  path: /sysctl/params/net.ipv4.ip_unprivileged_port_start
  value: "80"' | ssh server machine config patch

# Использовать JSON Patch для добавления нового поля
echo '- op: add
  path: /sysctl/params/net.ipv4.tcp_syncookies
  value: "1"' | ssh server machine config patch

# Использовать JSON Patch для удаления поля
echo '- op: remove
  path: /sysctl/params/net.ipv4.tcp_syncookies' | ssh server machine config patch

# Несколько патчей последовательно
cat <<EOF | ssh server machine config patch
sysctl:
  params:
    vm.swappiness: "60"
---
- op: add
  path: /sysctl/params/vm.dirty_ratio
  value: "20"
---
sysctl:
  params:
    vm.dirty_background_ratio: "5"
EOF

# Применить патч и перезагрузить
echo 'sysctl:
  params:
    net.ipv4.ip_unprivileged_port_start: "80"' | ssh server machine config patch --reboot

machine config show ​

Выводит текущую сохранённую конфигурацию машины.

ssh server machine config show

Пример:

bash
ssh server machine config show

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

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

bash
# Скачать новый образ (без прерывания сервисов)
ssh server machine upgrade

# В удобное время — перезагрузить
ssh server machine reboot

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

bash
# Откатиться к предыдущему образу
ssh server machine rollback

# Перезагрузиться
ssh server machine reboot

Обновление конфигурации с перезагрузкой ​

bash
# Полная замена конфига
ssh server machine config apply --reboot < config.yml

# Частичное обновление (добавить sysctl параметр)
echo 'sysctl:
  params:
    vm.max_map_count: "262144"' | ssh server machine config patch --reboot