Поддержка работы узла

Сначала определите уровень сбоя, затем выполните следующую команду

Здесь собраны пути диагностики подключения, сборки, раннера, сети и хранилища выделенного физического узла Apple Silicon. Для каждого шага указаны объект проверки, команда и результат, по которому можно определить дальнейшие действия.

Если узел уже есть, сначала запишите его номер и период возникновения проблемы. Если вы ещё не оформляли заказ, ознакомьтесь с тремя конфигурациями и четырьмя доступными узлами.

RUNBOOK / NODE CHECK L0—L4
L0
Состояние узла Проверьте номер узла, регион и статус, возвращаемый консолью
Сначала подтвердить
L1
Канал подключения Адрес, порт, права ключа и отпечаток хоста
SSH
L2
Цепочка инструментов Xcode, материалы подписи, Keychain и логи сборки
BUILD
L3
Выполнение задач Процесс раннера, рабочий каталог, кэш и параллельные задачи
CI
L4
Аппаратный путь Свободное место на диске, внешний SSD, сеть и Thunderbolt 5
I/O
Минимальный набор данных для обращения Номер узла + период + вывод команд
Выберите раздел диагностики

Выберите направление по месту возникновения сбоя

Не меняйте настройки сразу на нескольких уровнях. Сначала выберите категорию, наиболее близкую к наблюдаемому симптому, выполните базовые проверки и только затем переходите на следующий уровень с полученными результатами.

Проблемы подключения

Не удаётся подключиться по SSH или к графическому рабочему столу

Начните с адреса, порта, прав ключа, отпечатка хоста и действительности учётных данных. Если SSH работает, но графическая сессия ведёт себя нестабильно, проверьте разрешение, состояние блокировки и восстановление сессии.

Перейти к диагностике подключения
Проблемы сборки

Сбой Xcode, подписи или конвейера

Сначала зафиксируйте версию Xcode и сохраните исходные логи, затем проверьте идентификатор подписи, профиль provisioning, права Keychain, DerivedData и рабочий каталог раннера.

Перейти к диагностике сборки
Учётная запись и заказ

Вопросы по продлению, оплате или данным узла

Проверьте в консоли номер заказа, период аренды, номер узла и статус оплаты. Не отправляйте в обращении содержимое ключей или полные платёжные данные.

Перейти в консоль
Аппаратное обеспечение и сеть

Проблемы с диском, пропускной способностью или внешним устройством

Запишите свободное место на диске, метку тома, качество сети и дерево устройств Thunderbolt. Не форматируйте диск и не пересоздавайте том без резервной копии.

Перейти к диагностике оборудования
Быстрая диагностика SSH

Начните с локальных прав и процесса рукопожатия

Ошибка подключения не всегда означает, что узел недоступен. Сначала определите, что именно произошло: неверный адрес, недоступный порт, некорректные права локального ключа, изменение отпечатка хоста или отказ сервера в аутентификации.

Команды проверки подключения SSH / VERBOSE
$ chmod 600 ~/.ssh/orbvps_node
$ ssh-keygen -F node-address
$ nc -vz node-address 22
$ ssh -vvv -p 22 \
  -i ~/.ssh/orbvps_node \
  node-user@node-address
Permission denied
Материалы аутентификации не совпадают

Убедитесь, что имя пользователя и закрытый ключ соответствуют текущему узлу, а локальная конфигурация SSH не подменяет ключ другим IdentityFile.

Connection timed out
Канал не установлен

Проверьте адрес и порт в консоли, временно отключите локальные правила прокси и повторите тест. Запишите время возникновения и сеть, из которой выполнялась проверка.

Connection refused
Узел доступен, но порт не принимает подключения

Сохраните полный вывод verbose и не удаляйте записи хоста без необходимости. Сначала убедитесь, что порт совпадает с данными, предоставленными для узла.

REMOTE HOST IDENTIFICATION
Отпечаток хоста отличается от локальной записи

Не игнорируйте предупреждение. Сначала сравните показанный отпечаток с данными узла в консоли и обновите локальную запись только после подтверждения.

01

Проверьте параметры подключения

Заново получите в консоли адрес, порт и имя пользователя; не используйте догадки на основе старой истории терминала.

02

Ограничьте права ключа

Закрытый ключ должен быть доступен для чтения и записи текущему пользователю; конфигурация SSH и родительский каталог также не должны быть доступны для изменения посторонним пользователям.

03

Сохраните вывод рукопожатия

Повторите попытку в режиме verbose, сохраните полный вывод от начала подключения до места сбоя и обезличьте адрес.

Подключение к графическому рабочему столу

Действуйте по порядку: учётные данные, дисплей, блокировка, повторное подключение

Графическая сессия и SSH используют разные каналы. Рабочий SSH не означает, что параметры графической сессии настроены правильно, поэтому фиксируйте симптомы отдельно.

01

Проверьте принадлежность учётных данных

Используйте только учётные данные графической сессии, предоставленные для текущего узла. После смены данных удалите старый пароль, сохранённый клиентом, чтобы он не продолжал автоматически повторять попытки.

02

Уменьшите разрешение при первом подключении

При чёрном экране или зависшем изображении сначала подключитесь с низким разрешением и одним монитором. После входа постепенно увеличивайте разрешение и проверьте, связана ли проблема с параметрами дисплея.

03

Проверьте состояние блокировки сессии

Если отображается экран блокировки, но продолжить нельзя, сначала проверьте ввод с клавиатуры и фокус, затем через SSH проверьте нагрузку на систему и свободное место на диске.

04

Переподключитесь после разрыва

Сначала намеренно закройте подключение клиента, дождитесь освобождения сессии и подключитесь снова. Не создавайте быстро несколько параллельных графических сессий, чтобы не запутаться, какой рабочий стол используется.

Зафиксируйте два набора результатов для поддержки

Укажите, работает ли SSH, на каком шаге останавливается графический клиент, используемое разрешение, исходный текст ошибки клиента и период последнего успешного подключения. Не отправляйте полный пароль доступа.

Xcode и подпись

Зафиксируйте цепочку инструментов и сузьте область сбоя подписи

Сначала проверьте фактический путь и версию Xcode, затем доступные идентификаторы подписи, профили provisioning, доступ к Keychain и кэш проекта. Не обновляйте зависимости и не меняйте материалы подписи в рамках одной проверки.

Цепочка инструментов

Проверьте Xcode и инструменты командной строки

  • Сохраните полный результат xcodebuild -version его выполнения.
  • С помощью xcode-select -p проверьте текущий каталог Developer.
  • Убедитесь, что конвейер и интерактивный терминал используют одинаковые переменные окружения.
Материалы подписи

Проверяйте идентификатор и профиль отдельно

  • Выведите идентификаторы, доступные для подписи кода, и их текущий статус.
  • Проверьте идентификатор приложения, команду и срок действия профиля provisioning.
  • Убедитесь, что процесс сборки может читать соответствующий Keychain, а не только тот, который виден текущему пользователю рабочего стола.
Кэш и логи

Создайте воспроизводимую чистую базовую линию

  • Сначала сохраните лог сбоя, затем очистите DerivedData соответствующего проекта.
  • Повторите запуск с теми же scheme, configuration и destination.
  • Заархивируйте исходный .xcresult; не отправляйте только последние строки терминала.
Проверка подписи и версии XCODE / CODESIGN
$ xcode-select -p
$ xcodebuild -version
$ security find-identity \
  -v -p codesigning
$ profiles show \
  -type provisioning
$ xcodebuild \
  -workspace App.xcworkspace \
  -scheme App \
  -configuration Release \
  -resultBundlePath Build.xcresult \
  build
Границы логов

Сохраните команду, scheme, configuration, цель сбоя, первую ошибку и её контекст. Перед отправкой удалите учётные данные репозитория, токены и рабочие данные.

Раннер CI/CD

Определите, на каком уровне останавливается задача: процесс, каталог или ресурсы

Статус online у self-hosted runner не означает, что окружение задачи полностью готово. Проверьте процесс раннера, права рабочего каталога, занятость кэша, параллельные задачи и путь автоматического восстановления после перезапуска.

A

Состояние процесса

Убедитесь, что служба раннера работает от ожидаемого пользователя и запускается с правильными параметрами конфигурации. Если процесс постоянно завершается, сначала сохраните код выхода и последние логи.

ps aux | grep -i runner
B

Рабочий каталог

Проверьте владельца каталога, свободное место и файлы блокировки старых задач. Не удаляйте рабочий каталог, пока его использует выполняющаяся задача.

df -h && du -sh ./work
C

Стратегия кэширования

Разделяйте кэш зависимостей, DerivedData и артефакты сборки. Сначала найдите проблемный ключ кэша, затем очистите только проект, не удаляя сразу всё содержимое, которое можно использовать повторно.

du -sh ~/Library/Developer/Xcode/DerivedData
D

Параллельность и восстановление

Проверьте, не используют ли несколько задач один Keychain, симулятор или рабочий каталог. После перезапуска сначала выполните одну контролируемую тестовую задачу и только затем восстановите обычную очередь.

uptime && sysctl -n hw.memsize
Порядок восстановления Приостановить новые задачи → сохранить логи → завершить аварийные процессы → проверить каталог → запустить раннер → выполнить тест одной задачи

Если тестовая задача завершается успешно, а параллельные задачи — нет, укажите количество параллельных задач, их метки и список общих ресурсов.

Сеть и хранилище

Проверяйте качество канала, ёмкость диска и обнаружение устройств раздельно

Снижение пропускной способности, замедление сборки и исчезновение внешнего тома могут выглядеть одинаково. Сначала соберите результаты встроенной системной диагностики, затем определите, связана ли проблема с сетью, файловой системой или внешним устройством.

Сеть

Проверьте базовое качество канала

С помощью встроенного инструмента оценки качества сети запишите пропускную способность в обоих направлениях и отзывчивость, а также период проведения теста. На результаты между регионами влияют местный оператор и маршрут.

networkQuality -v
route -n get default
ifconfig
Внутреннее хранилище

Проверьте ёмкость и состояние томов

Сначала проверьте свободное место на системном томе и томе данных, затем найдите рабочий каталог, занимающий больше всего места. При сбое сборки особенно проверьте временный каталог и DerivedData.

df -h
diskutil list
du -sh ~/Library/Developer/*
Внешние устройства

Проверьте путь SSD и Thunderbolt 5

Отдельно проверьте список дисков и дерево устройств Thunderbolt. Если устройство видно, но том не подключён, сначала соберите сведения о состоянии; не стирайте и не переразмечайте его сразу.

diskutil list external
system_profiler SPThunderboltDataType
diskutil info /Volumes/VolumeName
Обновления и изменения среды

Сначала сохраните базовую конфигурацию для отката, затем планируйте проверку перезапуском

Узлы OrbVPS работают стабильно 365 дней в году. Обновления системы, смену цепочки инструментов и операции с перезапуском пользователь планирует самостоятельно с учётом своей нагрузки; если инфраструктура потребует срочных изменений, соответствующая информация будет зафиксирована в консоли.

01

Составьте список изменений

Зафиксируйте текущие версии macOS, Xcode и раннера, ключевые зависимости и логи сборки для отката; не заменяйте цепочку инструментов без базовой конфигурации.

02

Создайте резервную копию данных

Сделайте резервные копии репозитория, материалов подписи, конфигурации раннера, политики кэширования и необходимых артефактов сборки, затем проверьте в отдельном месте, что резервная копия читается.

03

Запланируйте перезапуск со стороны пользователя

Приостановите новые задачи, дождитесь завершения выполняющихся задач и сохраните логи перед перезапуском. Во время перезапуска не меняйте одновременно настройки сети, подписи и сборки.

04

Проведите проверку восстановления

Последовательно проверьте SSH, графический рабочий стол, подключение дисков, версию Xcode и одну контролируемую задачу сборки, а затем восстановите обычную очередь параллельных задач.

Не удаётся определить причину

Передайте команде поддержки воспроизводимые доказательства

Укажите номер узла, период возникновения проблемы, затронутые задачи, выполненные команды, исходный вывод и обезличенные снимки экрана. Если у вас уже есть заказ, создайте обращение в консоли; вопросы по конфигурации или региону до покупки можно отправить через страницу контактов на support@orbvps.com.