Der Code in diesem Repo enthält die Skriptdateien, die wir zum Erstellen der kostenlosen VMs verwenden, die unter https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ verfügbar sind. Der Hauptgrund für die Open Source dieses Projekts ist Bitten Sie die Community, bei den Vorlagen der verschiedenen VMs zu helfen und Funktionen oder Konfigurationen hinzuzufügen, die für sie nützlich sein könnten.
Dieses Skript generiert VMs für mehrere Plattformen (VirtualBox und Vagrant, Parallels, Hyper-V, VMWare), benachrichtigt per E-Mail über den Vorgang, lädt die Dateien zur Verteilung in einen Azure-Speicher hoch und erstellt eine neue JSON-Datei zur Veröffentlichung auf der Website. Einige dieser Schritte werden für Sie keinen Sinn ergeben. Probieren Sie sie einfach aus und deaktivieren Sie sie.
Es gibt einige bekannte Probleme mit den Skripten. Sehen Sie sich daher unbedingt den Abschnitt „Probleme“ an.
Derzeit funktioniert dieser Vorgang nur auf Windows 8.1-Rechnern.
Für eine automatische Installation der benötigten Software können Sie das Skript .scriptsappswinappinstaller.ps1
verwenden. Es verwendet Chocolatey für die Installation der Programme in der vorherigen Liste. Es wird nicht empfohlen, das Skript auf Computern zu verwenden, auf denen einige Programme bereits manuell installiert sind. Der Zweck des Skripts besteht darin, bei der Installation auf sauberen Maschinen Zeit zu sparen.
Obwohl auf dem Mac nur Packer und Parallels erforderlich sind, können Sie diese mithilfe des Skripts .scriptsappsmacappinstaller.sh
automatisch installieren. Das Skript verwendet Homebrew, um die Apps zu installieren. Parallels erfordert zusätzlich zur Installation die Registrierung eines gültigen Schlüssels. Falls der Packer nicht korrekt installiert wird, schreiben Sie in das Terminal brew install packer
um die Installation erneut zu versuchen.
Im Folgenden finden Sie Anweisungen zum Einrichten einer Umgebung, die nahezu vollständig automatisiert ist. Während des VM-Erstellungsprozesses muss manchmal der Host neu gestartet werden oder es sind einige Berechtigungen erforderlich. Wenn Sie keinen manuellen Eingriff vornehmen, können Sie einige Schritte wie AutoLogon usw. überspringen.
git clone https://github.com/MicrosoftEdge/dev.microsoftedge.com-vms/
Packer-Dateien nach C:packer
entpacken.
Der Hyper-V-ISO-Builder in Packer 1.1.2 funktioniert gut unter Windows 10 Version 1709.
Wir installieren die Gasterweiterungen automatisch, aber um dies unbemerkt durchzuführen, muss die Installation das Oracle-Zertifikat zur Liste der vertrauenswürdigen Zertifikate im Gastbetriebssystem hinzufügen. Im Moment empfehlen wir Ihnen, den in diesem Leitfaden beschriebenen Prozess zu befolgen. Sie müssen diese .cer
Datei in scriptsfloppyguesttoolsoracle-cert.cer
ablegen. In naher Zukunft planen wir, den Prozess zu aktualisieren, um den Anweisungen des offiziellen Handbuchs in Abschnitt 4.2.1.3 zu folgen. Unbeaufsichtigte Installation .
Legen Sie die Ausführungsrichtlinie fest, indem Sie Folgendes in Ihr Powershell-Fenster eingeben:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force
setx PATH "%PATH%;C:Packer;C:Program Files7-Zip"
New-ItemProperty -Path HKLM:SoftwareMicrosoftWindowsCurrentVersionpoliciessystem -Name EnableLUA -PropertyType DWord -Value 0 -Force
Die folgende Registrierungseinstellung legt die automatische Anmeldung fest und speichert außerdem den Standardbenutzernamen und das Standardkennwort, die bei jedem Neustart für die Anmeldung verwendet werden.
$RegPath = "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon"
Set-ItemProperty $RegPath "AutoAdminLogon" -Value "1" -type String
Set-ItemProperty $RegPath "DefaultUsername" -Value "DomainNameAdministrator" -type String
Set-ItemProperty $RegPath "DefaultPassword" -Value "Password" -type String
Der bin
-Ordner sollte die folgenden Ordner enthalten
AzCopy
mit allen Binärdateien und ohne UnterordnerPutty
mit plink.exe und putty.exePackerMerge
mit der Ausgabe der Kompilierung der toolsPackerMerge
mit Visual Studio (die Ausgabe sollte direkt in den richtigen Ordner kopiert werden, wenn der Build abgeschlossen ist)VMSGen
mit der Ausgabe der Kompilierung des Projekts toolsVMSGen
mit Visual Studio (die Ausgabe sollte nach Abschluss des Builds direkt in den richtigen Ordner kopiert werden) Sie müssen außerdem BgInfo herunterladen, entpacken und die EXE-Datei in scriptsfloppybginfo
ablegen.
Denken Sie daran, auch 7-Zip für Windows 64bits zu installieren
So aktivieren Sie Hypervisor:
bcdedit /set hypervisorlaunchtype auto
So deaktivieren Sie den Hypervisor:
bcdedit /set hypervisorlaunchtype off
Es wird empfohlen, dass die erste von uns generierte Maschine nicht HyperV sein sollte. Wenn wir zum ersten Mal eine virtuelle Hyper-V-Maschine erstellen, wird der Computer neu gestartet.
Klonen Sie dieses Repo nach /Users/admin/dev.microsoftedge.com-vms/
git clone https://github.com/MicrosoftEdge/dev.microsoftedge.com-vms/
Aktivieren Sie die Apple-Dateifreigabe
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.AppleFileServer.plist
SMB aktivieren
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.smbd.plist
Repository-Ordner freigeben
sudo sharing -a /Users/admin/dev.microsoftedge.com-vms/
(Hinweis: Dieser Schritt ist nicht erforderlich, wenn das Skript .scriptsappsmacappinstaller.sh
ausgeführt wurde.)
Entpacken Sie die Packer-Dateien nach /Users/packer
(Hinweis: Dieser Schritt ist nicht erforderlich, wenn das Skript .scriptsappsmacappinstaller.sh
ausgeführt wurde.)
sudo nano /etc/paths
Auf dem Betriebssystem Apple Mac OS X ist SSH standardmäßig installiert, der SSH-Daemon ist jedoch nicht aktiviert. Das bedeutet, dass sich das vmgen-Skript erst dann remote anmelden oder Remote-Kopien erstellen kann, wenn Sie es aktivieren.
Um es zu aktivieren, gehen Sie zu „Systemeinstellungen“. Unter „Internet & Netzwerk“ gibt es ein „Teilen“-Symbol. Führen Sie das aus. Aktivieren Sie in der angezeigten Liste die Option „Remote-Login“.
Wichtig : Sobald SSH auf dem Mac aktiviert ist, müssen wir manuell über Putty SSH vom Windows-Computer aus eine Verbindung herstellen, um den Vorgang zu starten. Dadurch wird der Mac vom Putty erkannt, wenn der Prozess ausgeführt wird. Wenn wir den Mac nicht als akzeptierte Verbindung registrieren, zeigt die SSH-Verbindung diesen Fehler im Generierungsprozess an The server's host key is not cached in the registry. You have no guarantee that the server is the computer you think it is. The server's rsa2 key finger (...) Connection abandoned.
Dieser Prozess nutzt ISOs, genauer gesagt die Client Enterprise Evaluation. Sie sollten sich legal eine Kopie der ISO für den Gast, den Sie erstellen möchten, besorgen und diese direkt im Ordner scriptsiso
ablegen.
Wenn Sie den Prozess der Erstellung der VMs beschleunigen möchten, können Sie ein integriertes, aktuelles Windows-ISO erstellen. Es gibt Online-Anleitungen wie diesen, die den Vorgang ausführlich erklären.
Um das Skript auszuführen, müssen wir eine beliebige Windows PowerShell-Konsole mit Administratorrechten öffnen und das Skript vmgen.ps1 mit dem Parameter -Build ausführen.
.vmgen.ps1 -Build
Für dieses Skript ist eine Konfigurationsdatei namens vmgen.json
erforderlich, die sich im selben Verzeichnis befindet. Diese Datei wird vom Generierungstool verwendet, um zu wissen, welche virtuellen Maschinen generiert werden müssen. Der Inhalt der Konfigurationsdatei muss dieses Format haben:
{
"Build" : " 20150901 " ,
"OutputPath" : " D: \ vms " ,
"AzureUpload" : false ,
"GenerateMultipart" : true ,
"AzureStorage" : {
"Url" : " https://yourblostorage.blob.core.windows.net/vms " ,
"Key" : " xxxxxxxxxxx... "
},
"Mac" : {
"IP" : " 192.168.0.2 " ,
"SSH_User" : " admin " ,
"SSH_Password" : " password " ,
"NetworkPath" : " \\ MAC \ microsoftedge-vms " ,
"RepoPath" : " /Users/admin/dev.microsoftedge.com-vms "
},
"Mail" : {
"SMTP" : " smtp.office365.com " ,
"From" : " [email protected] " ,
"To" : " [email protected] " ,
"User" : " [email protected] " ,
"Password" : " "
},
"OsRenaming" : {
"Win10" : " Win10 (x64) Build xxxx " ,
"Win81" : " Win81 (x86) Build yyyy "
},
"VMS" : {
"Windows" : {
"HyperV" : {
"MSEdge" : [
" Win10 "
],
"IE11" : [
" Win81 " , " Win7 "
],
"IE10" : [
" Win7 "
]
},
"VirtualBox" : {
"IE11" : [
" Win81 " , " Win7 "
],
"IE10" : [
" Win7 "
]
}
},
"Mac" : {
"Parallels" : {
"IE11" : [
" Win81 " , " Win7 "
],
"IE10" : [
" Win7 "
]
}
}
}
}
Build – Gibt die Build-Nummer an. Dieser Bezeichner wird verwendet, um den Namen des Ausgabeordners zu generieren.
OutputPath – Pfad zum Speichern von ZIP-Dateien.
AzureUpload – Gibt an, ob Ausgabedateien in ein Azure-Speicherkonto hochgeladen werden.
AzureStorage – Enthält die URL und den Schlüssel des Azure Storage-Kontos zum Hochladen der Ausgabedateien.
Mac – Enthält IP, SSH-Benutzer und Passwort sowie einen gemeinsamen Pfad.
Mail – SMTP-Konfiguration zum Senden von E-Mails an die entsprechenden Personen
OsRenaming (optional) – Gibt die endgültigen Namen an, die im Ausgabe-JSON für die Betriebssystemversionen gewünscht werden. Nehmen wir an, wir führen den Prozess regelmäßig für Win10 aus und möchten im Ausgabe-JSON die spezifische Build-Version „Win10 (x64) Build 2345“ haben. Diese umbenannte Version des Ausgabe-JSON wird per E-Mail gesendet. Wenn eine Umbenennung nicht gewünscht ist, entfernen Sie einfach diesen Abschnitt.
VMS – Objektstruktur zum Festlegen der zu generierenden virtuellen Maschinen von dev.microsoftedge.com. Die gültigen Werte für jede Ebene sind wie folgt:
Um die generierten Dateien nach einem Build hochzuladen, ohne die VMs neu zu generieren, müssen wir das Skript vmgen.ps1 mit den Parametern -Build und -OnlyUpload ausführen.
.vmgen.ps1 -Build -OnlyUpload
In OutputPath wird eine JSON-spezifische Version generiert. Wenn Sie möchten, dass Ihr Ergebnis mit einer anderen Datei zusammengeführt wird, legen Sie es im selben Ordner mit dem Namen vms.json ab.
Automatisches Umbenennen : Um den Ausgabe-JSON dabei automatisch umzubenennen, fügen Sie einfach den Abschnitt OsRenaming
in der vmgen-Datei hinzu. Wenn der Generierungsprozess ausgeführt wird, wird eine Kopie des Ausgabe-JSON mit der Umbenennung im Ausgabepfad im Benachrichtigungsordner gespeichert. Diese Version wird per E-Mail an den konfigurierten E-Mail-Empfänger gesendet.
Manuelles Umbenennen : Wenn Sie den Ausgabe-JSON manuell umbenennen möchten, können Sie scriptsvmsrename.ps1
verwenden. Wenn wir beispielsweise den Wert, den Win10 im Generierungsprozess verwendet hat, für einen expliziten Namen mit Build und Architektur ändern möchten:
.vmsrename.ps1 "Win10" "Win10 (x86) Build 6307"
Die Eingabedatei vms.json
muss sich im selben Ordner wie das Skript befinden und die Ausgabedatei lautet vms_renamed.json
.
Um eine neue Plattform zu generieren, führen Sie die folgenden Schritte aus:
floppy_files_OS.json
, OSx64.json
und urls_OSx64.json
von template-parts/templates nach template-parts.url_OSx64.json
und geben Sie die richtigen Eigenschaften iso_url
und iso_checksum
ein.OSx64.json
und ändern Sie die Eigenschaften vm_name
und output_directory
für jede Builder-Konfiguration.floppy_files_OS.json
zu ändern. Sie können es ohne Änderungen belassen.BuildTemplates.ps1
und die folgenden Zeilen, um eine neue Vorlagengeneration hinzuzufügen. $template = "MSEdge-Win10TH2" ..binPackerMergePackerMerge -i:".template-partsuser.json,.template-partsurls_OSx64.json,.template-partsOSx64.json,.template-partsfloppy_files_common.json,.template-partsfloppy_files_OS.json,.template-partsprovisioner_common.json,.template-partspp-vagrant.json" -o:".template-output$template.json" Write-Verbose "$template.json created."
Win7 | Win81 | Win10 | |
---|---|---|---|
MSEdge | - | - | X |
IE11 | X | X | - |
IE10 | X | - | - |
IE9 | X | - | - |
IE8 | X | - | - |
IE7 | - | - | - |
VPC | HyperV | VBox | VMware | Parallelen | |
---|---|---|---|---|---|
Win7 | X | X | X | X | X |
Win81 | - | X | X | X | X |
Win10 | - | X | X | X | X |
Dieses Projekt hat den Microsoft Open Source Verhaltenskodex übernommen. Weitere Informationen finden Sie in den FAQ zum Verhaltenskodex oder wenden Sie sich bei weiteren Fragen oder Kommentaren an [email protected].