Von der Knotenbereitstellung zur Build-Baseline

Deinen Cloud-Mac in Entwicklungs- und CI-Prozesse integrieren

Wähle zunächst Region, Modell und Laufzeit. Richte danach Zugangsdaten, SSH, grafischen Desktop und den ersten Xcode-Build ein. Halte jeden Status nachvollziehbar fest.

Knotentyp
Dedizierter Apple-Silicon-Physikknoten
Verfügbare Regionen
SG · JP · KR · HK
Ziel
Erster Build und CI-Test erfolgreich
ORB / NODE COMMISSIONING RUNBOOK 01
Auswahl Absicherung Verbindung Build CI-Anbindung
Zielknoten Apple Silicon / dedizierter Physikknoten
Region
Auszuwählen
SSH-Schlüssel
Einzutragen
Xcode-Baseline
Zu prüfen
Runner
Zu registrieren
Abnahme Produktive Aufgaben erst nach erfolgreicher Prüfung ausführen
Adresse, Zugangsdaten und aktueller Verfügbarkeitsstatus werden in der Konsole angezeigt 365 DAYS
Vorbereitung

Sechs Eingaben vorab bereithalten

Bei der Auswahl zählt nicht nur der Chip. Region, Zugriffsart, Toolchain-Versionen und Verantwortlichkeiten beeinflussen die erste Stunde nach der Bereitstellung.

01

Zielregion

Wähle zwischen Singapur, Japan (Tokio), Südkorea (Seoul) und Hongkong die Region mit der passenden Nähe zu Entwicklerinnen und Entwicklern oder dem Artefaktspeicher. Berücksichtige auch die Netzwerkwege zu Repository und Abhängigkeiten.

SG · JP · KR · HK
02

Knotenkonfiguration

Für leichte Builds ist Orb M4 16 ein guter Einstieg. Größere Abhängigkeitsgraphen und parallele Aufgaben eignen sich für Orb M4 24; für speicherintensive Builds oder lokale KI-Experimente wählst du Orb M4 Pro.

3 Konfigurationen
03

Mietdauer

Für kurzfristige Tests eignen sich Tag oder Woche, für stabile Pipelines Monat oder Quartal. Notiere zuerst den internen Abnahmetermin und entscheide danach über eine Verlängerung.

Tag · Woche · Monat · Quartal
04

SSH-Public-Key

Erstelle einen Ed25519-Public-Key ausschließlich für diesen Knoten. Der Private Key darf nur auf autorisierten Geräten oder in einem kontrollierten Schlüsselsystem liegen. Verwende keinen persönlichen Alltagsschlüssel als Teamzugang.

Ed25519 empfohlen
05

Teamzugriffsliste

Lege Knotenverantwortliche, CI-Administratoren und Störungs-Kontakte fest. Jede Person verwendet einen eigenen Schlüssel; halte Hinzufügungen, Änderungen und Widerrufe fest.

Ein Zugang pro Person
06

macOS-Toolchain

Fixiere macOS-, Xcode-, Command-Line-Tools-, Ruby-, Node-, CocoaPods- und Paketmanager-Versionen. Dokumentiere die Anforderungen im Repository und prüfe sie bei der Initialisierung.

Reproduzierbare Versionen
Bestellung und Bereitstellung

Mit drei Entscheidungen zum passenden Knoten

Die Konsole zeigt verfügbare Regionen je Modell. Die im Katalog angezeigten Kombinationen sind in der Regel bestellbar; maßgeblich ist der aktuelle Status in der Konsole.

  1. 01

    Eine von drei Konfigurationen wählen

    Orb M4 16: M4, 16 GB Arbeitsspeicher, 256 GB Speicher. Orb M4 24: M4, 24 GB Arbeitsspeicher, 512 GB Speicher. Orb M4 Pro: M4 Pro, 64 GB Arbeitsspeicher, 2 TB Speicher.

  2. 02

    Region und Mietdauer wählen

    Verfügbar sind Singapur, Japan (Tokio), Südkorea (Seoul) und Hongkong; bei der Laufzeit stehen Tag, Woche, Monat und Quartal zur Auswahl. Trage Regionscode und Verlängerungstermin in die internen Asset-Daten ein.

  3. 03

    Bestellung prüfen und Bereitstellungsdaten abwarten

    Prüfe Modell, Region, Laufzeit und Zusatzoptionen und schließe die Bestellung ab. Knotenadresse, erste Zugangsdaten und Servicestatus werden in der Konsole bereitgestellt.

Knotenzugang und Sicherheit

Zugang zuerst absichern, Entwicklungsumgebung danach installieren

Die ersten Zugangsdaten dienen ausschließlich dem Aufbau der ersten kontrollierten Verbindung. Importiere keine Produktions-Repositories oder Signaturmaterialien, bevor Schlüssel, Zugriffe und Wiederherstellung geprüft sind.

FIRST ACCESS RECORD Nach der ersten Anmeldung

Temporären Zugang in einen prüfbaren Zugang umwandeln

  • Bereitstellungsdaten prüfen Prüfe, ob Knotennummer, Adresse, Port und Region mit der Bestellung übereinstimmen, und dokumentiere das Ergebnis in der Team-Asset-Liste.
  • Eigenen SSH-Public-Key hinterlegen Vergib separate Schlüssel für Administration, Entwicklung und automatisierte Runner. Verwende nicht denselben Private Key für Personen- und CI-Zugriffe.
  • Zugriffseinstellungen anpassen Schränke die Nutzung temporärer Zugangsdaten erst ein, wenn die Schlüsselanmeldung funktioniert. Halte nach jeder Änderung einen geprüften Wiederherstellungspfad vor.
  • Wiederherstellungsdaten speichern Dokumentiere Knotennummer, autorisierte Mitglieder, Schlüsselfingerabdruck, Wiederherstellungsverantwortliche und letzten Prüfzeitpunkt. Bewahre die Wiederherstellungsdaten getrennt vom Knoten auf.
Zugriffsgrenzen

Personen und Automatisierung trennen

Entwicklerschlüssel dienen der interaktiven Fehleranalyse; Runner-Schlüssel erhalten nur die für die Pipeline nötigen Rechte. Widerrufe beim Ausscheiden eines Mitglieds dessen Public Key.

Nachvollziehbarer eigener Fingerabdruck
Wiederherstellung prüfen

Rückfallpfad vor Änderungen bestätigen

Bewahre vor Änderungen an Netzwerk, SSH oder grafischer Sitzung die aktuelle funktionierende Sitzung auf und lasse die Wiederherstellungsdaten in der Konsole von einer zweiten verantwortlichen Person prüfen.

Verbindungsschritte zur Fehleranalyse ansehen
Erste SSH-Verbindung

Erst Fingerabdruck, dann Systemstatus prüfen

Überspringe die Prüfung des Host-Fingerabdrucks nicht. Adresse und Port stammen aus der Konsole; vergleiche den vertrauenswürdigen Fingerabdruck mit dem bestätigten Bereitstellungsprotokoll.

Knoten-Zugangsprotokoll Ausstehend
# Variable erst nach Erhalt der Konsolenadresse setzen
export NODE_HOST="KNOTENADRESSE"
export NODE_PORT="22"

# Berechtigungen des dedizierten Private Keys korrigieren
chmod 600 ~/.ssh/orbvps_node

# Host-Fingerabdruck auslesen und anzeigen, anschließend mit dem Bereitstellungsprotokoll vergleichen
ssh-keyscan -p "$NODE_PORT" "$NODE_HOST" \
  | ssh-keygen -lf -

# Erste Verbindung herstellen
ssh -p "$NODE_PORT" \
  -i ~/.ssh/orbvps_node \
  nodeadmin@"$NODE_HOST"

# Nach der Anmeldung Hardware-, System- und Festplattenstatus prüfen
$ uname -m
arm64
$ sw_vers
$ sysctl -n machdep.cpu.brand_string
$ df -h /
$ uptime
SSH ACCEPTANCE 4 CHECKS
  1. Fingerabdruck stimmt überein Das Scan-Ergebnis muss mit dem vertrauenswürdigen Bereitstellungsprotokoll übereinstimmen. Bei Abweichungen Verbindung beenden und über ein Konsolen-Ticket prüfen.
  2. Schlüsselberechtigungen korrekt Bei zu weit gefassten Private-Key-Berechtigungen verweigert SSH das Laden. Setze die Berechtigungen auf Lesen und Schreiben nur für den aktuellen Benutzer.
  3. Architektur ist arm64 Prüfe nach der Anmeldung Prozessorarchitektur und Chipinformationen, damit die Toolchain nicht auf dem falschen Host installiert wird.
  4. Festplatten- und Laufzeitstatus lesbar Dokumentiere freien Speicherplatz des Root-Volumes, Systemversion und Laufzeit als Ausgangszustand für die spätere Build-Fehleranalyse.
Initialisierung des grafischen Desktops

VNC-Sitzung als reproduzierbare Arbeitsumgebung einrichten

Der grafische Desktop eignet sich für Anzeige-, Systemeinstellungs- und erste Xcode-Interaktionen. Verbindungsdaten werden nicht öffentlich bereitgestellt; Adresse und Zugangsdaten sind nach der Aktivierung in der Konsole einsehbar.

DESKTOP BASELINE Abnahme der grafischen Sitzung

Beende die Sitzung nach jeder Änderung und verbinde dich erneut, um die Konfiguration in einer neuen Sitzung zu prüfen.

01

Anzeige und Auflösung

Wähle zunächst eine Auflösung, die zu Netzwerk und Bildschirm passt. Bei sehr kleiner Darstellung oder deutlicher Verzögerung reduziere zuerst die Auflösung und prüfe anschließend den Netzwerkpfad.

02

Systemsprache und Zeitzone

Vereinheitliche Systemsprache, regionale Formate und Zeitzone nach der Teamvorgabe, damit Build-Logs, Datumsangaben und Automatisierungsskripte konsistent bleiben.

03

Sperrstrategie

Stelle sicher, dass die Bildschirmsperre laufende Aufgaben nicht unterbricht und unbefugten Zugriff dennoch begrenzt. Interaktive Sitzungen und CI-Aufgaben sind getrennt zu prüfen.

04

Verbindung wiederherstellen

Trenne eine grafische Sitzung absichtlich und verbinde dich erneut. Prüfe Desktopstatus, Auflösung und laufende Prozesse.

Migrationspfad

Vom lokalen Mac zum stabilen Cloud-Build-Knoten

Die Migration erfolgt in drei Phasen: erst prüfbare Daten übertragen, dann die Toolchain fixieren und zuletzt CI anbinden. Repository, Abhängigkeiten und Automatisierung nicht ungeprüft auf einmal kopieren.

LOCAL
01

Daten und Repository migrieren

Migriere nur benötigte Repositories, Lockfiles, Build-Skripte und Testdaten. Schließe temporäre Caches, alte Artefakte und herrenlose Dateien aus und prüfe danach Repositorystatus und wichtige Dateisummen.

  • Standard-Branch und Remote-Adresse bestätigen
  • Submodule und Abhängigkeiten großer Dateien prüfen
  • Testdaten anonymisieren
TOOLCHAIN
02

Toolchain installieren und fixieren

Installiere Xcode, Command-Line-Tools und Paketmanager gemäß den Repository-Anforderungen. Speichere die tatsächlichen Versionsausgaben in der Baseline; ersetze konkrete Versionsnummern nicht durch „neueste Version“.

  • Xcode- und SDK-Versionen dokumentieren
  • Abhängigkeiten anhand der Lockfiles wiederherstellen
  • Shell- und Laufzeitpfade festlegen
CLOUD MAC
03

CI anbinden und Rollback prüfen

Führe nach der Registrierung des self-hosted Runners zunächst einen kontrollierten Testjob aus. Prüfe Fehlerprotokolle, Cache-Bereinigung und Wiederherstellung, bevor du produktive Branches schrittweise freigibst.

  • Aufgaben mit dedizierten Labels begrenzen
  • Cache-Treffer und Bereinigung prüfen
  • Runner-Deaktivierung und Rückfall üben

Kriterium für abgeschlossene Migration:Derselbe Commit wird lokal und auf dem Cloud-Mac mit der dokumentierten Toolchain gebaut, die wichtigsten Testergebnisse stimmen überein und die Bereitstellung lässt sich anhand der Dokumentation wiederholen.

Erster Build

Eine nachvollziehbare Erfolgs-Baseline erstellen

Der erste Build soll nicht die kürzeste Laufzeit beweisen, sondern reproduzierbare Toolchain, Abhängigkeiten, Berechtigungen und Ausgabepfade.

  1. 01

    Xcode-Pfad und Version prüfen

    Prüfe, ob aktives Entwicklerverzeichnis, Xcode-Version und verfügbares SDK den Projektanforderungen entsprechen.

  2. 02

    Lizenz bestätigen und Abhängigkeiten installieren

    Bestätige die Xcode-Lizenz und installiere Ruby, Node, CocoaPods sowie weitere Projektabhängigkeiten strikt anhand der Lockfiles.

  3. 03

    Kontrollierten Build ausführen

    Gib Workspace, Scheme und Configuration eindeutig an und speichere die vollständige Standardausgabe in einer separaten Logdatei.

  4. 04

    Baseline dokumentieren

    Halte Commit-ID, Toolchain-Versionen, Start- und Endzeit, Exit-Code sowie Artefaktpfad als Vergleichsbasis für spätere Änderungen fest.

Baseline des ersten Builds Befehlsbeispiele
$ xcode-select -p
/Applications/Xcode.app/Contents/Developer

$ xcodebuild -version
Xcode <PROJEKTVERSION>

$ sudo xcodebuild -license accept
$ bundle install
$ bundle exec pod install

$ mkdir -p build-logs
$ set -o pipefail
$ xcodebuild \
  -workspace App.xcworkspace \
  -scheme App \
  -configuration Release \
  clean build \
  | tee build-logs/first-success.log

** BUILD SUCCEEDED **
CI anbinden

Den Runner nur die vorgesehenen Aufgaben ausführen lassen

Begrenze den self-hosted Runner zunächst mit dediziertem Label und Test-Branch, bevor du produktive Builds schrittweise freigibst.

RUNNER PROFILE

Runner-Identität

Name
orb-m4-ci-01
Labels
macos · arm64 · xcode
Arbeitsverzeichnis
/Users/runner/work
Parallelisierungsstrategie
Mit einem einzelnen Job beginnen
ACCESS POLICY

Berechtigungen und Schlüssel

  • Eigenes Runner-Benutzerkonto Lass Automatisierungsaufgaben nicht dauerhaft ein interaktives Administratorkonto verwenden.
  • Schlüssel nach Zweck trennen Repository-Lesen, Artefakt-Schreiben und Deployment jeweils nur mit den unbedingt erforderlichen Rechten ausstatten.
  • Sensible Werte nicht ins Repository schreiben Über kontrollierte CI-Variablen injizieren und prüfen, dass Logs keine vollständigen Werte ausgeben.
CACHE CONTROL

Cache und Wiederherstellung

  • Cache-Key versionieren Lockfile-Hash, Architektur und Toolchain-Version in den Cache-Key aufnehmen.
  • Sauberen Neuaufbau ermöglichen Jede Pipeline muss nach dem Leeren des Caches einen vollständigen Build ausführen können.
  • Wachstum des Arbeitsverzeichnisses begrenzen Regelmäßig den Speicherverbrauch von DerivedData, Archiven und temporären Artefakten prüfen.
CONTROLLED TEST JOB

Zuerst einen vorhersehbaren Testjob ausführen

Der Job gibt die Umgebung aus, stellt Abhängigkeiten wieder her, führt Unit-Tests aus und erstellt einen Build ohne Veröffentlichung. Prüfe Label-Routing, vollständige Logs, Cache-Bereinigung und das Stoppen bei Fehlern, bevor du produktive Branches anbindest.

Erwarteter Exit-Code
0 / Erfolg
Muss aufbewahrt werden
Logs, Commit-ID, Artefaktzusammenfassung
Fehlerbehandlung
Produktive Aufgaben stoppen und zur Baseline-Prüfung zurückkehren
Prüfung vor dem Go-live

Produktive Builds erst starten, wenn alle sechs Status eindeutig sind

Übertrage die Prüfergebnisse in das Team-Runbook. Der Knoten kann 365 Tage im Jahr betrieben werden, doch Build-Prozesse benötigen weiterhin klare Zuständigkeiten für Daten, Monitoring und Reaktion.

Backup

Repository, Build-Konfiguration, Wiederherstellungsdaten der Schlüssel und erforderliche Artefakte liegen zusätzlich außerhalb des Knotens vor; eine Wiederherstellung wurde erfolgreich geprüft.

Wiederherstellung geprüft

Monitoring

Erfasse mindestens freien Speicher, Build-Exit-Code, Wartezeit von Aufgaben und Online-Status des Runners und definiere Schwellenwerte für Auffälligkeiten.

Metriken haben Verantwortliche

Benachrichtigungskontakte

Haupt- und Ersatzverantwortliche können auf Knotendaten, Build-Logs und Konsolen-Tickets zugreifen; der Übergabepfad ist dokumentiert.

Haupt- und Ersatzkontakte vorhanden

Verlängerungstermin

Bestelllaufzeit und interner Bestätigungstermin sind dokumentiert und hängen nicht vom Gedächtnis einzelner Personen ab. Bewerte vor Konfigurationsänderungen das Zeitfenster laufender Aufgaben.

Laufzeit dokumentiert

Zugriff widerrufen

Personen- und Runner-Schlüssel sowie die zugehörigen Berechtigungen sind erfasst und können einzeln widerrufen werden, ohne andere Mitglieder zu beeinträchtigen.

Ein Eintrag pro Element

Kontaktweg bei Störungen

Knotennummer, Zeitraum des Vorfalls, Reproduktionsschritte und anonymisierte Logs lassen sich jederzeit zusammenstellen; autorisierte Mitglieder können damit über die Konsole ein Ticket erstellen.

Material direkt einreichbar
Bereit für die Bereitstellung

Mit einem prüfbaren Cloud-Mac starten

Wähle Modell, Region und Laufzeit und schließe nach der Aktivierung sicheren Zugriff, ersten Build und CI-Abnahme anhand dieses Leitfadens ab.