Kode dalam repo ini berisi file skrip yang kami gunakan untuk membuat VM gratis yang tersedia di https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ Alasan utama untuk membuka sumber proyek ini adalah untuk komunitas untuk membantu dengan templat VM yang berbeda dan menambahkan fitur atau konfigurasi yang mungkin berguna bagi mereka.
Skrip ini menghasilkan VM untuk beberapa platform (VirtualBox dan Vagrant, Parallels, Hyper-V, VMWare), memberi tahu melalui email tentang proses tersebut, mengunggah file ke Azure Storage untuk distribusinya dan membuat file JSON baru untuk dimasukkan ke situs web. Beberapa langkah ini tidak masuk akal bagi Anda, jadi silakan meretas dan menonaktifkannya.
Ada beberapa masalah umum pada skrip, jadi pastikan untuk memeriksa bagian masalah.
Saat ini proses ini hanya berfungsi pada mesin Windows 8.1.
Untuk instalasi otomatis perangkat lunak yang diperlukan, Anda dapat menggunakan skrip .scriptsappswinappinstaller.ps1
Menggunakan Chocolatey untuk menginstal program di daftar sebelumnya. Tidak disarankan untuk menggunakan skrip pada mesin yang beberapa programnya telah diinstal secara manual. Tujuan dari skrip ini adalah menghemat waktu dalam instalasi di mesin yang bersih.
Meskipun di Mac hanya Packer dan Parallels yang diperlukan, Anda dapat menginstalnya secara otomatis menggunakan skrip .scriptsappsmacappinstaller.sh
. Skrip menggunakan Homebrew untuk menginstal aplikasi. Paralel akan memerlukan tambahan instalasi, registrasi kunci yang valid. Jika packer tidak menginstal dengan benar, tulis di terminal brew install packer
untuk mencoba lagi instalasi.
Berikut ini adalah petunjuk untuk menyiapkan lingkungan yang hampir sepenuhnya otomatis. Selama proses pembuatan VM terkadang host perlu di-boot ulang atau diperlukan beberapa izin. Jika Anda tidak melakukan intervensi manual, Anda dapat melewati beberapa langkah seperti AutoLogon, dll.
git clone https://github.com/MicrosoftEdge/dev.microsoftedge.com-vms/
Buka zip file Packer ke C:packer
.
Pembuat ISO Hyper-V di Packer 1.1.2 berfungsi dengan baik di Windows 10 versi 1709.
Kami secara otomatis menginstal Ekstensi Tamu, tetapi untuk melakukannya secara diam-diam, instalasi perlu menambahkan sertifikat Oracle ke daftar sertifikat tepercaya di OS tamu. Saat ini kami menyarankan Anda mengikuti proses yang dijelaskan dalam panduan ini. Anda harus menempatkan file .cer
itu di scriptsfloppyguesttoolsoracle-cert.cer
. Dalam waktu dekat kami berencana memperbarui proses untuk mengikuti panduan manual resmi di bagian 4.2.1.3. Instalasi Tanpa Pengawasan .
Tetapkan kebijakan eksekusi dengan mengetikkan ini ke jendela PowerShell Anda:
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
Pengaturan registri berikut mengatur logon otomatis dan juga menyimpan nama pengguna dan kata sandi default yang akan digunakan untuk login pada setiap reboot.
$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
Folder bin
harus memiliki folder berikut
AzCopy
dengan semua biner dan tanpa subfolderPutty
dengan plink.exe dan putty.exePackerMerge
dengan keluaran kompilasi toolsPackerMerge
dengan Visual Studio (harus menyalin keluaran langsung ke folder yang tepat ketika pembangunan selesai)VMSGen
dengan keluaran kompilasi toolsVMSGen
dengan Visual Studio (harus menyalin keluaran langsung ke folder yang tepat ketika pembangunan selesai) Anda juga perlu mengunduh BgInfo, mengekstraknya dan meletakkan .exe di scriptsfloppybginfo
Ingatlah untuk menginstal juga 7-Zip untuk Windows 64bits
Untuk Mengaktifkan Hypervisor:
bcdedit /set hypervisorlaunchtype auto
Untuk Menonaktifkan Hypervisor:
bcdedit /set hypervisorlaunchtype off
Direkomendasikan agar mesin pertama yang kita hasilkan bukan HyperV. Pertama kali kita membuat mesin virtual Hyper-V, komputer akan reboot.
Kloning repo ini ke /Users/admin/dev.microsoftedge.com-vms/
git clone https://github.com/MicrosoftEdge/dev.microsoftedge.com-vms/
Aktifkan Berbagi File Apple
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.AppleFileServer.plist
Aktifkan UKM
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.smbd.plist
Bagikan folder Repositori
sudo sharing -a /Users/admin/dev.microsoftedge.com-vms/
(Catatan: langkah ini tidak diperlukan jika skrip .scriptsappsmacappinstaller.sh
telah dijalankan.)
Buka zip file Packer ke /Users/packer
(Catatan: langkah ini tidak diperlukan jika skrip .scriptsappsmacappinstaller.sh
telah dijalankan.)
sudo nano /etc/paths
Sistem operasi Apple Mac OS X telah menginstal SSH secara default tetapi daemon SSH tidak diaktifkan. Ini berarti skrip vmgen tidak dapat login dari jarak jauh atau melakukan penyalinan jarak jauh sampai Anda mengaktifkannya.
Untuk mengaktifkannya, buka "System Preferences". Di bawah "Internet & Jaringan" ada ikon "Berbagi". Jalankan itu. Dalam daftar yang muncul, centang opsi "Login Jarak Jauh".
Penting : setelah SSH diaktifkan di Mac, kita harus menghubungkannya secara manual dengan Putty SSH dari komputer Windows yang disiapkan untuk memulai proses. Dengan cara ini Mac dikenali oleh Putty saat proses dijalankan. Jika kita tidak mendaftarkan Mac sebagai koneksi yang diterima, koneksi SSH akan menampilkan kesalahan ini dalam proses pembuatan 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.
Proses ini menggunakan ISO, dan lebih tepatnya Evaluasi Perusahaan Klien. Anda harus secara legal mendapatkan salinan iso untuk tamu yang ingin Anda buat dan meletakkannya langsung di folder scriptsiso
.
Jika Anda ingin mempercepat proses pembuatan VM, Anda dapat membuat ISO Windows Terintegrasi Terkini. Ada panduan online seperti ini yang menjelaskan prosesnya secara detail.
Untuk menjalankan skrip, kita perlu membuka konsol Windows PowerShell apa pun dengan hak Admin dan menjalankan skrip vmgen.ps1 dengan parameter -Build.
.vmgen.ps1 -Build
Skrip ini memerlukan file konfigurasi bernama vmgen.json
yang terletak di direktori yang sama. File ini digunakan oleh alat pembangkitan untuk mengetahui Mesin Virtual mana yang harus dibuat. Konten file konfigurasi harus memiliki format ini:
{
"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 - Menunjukkan nomor build. Pengidentifikasi ini akan digunakan untuk menghasilkan nama folder keluaran.
OutputPath - Jalur untuk menyimpan file ZIP.
AzureUpload - Menunjukkan apakah file output akan diunggah ke akun penyimpanan Azure.
AzureStorage - Berisi Url dan Kunci Akun Azure Storage untuk mengunggah file keluaran.
Mac - Berisi IP, Pengguna & kata sandi SSH, dan jalur bersama.
Mail - Konfigurasi SMTP untuk mengirim email ke orang yang tepat
OsRenaming (opsional) - Menunjukkan nama akhir yang diinginkan dalam output JSON untuk versi os. Katakanlah secara berkala kita menjalankan proses untuk Win10 dan kita menginginkan output JSON versi build spesifik "Win10 (x64) build 2345". Versi keluaran JSON yang diganti namanya ini adalah versi yang dikirim melalui surat. Jika penggantian nama tidak diinginkan, hapus saja bagian ini.
VMS - Struktur objek untuk mengatur Mesin Virtual dev.microsoftedge.com yang akan dibuat. Nilai yang valid untuk setiap level adalah sebagai berikut:
Untuk mengunggah file yang dihasilkan setelah pembangunan tanpa membuat ulang VM, kita perlu menjalankan skrip vmgen.ps1 dengan parameter -Build dan -OnlyUpload.
.vmgen.ps1 -Build -OnlyUpload
Versi spesifik JSON akan dibuat di OutputPath. Jika Anda ingin hasil Anda digabungkan dengan file lain, letakkan di folder yang sama dengan nama vms.json.
Penggantian nama otomatis : untuk mengganti nama output JSON secara otomatis dalam proses, cukup tambahkan bagian OsRenaming
di file vmgen. Ketika proses pembuatan dijalankan, salinan keluaran JSON dengan penggantian nama akan disimpan di jalur keluaran, di dalam folder notifikasi. Versi ini adalah versi yang akan dikirim melalui email ke penerima email yang dikonfigurasi.
Penggantian nama manual : jika Anda ingin mengganti nama output JSON secara manual, Anda dapat menggunakan scriptsvmsrename.ps1
. Misalnya jika kita ingin mengubah nilai Win10 yang digunakan dalam proses pembuatan untuk nama eksplisit dengan build dan arsitektur:
.vmsrename.ps1 "Win10" "Win10 (x86) Build 6307"
File masukan vms.json
harus berada di folder yang sama dengan skrip, dan file keluarannya adalah vms_renamed.json
.
Untuk menghasilkan platform baru, lakukan langkah-langkah berikut:
floppy_files_OS.json
, OSx64.json
dan urls_OSx64.json
dari template-parts/templates ke template-parts.url_OSx64.json
dan masukkan properti iso_url
dan iso_checksum
yang benar.OSx64.json
dan ubah properti vm_name
dan output_directory
untuk setiap konfigurasi pembuat.floppy_files_OS.json
tidak wajib. Anda dapat membiarkannya tanpa perubahan.BuildTemplates.ps1
dan ikuti baris untuk menambahkan generasi template baru. $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."
Menang7 | Menang81 | Menang10 | |
---|---|---|---|
MSEdge | - | - | X |
IE11 | X | X | - |
IE10 | X | - | - |
IE9 | X | - | - |
IE8 | X | - | - |
IE7 | - | - | - |
VPC | HiperV | kotak V | VMware | Paralel | |
---|---|---|---|---|---|
Menang7 | X | X | X | X | X |
Menang81 | - | X | X | X | X |
Menang10 | - | X | X | X | X |
Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi lebih lanjut lihat FAQ Pedoman Perilaku atau hubungi [email protected] jika ada pertanyaan atau komentar tambahan.