Oakmini Cloud Mac · Quickstart

От заказа до первой сборки: рабочий процесс облачного Mac

Это руководство предназначено для разработчиков и инженеров CI/CD, впервые использующих Oakmini. Вы выберете выделенный физический Mac mini, подключитесь по SSH или VNC, восстановите инструменты Apple Silicon, выполните воспроизводимую сборку и подключите self-hosted runner к существующему конвейеру.

01 Выбрать конфигурацию модель, период, узел, хранилище
02 Подключиться к узлу SSH или VNC
03 Проверить рабочий процесс сборка, артефакты, runner
Сценарии разработки на облачном Mac
oakmini-bootstrap connected
$ uname -m
arm64
$ sw_vers -productVersion
macOS ready
$ system_profiler SPHardwareDataType
Chip: Apple M4
$ xcodebuild -version
Xcode toolchain detected
$ git --version
git ready
✓ базовая конфигурация среды сохранена
Подготовка

Перед началом определите шесть исходных условий

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

Около 10–20 минут

Совместимость с Apple Silicon

Проверьте, доступна ли для зависимостей версия arm64 , уделив особое внимание бинарным инструментам, образам контейнеров, нативным расширениям и старым скриптам. Если проект пришёл из среды Intel, заранее составьте список компонентов для замены или повторной компиляции.

file ./your-binaryПроверить целевую архитектуру

Регион целевого узла

Выберите Сингапур, Японию (Токио), Южную Корею (Сеул), Гонконг или западное побережье США. Для интерактивного VNC выбирайте регион ближе к основным операторам; для сборок без участия пользователя учитывайте расположение исходного кода, хранилища артефактов и команды.

ping / tracerouteИзмерить из рабочей сети

Период аренды и окно задач

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

day / week / month / quarterПериоды заказа нельзя смешивать

Объём хранилища

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

df -hПовторно проверить после подключения

Инструменты удалённого подключения

Для задач в командной строке подготовьте SSH-клиент и ключ; для графического интерфейса macOS — VNC-клиент. Убедитесь, что локальная сеть разрешает нужное подключение, и зафиксируйте влияние корпоративного брандмауэра, прокси или VPN на маршрут.

ssh -VСначала проверить локальный клиент

Права учётной записи и проекта

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

read / build / uploadУказать область прав для каждого пункта
Перед началом создайте базовую запись: требования к архитектуре проекта, целевой узел, планируемый период, бюджет диска, способ подключения, необходимые права и ответственный за приёмку. Каждый следующий шаг сравнивайте с этой записью.
Шаг 1 · Заказ

Выберите модель под нагрузку, затем период и регион узла

Oak Core и Oak Forge — выделенные физические узлы Mac mini, а не виртуальные машины. При выборе учитывайте пиковое потребление памяти, число параллельных сборок, размер рабочего набора и объём артефактов, а не расплывчатые показатели ускорения.

Перейти в портал и выбрать конфигурацию
Oak Core
m4-16-256
Для личной разработки и лёгких сборок
ЧипM4
Память16GB
Хранилище256GB SSD

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

$19.5/день$52.5/неделю$97.3/месяц$264.7/квартал
Поле заказа Доступные варианты Критерий выбора Результат проверки
Расчётный период день, неделя, месяц, квартал Включает подготовку среды, выполнение задач, приёмку и выгрузку артефактов Диапазон дат в заказе соответствует плану
Узел Сингапур, Япония (Токио), Южная Корея (Сеул), Гонконг, западное побережье США Фактический сетевой маршрут между пользователями, исходным кодом и местом назначения артефактов Регион совпадает с базовой записью
Расширение хранилища +1TB SSD или +2TB SSD Общий объём репозитория, кэша зависимостей, рабочего каталога, архивов и экспортируемых артефактов Оставлен запас для очистки и временных файлов
Параллельный вариант Параллельное подключение Thunderbolt 5 (за устройство) Выбирайте только для заранее спланированного многонодового рабочего процесса Проверить количество и топологию каждого узла
Граница расчёта:Поддерживаются только USDT-TRC20 и Visa / Mastercard / Amex (через Stripe); все заказы оплачиваются в USD. Доступный платёжный шлюз определяется ответом портала.
Шаг 2 · Подключение

Сначала проверьте состояние хоста, затем установите SSH- или VNC-сеанс

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

Базовая проверка SSH first-session.sh
ssh -p <PORT> <USER>@<HOST>

hostname
sw_vers
uname -m
system_profiler SPHardwareDataType
df -h
systemsetup -gettimezone
date

Сохраните вывод в журнале миграции. В нём должны быть как минимум имя хоста, версия macOS,arm64 , модель чипа, объём диска, часовой пояс и текущее время.

  1. 01

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

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

  2. 02

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

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

  3. 03

    Проверить отпечаток хоста

    При первом SSH-подключении сохраните отпечаток; при неожиданном изменении остановите подключение и проверьте данные через обращение в консоли.

  4. 04

    Установить графический сеанс

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

ИдентификацияhostnameСоответствует заказу
Системаsw_versСохранить полную версию
Оборудованиеarm64 / M4Сверить с выбранной конфигурацией
Ресурсыdf -hПроверить свободное место
Шаг 3 · Среда

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

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

L1

Homebrew и базовые инструменты командной строки

Восстановите список программ и запустите диагностику, проверив префикс установки и окружение shell. На Apple Silicon распространённые пути должны совпадать с жёстко заданными путями в скриптах либо быть заменены.

brew bundle check && brew doctor
L2

Git и настройки репозитория

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

git config --list --show-origin
L3

Среды выполнения

Восстановите версии Ruby, Node.js, Python и других сред по lock-файлам. Запишите менеджер версий, глобальные инструменты и версии проекта — не полагайтесь на формулировку «последняя версия».

ruby -v; node -v; python3 --version
L4

Инструменты Xcode

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

xcode-select -p; xcodebuild -version
L5

Зависимости проекта

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

file ./path/to/native-extension
Список среды environment-baseline.txt
date
hostname
sw_vers
uname -m
xcode-select -p
xcodebuild -version
git --version
brew --version
brew list --versions
ruby -v
node -v
python3 --version
df -h

Поддерживайте список вместе с проектом

  • Записывайте вывод команд, а не только отметку «установлено».
  • Храните lock-файлы зависимостей и списки пакетных менеджеров.
  • Указывайте пути и права, требующие ручной настройки.
  • Для переключения версий Xcode записывайте явные команды.
  • Не добавляйте ключи, токены и материалы подписи в список.
Первая сборка

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

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

01

Фиксированные входные данные

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

git rev-parse HEAD
02

Разрешить зависимости

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

command 2>&1 | tee dependency.log
03

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

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

security find-identity -v -p codesigning
04

Задать каталог вывода

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

mkdir -p build logs artifacts
05

Сохранить полный журнал

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

echo "$?" > logs/exit-code.txt
06

Повторить запуск

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

./scripts/verify-build.sh
xcodebuild \
  -project Example.xcodeproj \
  -scheme Example \
  -configuration Release \
  -derivedDataPath ./build/DerivedData \
  build 2>&1 | tee ./logs/first-build.log
Критерии успеха

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

Ваш план миграции

Разделите миграцию на три направления: данные, инструменты и CI

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

DATA

Направление данных

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

  1. РепозиторийКлонируйте фиксированную ревизию, проверьте подмодули и объекты больших файлов.
  2. КэшРазделяйте каталоги по пакетному менеджеру и версии проекта; просроченный кэш не переносите.
  3. Рабочий каталогРазделяйте исходный код, временные файлы, журналы и итоговые артефакты.
  4. Точка проверкиgit status / checksum / df -h
TOOL

Направление инструментов

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

  1. HomebrewВосстановите список программ и запустите диагностику.
  2. Среды выполненияУстановите версии Ruby, Node.js, Python и других сред по файлам проекта.
  3. XcodeПроверьте выбранный путь, версию, SDK и схему сборки.
  4. Точка проверкиbrew doctor / xcodebuild -version
CI

Направление CI

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

  1. Регистрация runnerИспользуйте отдельные регистрационные данные задачи и запишите сервисную учётную запись.
  2. Настройка теговИспользуйте теги региона, архитектуры, инструментов и типа нагрузки.
  3. Проверочный запускЗапустите минимальную сборку и загрузите журналы и результаты тестов после удаления чувствительных данных.
  4. Точка проверкиonline / matched / exit 0
MERGE GATE Условия объединения трёх направлений
  • Версия коммита репозитория зафиксирована
  • Список среды сохранён
  • Теги runner соответствуют задаче
  • Проверочная задача завершилась с кодом 0
  • Журналы и артефакты можно экспортировать из указанного каталога
Завершение настройки безопасности

Ужесточите учётные данные и права до подключения рабочего репозитория

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

Базовый принцип минимальных прав

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

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

Права SSH

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

chmod 600 ~/.ssh/private_key
Удаление чувствительных данных из журналов

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

Приёмочная проверка

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

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

Все 7 пунктов пройдены
  1. 01

    Повторное удалённое подключение

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

    Воспроизводимо
  2. 02

    Установка зависимостей

    Восстановите зависимости по lock-файлу; код выхода команды равен 0; архитектура нативных компонентов корректна; журнал установки сохранён без чувствительных данных.

    Отслеживаемо
  3. 03

    Сборка проекта

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

    Код выхода 0
  4. 04

    Экспорт артефактов

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

    Готово к передаче
  5. 05

    Runner в сети

    Статус self-hosted runner — online, его теги соответствуют целевой задаче, а задания неавторизованных проектов не принимаются.

    Теги соответствуют
  6. 06

    Хранение журналов

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

    Можно локализовать
  7. 07

    Управление через портал

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

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

Выберите выделенный Mac mini и выполните первую сборку

Откройте портал, проверьте доступные узлы и выберите Oak Core или Oak Forge, расчётный период и объём хранилища. После заказа выполните подключение, восстановите инструменты и пройдите приёмку по шагам этой страницы.