Практический путь устранения неполадок

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

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

5 уровней проверки состояние, сеть, аутентификация, службы, процессы
2 способа обращения самостоятельная диагностика и заявка в консоли
Работа 365 дней в году узлы работают непрерывно 365 дней
Первое подключение

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

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

01

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

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

  • Идентификатор заказа соответствует выбранной модели
  • Регион соответствует рабочему процессу
  • Данные для подключения отображаются полностью
02

Проверьте адрес и порт

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

  • Сначала скопируйте актуальные поля подключения
  • Различайте сетевой тайм-аут и отказ в аутентификации
  • Не публикуйте реальный адрес на открытых страницах
03

Проверьте аккаунт и учётные данные

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

  • Имя пользователя соответствует целевому узлу
  • Права на файл закрытого ключа соответствуют требованиям SSH
  • Старые учётные данные удалены из переменных автоматизации
04

Выберите подходящий способ подключения

Для командной строки, синхронизации кода и автоматизации используйте SSH; для графического интерфейса macOS — удалённый способ подключения из заказа.

  • SSH подходит для скриптов, Git и управления Runner
  • Графическое подключение подходит для проверки интерфейса Xcode
  • Если оба способа не работают, сначала сравните сетевые маршруты
Подключение по SSH

Разбирайте тайм-ауты, отпечатки и ошибки аутентификации отдельно

Ошибки SSH возникают на разных этапах. Тайм-аут подключения обычно указывает на сетевой маршрут; при изменении отпечатка хоста сначала проверьте личность узла; при ошибке аутентификации проверьте имя пользователя, формат ключа и права файла.

Лист проверки подключения Реальные учётные данные не используются
Подготовьте ключ

Ограничьте доступ к чтению закрытого ключа

Храните закрытый ключ в защищённом каталоге, не помещая его в репозиторий. При слишком широких правах SSH-клиент откажется использовать файл.

chmod 600 ~/.ssh/mangovm_node
ssh -i ~/.ssh/mangovm_node -p <PORT> <USER>@<HOST>
Первое подключение

Отдельно проверьте отпечаток хоста

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

Сохраните сессию

Запускайте длительные задачи отдельно от локального терминала

Сборку, архивацию и установку зависимостей должны выполнять Runner, launchd или надёжный менеджер сессий. Не привязывайте критические задачи только к одной SSH-сессии на ноутбуке.

Permission denied

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

Отправить заявку с данными об аутентификации

Connection timed out

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

Продолжить проверку по дереву диагностики
Интеграция CI/CD

Оставьте Runner постоянно работающим, но ограничьте параллелизм задач

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

Регистрация

Используйте отдельную учётную запись Runner

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

Рекомендуемые метки
macos, arm64, m4
Рабочий каталог
Отдельный путь для каждого проекта
Параллелизм

Начните с одной параллельной задачи

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

Начальная стратегия
один Runner, одна параллельная задача
Основание для масштабирования
длительность очереди и пиковая нагрузка
Материалы

Защитите материалы подписи

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

Правила логирования
Скрывайте токены и чувствительные пути
Правила завершения
Отзывайте временный доступ и выполняйте очистку
Журналирование

Сохраняйте воспроизводимые логи

Записывайте версию коммита, версию Xcode, SDK, файл блокировки зависимостей, время начала, код завершения и ключевые ошибки. К заявке прикладывайте только обезличенный фрагмент и идентификатор задачи.

Минимальный набор полей
версия, время, задача, код завершения
Цель хранения
возможность воспроизвести ту же сборку
Администрирование macOS

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

Узлы MangoVM стабильно работают 365 дней в году. Обновляйте macOS и инструменты разработки в выбранный период низкой нагрузки; до изменений выполните резервное копирование, проверку совместимости и подготовьте материалы для отката.

Подготовка

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

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

Проверка

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

Проверьте целевые версии macOS, Xcode, SDK, менеджера пакетов, Runner и скриптов проекта. Сначала выполните компиляцию, тесты, архивацию и проверку перед загрузкой на некритичной задаче.

Выполнение

Приостановите задачи, записывающие данные

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

Откат

Заранее определите условия неуспеха

Если критический проект не компилируется, Runner не регистрируется или ключевая зависимость несовместима, прекратите дальнейшие изменения, сохраните логи и восстановите данные и инструменты по заранее записанным шагам.

Параметры инструментов для проверки до и после обновления
Объект проверки Записать до обновления Проверить после обновления Сохранить при сбое
Xcode и SDK текущая версия, цель проекта, путь к инструментам командной строки компиляция, модульные тесты, архивация вывод версии и лог первой ошибки
Управление зависимостями файл блокировки, настройки зеркала, охват кэша восстановление зависимостей в новом каталоге файл блокировки и фрагмент ошибки разрешения
Служба Runner метки, параллелизм, рабочий каталог, способ запуска автоматический выход в сеть и получение задач после перезапуска состояние службы и код завершения задачи
Данные проекта охват резервной копии, место экспорта, результат проверки выборочное чтение и тест восстановления отсутствующие пути и последняя рабочая версия
Хранилище и объединение

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

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

Состояние дополнения

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

  • Запишите идентификатор заказа и название дополнения
  • Убедитесь, что текущий узел соответствует заказу
  • Сохраните сводку состояния из консоли

Монтирование и права

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

  • Сверьте имя тома с фактическим путём монтирования
  • Проверьте системную учётную запись Runner
  • Убедитесь, что путь остаётся рабочим после перезапуска

Объединение через Thunderbolt 5

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

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

Сначала проверьте официальное дополнение, затем сообщайте о проблеме

На странице тарифов указаны дневные, недельные, месячные и квартальные цены для +1TB SSD, +2TB SSD и объединения через Thunderbolt 5. По вопросам биллинга укажите идентификатор заказа и выбранный период.

Посмотреть дополнения и цены
Дерево диагностики

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

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

  1. 01

    Допускает ли состояние консоли подключение

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

    Условие прохождения: состояние нормальное, адрес и поля доступа заполнены.
  2. 02

    Достигает ли локальная сеть целевого порта

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

    Условие прохождения: соединение с целевым портом устанавливается, тайм-аутов больше нет.
  3. 03

    Соответствуют ли данные аутентификации текущему узлу

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

    Условие прохождения: личность хоста подтверждена, аутентификация успешна.
  4. 04

    Находятся ли системные службы в ожидаемом состоянии

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

    Условие прохождения: целевая служба запущена, способ запуска понятен.
  5. 05

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

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

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

Для разных проблем отправляйте разные минимальные наборы данных

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

Общие вопросы

Оценка конфигурации, периода и рабочего процесса

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

Подходит для
выбор модели, дополнения, период, разъяснение биллинга
Подготовьте
рабочая нагрузка, параллелизм, регион, идентификатор заказа
Посмотреть варианты обращения
Узел недоступен

В первую очередь отправьте заявку через консоль

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

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

Сначала ограничьте воздействие, затем сообщите о масштабе

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

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

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

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