このリポジトリのコードには、https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ で入手可能な無料の VM を作成するために使用するスクリプト ファイルが含まれています。このプロジェクトをオープンソースにする主な理由は次のとおりです。コミュニティは、さまざまな VM のテンプレートを支援し、役立つ可能性のある機能や構成を追加します。
このスクリプトは、いくつかのプラットフォーム (VirtualBox と Vagrant、Parallels、Hyper-V、VMWare) 用の VM を生成し、電子メールでプロセスを通知し、配布用にファイルを Azure Storage にアップロードし、Web サイトに置く新しい JSON ファイルを作成します。これらの手順の中には意味をなさないものもありますので、自由にハックして無効にしてください。
スクリプトには既知の問題がいくつかあるため、問題セクションを必ず確認してください。
現在、このプロセスは Windows 8.1 マシンでのみ機能します。
必要なソフトウェアを自動インストールするには、スクリプト.scriptsappswinappinstaller.ps1
を使用できます。これは、前述のリストのプログラムのインストールに Chocolatey を使用します。一部のプログラムがすでに手動でインストールされているマシンでスクリプトを使用することはお勧めできません。スクリプトの目的は、クリーンなマシンへのインストール時間を節約することです。
Mac では Packer と Parallels のみが必要ですが、スクリプト.scriptsappsmacappinstaller.sh
スクリプトは Homebrew を使用してアプリをインストールします。 Parallels では、インストールに加えて、有効なキーの登録が必要です。 Packer が正しくインストールされていない場合は、ターミナルにbrew install packer
と書き込み、インストールを再試行してください。
以下は、ほぼ完全に自動化された環境をセットアップする手順です。 VM の作成プロセス中に、ホストを再起動する必要がある場合や、いくつかの権限が必要になる場合があります。手動介入を行わない場合は、自動ログオンなどのいくつかの手順をスキップできます。
git clone https://github.com/MicrosoftEdge/dev.microsoftedge.com-vms/
Packer ファイルをC:packer
に解凍します。
Packer 1.1.2 の Hyper-V ISO ビルダーは、Windows 10 バージョン 1709 で適切に動作します。
ゲスト拡張機能は自動的にインストールされますが、サイレントにインストールするには、ゲスト OS の信頼できる証明書のリストに Oracle 証明書を追加する必要があります。現時点では、このガイドで説明されているプロセスに従うことをお勧めします。その.cer
ファイルをscriptsfloppyguesttoolsoracle-cert.cer
に配置する必要があります。近い将来、セクション4.2.1.3 の公式マニュアルのガイダンスに従うようにプロセスを更新する予定です。無人インストール。
PowerShell ウィンドウに次のように入力して、実行ポリシーを設定します。
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
次のレジストリ設定は自動ログオンを設定し、再起動するたびにログインするために使用されるデフォルトのユーザー名とパスワードも保存します。
$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
bin
フォルダーには次のフォルダーが含まれている必要があります
AzCopy
Putty
toolsPackerMerge
コンパイルした出力を含むPackerMerge
(ビルドが完了すると、出力が適切なフォルダーに直接コピーされます)VMSGen
プロジェクトtoolsVMSGen
Visual Studio でコンパイルした出力を含む (ビルドが完了すると、出力が適切なフォルダーに直接コピーされます)また、BgInfo をダウンロードして解凍し、.exe をscriptsfloppybginfo
に配置する必要もあります。
Windows 64 ビット用の 7-Zip も忘れずにインストールしてください
ハイパーバイザーを有効にするには:
bcdedit /set hypervisorlaunchtype auto
ハイパーバイザーを無効にするには:
bcdedit /set hypervisorlaunchtype off
最初に生成したマシンは HyperV ではないことをお勧めします。初めて Hyper-V 仮想マシンを生成すると、コンピューターが再起動します。
このリポジトリのクローンを /Users/admin/dev.microsoftedge.com-vms/ に作成します
git clone https://github.com/MicrosoftEdge/dev.microsoftedge.com-vms/
Apple ファイル共有をオンにする
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.AppleFileServer.plist
SMBをアクティブ化する
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.smbd.plist
リポジトリフォルダーを共有する
sudo sharing -a /Users/admin/dev.microsoftedge.com-vms/
(注: スクリプト.scriptsappsmacappinstaller.sh
が実行されている場合、この手順は必要ありません。)
Packer ファイルを /Users/packer に解凍します
(注: スクリプト.scriptsappsmacappinstaller.sh
が実行されている場合、この手順は必要ありません。)
sudo nano /etc/paths
Apple Mac OS X オペレーティング システムにはデフォルトで SSH がインストールされていますが、SSH デーモンは有効になっていません。これは、vmgen スクリプトを有効にするまで、リモートでログインしたり、リモート コピーを実行したりできないことを意味します。
有効にするには、「システム環境設定」に移動します。 「インターネットとネットワーク」の下に「共有」アイコンがあります。それを実行してください。表示されるリストで、「リモート ログイン」オプションをチェックします。
重要: Mac で SSH が有効になったら、プロセスを開始する準備ができた Windows コンピューターから Putty SSH を使用して手動で接続する必要があります。これにより、プロセスの実行時に Mac が Putty によって認識されます。 Mac を承認された接続として登録しない場合、SSH 接続の生成プロセスでこのエラーが表示されます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.
このプロセスでは ISO が使用され、より正確にはクライアント エンタープライズ評価が使用されます。ビルドするゲストの ISO のコピーを合法的に取得し、それをscriptsiso
フォルダーに直接置く必要があります。
VM の作成プロセスを高速化したい場合は、統合された最新の Windows ISO を作成できます。このプロセスを詳細に説明するオンライン ガイドがあります。
スクリプトを実行するには、管理者権限で任意の Windows PowerShell コンソールを開き、-Build パラメーターを指定してスクリプト vmgen.ps1 を実行する必要があります。
.vmgen.ps1 -Build
このスクリプトには、同じディレクトリにあるvmgen.json
という構成ファイルが必要です。このファイルは、どの仮想マシンを生成する必要があるかを知るために生成ツールによって使用されます。構成ファイルの内容は次の形式である必要があります。
{
"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 "
]
}
}
}
}
ビルド - ビルド番号を示します。この識別子は、出力フォルダー名の生成に使用されます。
OutputPath - ZIP ファイルを保存するパス。
AzureUpload - 出力ファイルが Azure ストレージ アカウントにアップロードされるかどうかを示します。
AzureStorage - 出力ファイルをアップロードするための Azure ストレージ アカウントの URL とキーが含まれています。
Mac - IP、SSH ユーザーとパスワード、共有パスが含まれます。
メール - 適切な人に電子メールを送信するための SMTP 構成
OsRenaming (オプション) - OS バージョンの出力 JSON で必要な最終的な名前を示します。 Win10 のプロセスを定期的に実行し、出力 JSON に特定のビルド バージョン「Win10 (x64) build 2345」が必要だとします。この出力 JSON の名前が変更されたバージョンは、メールで送信されたものです。名前を変更したくない場合は、このセクションを削除してください。
VMS - 生成される dev.microsoftedge.com 仮想マシンを設定するオブジェクト構造体。各レベルの有効な値は次のとおりです。
ビルド後に VM を再生成せずに生成されたファイルをアップロードするには、-Build パラメーターと -OnlyUpload パラメーターを指定してスクリプト vmgen.ps1 を実行する必要があります。
.vmgen.ps1 -Build -OnlyUpload
JSON 固有のバージョンが OutputPath に生成されます。結果を別のファイルとマージしたい場合は、それを vms.json という名前で同じフォルダーに置きます。
自動名前変更: プロセス中に出力 JSON の名前を自動的に変更するには、vmgen ファイルにOsRenaming
セクションを追加するだけです。生成プロセスが実行されると、名前が変更された出力 JSON のコピーが通知フォルダー内の出力パスに保存されます。このバージョンは、構成されたメール受信者に電子メールで送信されるバージョンです。
手動による名前変更: 出力 JSON の名前を手動で変更する場合は、 scriptsvmsrename.ps1
使用できます。たとえば、ビルドとアーキテクチャを使用して明示的な名前の生成プロセスで使用される値 Win10 を変更したい場合は、次のようにします。
.vmsrename.ps1 "Win10" "Win10 (x86) Build 6307"
入力ファイルvms.json
はスクリプトと同じフォルダーにある必要があり、出力ファイルはvms_renamed.json
になります。
新しいプラットフォームを生成するには、次の手順を実行します。
floppy_files_OS.json
、 OSx64.json
、およびurls_OSx64.json
ファイルのコピーを template-parts/templates から template-parts に作成します。url_OSx64.json
を編集し、正しいiso_url
プロパティとiso_checksum
プロパティを入力します。OSx64.json
を編集し、各ビルダー構成のvm_name
とoutput_directory
プロパティを変更します。floppy_files_OS.json
変更することは必須ではありません。変更せずにそのままにしておいても問題ありません。BuildTemplates.ps1
と次の行を編集して、新しいテンプレート生成を追加します。 $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 | |
---|---|---|---|
MSエッジ | - | - | × |
IE11 | × | × | - |
IE10 | × | - | - |
IE9 | × | - | - |
IE8 | × | - | - |
IE7 | - | - | - |
VPC | HyperV | Vボックス | ヴイエムウェア | パラレル | |
---|---|---|---|---|---|
Win7 | × | × | × | × | × |
Win81 | - | × | × | × | × |
Win10 | - | × | × | × | × |
このプロジェクトはマイクロソフトのオープンソース行動規範を採用しています。詳細については、「行動規範に関するよくある質問」を参照するか、追加の質問やコメントがあれば [email protected] までお問い合わせください。