Steckt MacOS Catalina in eine Vagrant -Box.
Einige Sequenzen wurden verkürzt. Originallaufzeit 14,5 Minuten.
Unterstützt das Erstellen von Kästchen entweder in den Formaten "vmware_fusion", "vmware_desktop", "Parallelen" oder "VirtualBox".
Die folgende Software ist erforderlich. Andere Versionen als die genannten können funktionieren, aber dies sind die neuesten getesteten Versionen.
Um ein von macinbox erstellter Feld zu booten, benötigen Sie Vagrant:
Zum Erstellen einer Box benötigen Sie eine MacOS -Installationsprogrammanwendung. Wenn Sie einen Catalina -Host verwenden, müssen Sie ein Catalina -Installateur verwenden:
Catalina -Hosts können früher (z. B. macOS 10.14 Mojave) Installateure verwenden, und Mojave -Hosts können keine Catalina -Installateure verwenden.
Wenn Sie einen Mojave -Host verwenden, sollten Sie ein Mojave -Installateur verwenden:
Es wird empfohlen, dass Sie dieselbe Version für den Host und das Installateur verwenden, frühere Versionen des MacOS-Installationsprogramms (z. B. MacOS 10.13 High Sierra) können auch mit Mojave-Hosts und umgekehrt arbeiten.
Hinweis: Wenn Sie Fragen zur Zulassbarkeit der Virtualisierung von MACOS haben, möchten Sie die Dokumentation für die von Ihnen verwendete Virtualisierungssoftware und die Softwarelizenzvereinbarung für macOS überprüfen.
Eine der folgenden Virtualisierungsanwendungen ist erforderlich:
So erstellen und booten Sie ein Feld in den Formaten "vmware_fusion" oder "vmware_desktop", die Sie benötigen:
So erstellen und booten Sie eine Box im Format "Parallel", das Sie benötigen:
So erstellen und starten Sie ein Feld im Format "VirtualBox", das Sie benötigen:
Installieren Sie das Edelstein:
$ sudo gem install macinbox
Mit sudo und ohne Argumente ausführen, erstellt und fügt das macinbox -Tool ein Vagrant -VMware -Box mit dem Namen 'MacinBox' hinzu, das dem Desktop des 'Vagrant' -Benutzers Vollbildmaterial startet:
$ sudo macinbox
Bitte seien Sie geduldig, da dies eine Weile dauern kann. (Auf einem 2,5 -GHz -MacBookPro11,5 dauert es ungefähr 11 Minuten und 30 Sekunden.) Nach Abschluss des Tools können Sie eine neue Vagrantumgebung mit der Box erstellen und starten:
$ vagrant init macinbox && vagrant up
Ein paar Momente nach dem Ausführen dieses Befehls sehen Sie, wie das Display Ihres virtuellen Geräts Vollbildmodus angezeigt wird. (Drücken Sie die Befehlskontrolle-F, um den Vollbildmodus zu beenden.) Nach Abschluss des virtuellen Computers (ca. 1-2 Minuten) sehen Sie den Desktop des "Vagabrant"-Benutzers und können mit der Verwendung der virtuellen Maschine beginnen.
Um eine Parallelen-Desktop-Box zu erstellen, übergeben Sie die Option --box-format :
$ sudo macinbox --box-format parallels
Um die erweiterten Optionen anzuzeigen, übergeben Sie die Option --help :
Usage: macinbox [options]
--box-format FORMAT Format of the box (default: vmware_desktop)
-n, --name NAME Name of the box (default: macinbox)
-d, --disk SIZE Size (GB) of the disk (default: 64)
-t, --fstype TYPE Type for disk format (default: APFS)
-m, --memory SIZE Size (MB) of the memory (default: 2048)
-c, --cpu COUNT Number of virtual cores (default: 2)
-s, --short NAME Short name of the user (default: vagrant)
-f, --full NAME Full name of the user (default: Vagrant)
-p, --password PASSWORD Password of the user (default: vagrant)
--installer PATH Path to the macOS installer app
--installer-dmg PATH Path to a macOS installer app disk image
--vmware PATH Path to the VMware Fusion app
--parallels PATH Path to the Parallels Desktop app
--user-script PATH Path to user script
--no-auto-login Disable auto login
--no-skip-mini-buddy Show the mini buddy on first login
--no-hidpi Disable HiDPI resolutions
--no-fullscreen Display the virtual machine GUI in a window
--no-gui Disable the GUI
--use-qemu Use qemu-img (vmware_desktop only)
--verbose Enable verbose mode
--debug Enable debug mode
-v, --version
-h, --help
Durch Aktivieren des Debug -Modus werden die Zwischendateien (Festplattenbild, VMDK und Box) nach dem Abschluss des Tools erhalten, anstatt aufzuräumen. WARNUNG!!! Diese Zwischendateien sind sehr groß und Sie können bei dieser Option sehr schnell den Speicherplatz ausgehen.
Dieses erweiterte Beispiel erstellt und fügt ein Box mit dem Namen "Macinbox-Large-Nogui" mit 4 Kernen, 8 GB oder RAM und einer 128-GB-Festplatte hinzu. schaltet automatische Anmeldung aus; und verhindert, dass die VMware -GUI beim Beginn der VM angezeigt wird:
$ sudo macinbox -n macinbox-large-nogui -c 4 -m 8192 -d 128 --no-auto-login --no-gui
Wenn Sie den Vagagrant_Home -Umgebungsvariablensatz haben und das erstellte Feld an diesem Ort in das Verzeichnis "Kästchen" hinzugefügt werden sollen, müssen Sie Sudo anweisen, es an MacinBox zu übergeben, z. B.:
$ sudo "VAGRANT_HOME=${VAGRANT_HOME}" macinbox
Standardmäßig konfiguriert macinbox das Gast -Betriebssystem so, dass HIDPI -Auflösungen aktiviert sind und die virtuelle Maschine so konfigurieren, dass sie die native Anzeigeauflösung verwenden. Sie können dieses Verhalten mit der Option --no-hidpi -Option deaktivieren.
Standardmäßig erstellt macinbox ein Vagrant-Feld im Format 'vmware_desktop' mit den vorinstallierten VMware-Tools.
Wenn das Boxformat mit der Option --box-format Option-Parallelen "auf" Parallelen "gesetzt ist, sind die Parallel-Tools stattdessen vorinstalliert.
Wenn das Boxformat auf 'virtualBox' eingestellt ist, werden keine Gastweiterungen installiert. Beachten Sie, dass sich einige Funktionen mit VirtualBox unterschiedlich verhalten. Die Bildschirmauflösung wird auf 1280x800 gesetzt und HIDPI -Auflösungen werden nicht unterstützt. Der GUI-Skalierungsfaktor wird auf 2.0 festgelegt (so dass die VM ordnungsgemäß auf einem Host mit Retina-Display angezeigt wird), es sei denn, die Option --no-hidpi -Option wird verwendet. Zuletzt ist SSH-Port-Forwarding standardmäßig aktiviert, damit der Host eine Verbindung zum Gast herstellen kann.
Wenn eine zusätzliche Box-Anpassung erforderlich ist, kann ein Benutzerskript mit der Option --user-script angegeben werden. Das Skript wird nach der Installation des Betriebssystems ausgeführt und wird mit dem Pfad zum Installationsort als erstes und einziges Argument versehen. Das Skript muss ausführbar sein und mit Code Null beenden oder die Kästchen -Erstellung wird abgebrochen.
Mit der Option --installer-dmg können Sie den Pfad zu einem Festplattenbild mit einem MacOS-Installationsprogramm angeben und die Option --installer Option überschreiben. Das angegebene Festplattenbild sollte nicht bereits montiert werden. macinbox montiert und entlastet es nach Bedarf. Mit dieser Funktion können Sie die von InstallinstallMacos.py als Teil des macinbox -Workflows erstellten Installationsprofi -Bilder verwenden.
Dieses Tool führt die folgenden Aktionen aus:
Die von diesem Tool erstellte Box enthält eine eingebaute VagrantFile, in der die folgenden Standard-Vagrant-Verhaltensweisen deaktiviert werden:
Um die Standard-SSH-Portweiterleitung erneut zu erleben, können Sie die folgende Zeile zur VagrantFile Ihrer Umgebung hinzufügen:
config.vm.network :forwarded_port, guest: 22, host: 2222, id: "ssh"
Um den Standard-Synced Synced Ordner erneut zu erleben, können Sie die folgende Zeile in die VagrantFile Ihrer Umgebung hinzufügen:
config.vm.synced_folder ".", "/vagrant"
Dieses Tool soll alles tun, was vor dem ersten Start eine neue Installation von macOS erledigt werden muss, um es in eine Vagrant -Box zu verwandeln, in der MacOS mit einem nahtlosen Benutzererlebnis startet. Dieses Tool ist jedoch auch für die geringste Art der Konfiguration vorgesehen. Es wird nichts getan, was stattdessen in eine Bereitstellung in einer VagrantFile- oder Packer -Vorlage verschoben werden könnte.
Dieses Projekt wurde von der großen Arbeit anderer inspiriert:
Dieses Projekt lässt sich von einer Episode von Mr. Robot inspirieren. In der Episode wird Elliot schnell gezeigt, wie es eine virtuelle Maschine mit einer frischen Linux-Desktop-Umgebung ausführt, um den Inhalt einer nicht vertrauenswürdigen CD-ROM zu untersuchen. Als ich sah, dachte ich: "Ich möchte in der Lage sein, so etwas mit macos zu machen!". Sicher bin ich nicht die einzige Person, die nicht vertrauenswürdige Software aus dem Internet heruntergeladen hat und wünschte, es gäbe eine einfache Möglichkeit, sie zu bewerten, ohne mein primäres Arbeitsumfeld in Gefahr zu bringen?
Dieses Projekt ist ein direkter Nachfolger meines Vagagrant-Box-Macos-Projekts, das selbst stark vom OSX-VM-Templates-Projekt von Tim Sutton inspiriert war.
Mit der Veröffentlichung von macOS 10.12.4 wurden die vorherrschenden Techniken zum Anpassen von MacOS -Installationen durch eine neue Installationsanforderung behindert, dass alle Pakete von Apple signiert werden. Nachdem ich versucht hatte, verschiedene Techniken zu ermöglichen, mit vagrant-box-macos MacOS 10.13 High Sierra unterstützt, entschied ich, dass ein anderer Ansatz zur Kartonierung erforderlich war, und macinbox wurde geboren.
Beginnen Sie mit der Installation sudo gem install bundler und bundle install .
Um macinbox direkt aus dem Stammzunehmen des Git -Arbeitsbereichs auszuführen, ohne das Gem zu installieren, führen Sie sudo bundle exec macinbox aus.
Um dieses Juwel auf Ihrem lokalen Computer zu installieren, führen Sie sudo bundle exec rake install aus.
Sie können auch bin/console für eine interaktive Eingabeaufforderung ausführen, mit der Sie experimentieren können. Zum Beispiel:
opts = Macinbox::CLI::DEFAULT_OPTION_VALUES
opts[:collector] = Macinbox::Collector.new
opts[:full_name] = "Vagrant"
opts[:password] = "vagrant"
opts[:image_path] = "macinbox.sparseimage"
opts[:boxes_dir] = File.expand_path "~/.vagrant.d/boxes"
$debug = $verbose = true
include Macinbox::Actions
opts[:macos_version] = CheckMacosVersions.new(opts).run
CreateImageFromInstaller.new(opts).run
opts[:vmdk_path] = "macinbox.vmdk"
CreateVMDKFromImage.new(opts).run
opts[:box_format] = "vmware_desktop"
opts[:box_path] = "vmware_desktop.box"
CreateBoxFromVMDK.new(opts).run
InstallBox.new(opts).run
opts[:hdd_path] = "macinbox.hdd"
CreateHDDFromImage.new(opts).run
opts[:box_format] = "parallels"
opts[:box_path] = "parallels.box"
CreateBoxFromHDD.new(opts).run
InstallBox.new(opts).run
opts[:vdi_path] = "macinbox.vdi"
CreateVDIFromImage.new(opts).run
opts[:box_format] = "virtualbox"
opts[:box_path] = "virtualbox.box"
CreateBoxFromVDI.new(opts).run
InstallBox.new(opts).run
opts[:collector].cleanup!
Um eine neue Version zu veröffentlichen, aktualisieren Sie die Versionsnummer in version.rb und führen Sie bundle exec rake release aus, die ein Git -Tag für die Version erstellt, Git Commits und Tags drücken und die .gem -Datei auf rubygemems.org weitergeben.
Fehlerberichte und Pull -Anfragen sind auf Github unter https://github.com/bacongravy/macinbox willkommen.