이 리포지토리의 코드에는 https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/에서 사용할 수 있는 무료 VM을 만드는 데 사용하는 스크립트 파일이 포함되어 있습니다. 이 프로젝트를 오픈 소스로 만드는 주된 이유는 다음과 같습니다. 다양한 VM의 템플릿을 지원하고 유용할 수 있는 기능이나 구성을 추가하는 커뮤니티입니다.
이 스크립트는 여러 플랫폼(VirtualBox 및 Vagrant, Parallels, Hyper-V, VMWare)에 대한 VM을 생성하고 이메일을 통해 프로세스를 알리고 배포를 위해 파일을 Azure Storage에 업로드하고 웹 사이트에 넣을 새 JSON 파일을 만듭니다. 이러한 단계 중 일부는 이해가 되지 않으므로 자유롭게 해킹하여 비활성화하세요.
스크립트에는 몇 가지 알려진 문제가 있으므로 문제 섹션을 확인하세요.
현재 이 프로세스는 Windows 8.1 시스템에서만 작동합니다.
필요한 소프트웨어를 자동으로 설치하려면 .scriptsappswinappinstaller.ps1
스크립트를 사용할 수 있습니다. 이전 목록의 프로그램을 설치하기 위해 Chocolatey를 사용합니다. 일부 프로그램이 이미 수동으로 설치된 컴퓨터에서는 스크립트를 사용하지 않는 것이 좋습니다. 스크립트의 목적은 클린 머신에서 설치 시간을 절약하는 것입니다.
Mac에서는 Packer 및 Parallels만 필요하지만 . .scriptsappsmacappinstaller.sh
스크립트는 Homebrew를 사용하여 앱을 설치합니다. Parallels에서는 설치 외에 유효한 키를 등록해야 합니다. 패커가 올바르게 설치되지 않은 경우 터미널 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
(빌드가 완료되면 출력을 올바른 폴더에 직접 복사해야 함)toolsVMSGen
컴파일한 출력이 있는 VMSGen
(빌드가 완료되면 출력을 올바른 폴더에 직접 복사해야 함) 또한 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 Storage 계정에 업로드되는지 여부를 나타냅니다.
AzureStorage - 출력 파일을 업로드하기 위한 Azure Storage 계정의 URL 및 키가 포함되어 있습니다.
Mac - IP, SSH 사용자 및 비밀번호, 공유 경로가 포함되어 있습니다.
메일 - 적절한 사람에게 이메일을 보내기 위한 SMTP 구성
OsRenaming(선택 사항) - OS 버전에 대한 출력 JSON에서 원하는 최종 이름을 나타냅니다. 주기적으로 Win10에 대한 프로세스를 실행하고 출력 JSON에 특정 빌드 버전 "Win10(x64) 빌드 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
파일의 복사본을 만듭니다.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."
윈7 | 윈81 | 윈10 | |
---|---|---|---|
MS에지 | - | - | 엑스 |
IE11 | 엑스 | 엑스 | - |
IE10 | 엑스 | - | - |
IE9 | 엑스 | - | - |
IE8 | 엑스 | - | - |
IE7 | - | - | - |
VPC | 하이퍼V | V박스 | VM웨어 | 평행선 | |
---|---|---|---|---|---|
윈7 | 엑스 | 엑스 | 엑스 | 엑스 | 엑스 |
윈81 | - | 엑스 | 엑스 | 엑스 | 엑스 |
윈10 | - | 엑스 | 엑스 | 엑스 | 엑스 |
이 프로젝트는 Microsoft 오픈 소스 행동 강령을 채택했습니다. 자세한 내용은 행동 강령 FAQ를 참조하거나 추가 질문이나 의견이 있는 경우 [email protected]으로 문의하세요.