Microsoft MVP성태의 닷넷 이야기
Windows: 130. Windows Server 2016 Nano 서버 설치 방법 [링크 복사], [링크+제목 복사],
조회: 16033
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Windows Server 2016 Nano 서버 설치 방법

Nano 서버를 실습하고 싶어서, 지난 2번의 시행착오를 거쳤는데요.

Windows Server 2016 Nano 서버 VHD 이미지 만드는 방법 - TP5 기준
; https://www.sysnet.pe.kr/2/0/11078

Windows Server 2016 설치 CD에 있는 Convert-WindowsImage.ps1 사용 방법 정리
; https://www.sysnet.pe.kr/2/0/11079

제 딴에는, "블랙 박스"를 없애고 싶어서 나름 "Convert-WindowsImage.ps1"을 이용해 VHD를 만들려고 무던히도 노력했는데 일단은 문제점을 해결하지 못하고 넘어갑니다.

그래도 괜찮은 것이, Nano 서버를 VHD로 아주 간단하게 만들어주는 "Nano Server Image Builder"가 나왔기 때문입니다. ^^ (사실, 이것도 내부적으로 Convert-WindowsImage.ps1를 이용합니다. 그런데, 왜 직접 하면 안 되고 이걸로 하면 잘 될까요?)

Introducing the Nano Server Image Builder
; https://docs.microsoft.com/en-us/archive/blogs/nanoserver/introducing-the-nano-server-image-builder

Nano Server Image Builder (1.0.78) 
; https://www.microsoft.com/en-us/download/details.aspx?id=54065

다운로드해 설치하고 실행하면, ADK 툴이 설치되지 않은 경우 이것도 다운로드할지 여부를 묻습니다. 선택의 여지가 없으니 설치해야 합니다.



실행하면, GUI 작업을 통해 원하는 대로 Nano Server 이미지를 만들 수 있는데 다음은 그 첫 화면입니다.

nano_image_builder_1.png

제 경우에는 Hyper-V VM에서 쓸 수 있도록 VHD 파일을 원하기 때문에 첫 번째 "Create a new Nano Server image"를 선택했지만, 만약 부팅 가능한 USB 디스크를 원한다면 두 번째 "Create bootable USB media"를 선택하시면 됩니다.

다음은 Windows Server 2016 ISO 파일이 마운트 된 경로, 또는 ISO 파일이 풀린 폴더를 지정하는 단계입니다.

nano_image_builder_2.png

저는 en_windows_server_2016_x64_dvd_9327751.iso 파일을 I 드라이브에 마운트 했기 때문에 "I:\"로 선택한 것입니다.

그다음 화면은 라이선스 확인이고, 그다음 단계에서 이렇게 생성될 VHD 파일의 경로와 크기, 로그 폴더의 경로를 입력받습니다.

nano_image_builder_3.png

다음으로 Nano 서버의 Standard, Datacenter 에디션을 선택하는 화면이 나옵니다. 제 경우에는 Datacenter로 선택하고 부가 패키지를 3가지(Failover Clustering Service, File Server role and other storage components, Web Server (IIS))만 선택했습니다.

nano_image_builder_4.png

그다음은 별도의 Device Driver 선택인데, 제 경우에는 물리 머신에 설치하는 것이 아니므로 그냥 넘어갔습니다. 그러면 컴퓨터 명과 관리자 계정의 초기 비밀번호를 지정할 수 있는 화면이 나옵니다.

nano_image_builder_5.png

이후 Active Directory 도메인 참여 여부를 묻지만 저는 그냥 넘어갔습니다. 다음으로 WinRM 원격 제어를 미리 허용할 수 있는 옵션과 기타 네트워크 옵션이 제공됩니다.

nano_image_builder_6.png

이제 마지막 화면입니다. 지금까지의 설정으로 이미지를 만들려면 "Create basic Nano Server image"를 선택하고, 좀 더 세세한 구성을 하고 싶다면 "Continue to configure advanced settings"를 선택합니다.

nano_image_builder_7.png

제 경우에는 "Create basic Nano Server image" 링크를 선택해 마무리했고, 다음 단계에서 내용 요약과 함께 "Create" 버튼을 누르면 이렇게 작업이 진행됩니다.

nano_image_builder_8.png

위의 화면을 보면, 하단에 "Nano Server image creation PowerShell command" 항목이 나오는데요.

New-NanoServerImage -MediaPath 'I:\' -Edition 'Datacenter' -DeploymentType Guest -TargetPath 'c:\temp\vhd\nanoserver01.vhd' -MaxSize 10737418240 -EnableRemoteManagementPort -SetupUI ('NanoServer.FailoverCluster', 'NanoServer.Storage', 'NanoServer.IIS') -ComputerName 'nanoserver01' -SetupCompleteCommand ('tzutil.exe /s "Korea Standard Time"') -LogPath 'C:\Users\kevin\AppData\Local\Temp\NanoServerImageBuilder\Logs\2016-10-21 22-31'

우리가 마법사에 지정한 그 설정으로 Nano 서버 이미지를 만들어주는 New-NanoServerImage.ps1의 메서드를 호출합니다. 즉, 저 내용을 그대로 복사해서 보관해 나중에 재사용하면 됩니다. 당연히 동일한 VHD 파일이 생성되겠고!



"Nano Server Image Builder" 도구는 내부적으로 NanoServerImageGenerator.psm1과, Convert-WindowsImage.ps1 파일을 사용합니다. 그리고 이 2가지 파일은 Windows Server 2016 설치 ISO 파일에도 포함되어 있으므로 "New-NanoServerImage" 사용법을 알고 있다면 굳이 "Nano Server Image Builder" 도구를 설치할 필요 없이, ISO 파일에서 "\NanoServer\NanoServerImageGenerator" 폴더에 있는 "Convert-WindowsImage.ps1", "NanoServerImageGenerator.psm1" 파일을 추출해서 ImportModule 후 사용하면 됩니다.



지난번과 달리, Hyper-V의 Gen1 VM에 VHD 붙여서 부팅하면 다음과 같이 "Firewall Rules" 목록이 잘 나옵니다.

nano_image_builder_9.png

첫 번째 부팅까지 완료한 시점의 디스크 소비 크기는 1.62GB입니다. 말 그대로 10GB VHD 용량이면 웬만한 응용 프로그램 구축에는 충분한 용량이 될 수 있습니다.

물론, 이후의 모든 관리는 WinRM을 이용해 PowerShell로 원격 설정을 하시면 됩니다.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 6/27/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 16  17  18  19  [20]  21  22  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
13136정성태10/7/20226323.NET Framework: 2054. .NET Core/5+ SDK 설치 없이 dotnet-dump 사용하는 방법
13135정성태10/5/20226570.NET Framework: 2053. 리눅스 환경의 .NET Core 3/5+ 메모리 덤프를 분석하는 방법 - 두 번째 이야기
13134정성태10/4/20225302오류 유형: 820. There is a problem with AMD Radeon RX 5600 XT device. For more information, search for 'graphics device driver error code 31'
13133정성태10/4/20225603Windows: 211. Windows - (commit이 아닌) reserved 메모리 사용량 확인 방법 [1]
13132정성태10/3/20225517스크립트: 42. 파이썬 - latexify-py 패키지 소개 - 함수를 mathjax 식으로 표현
13131정성태10/3/20228245.NET Framework: 2052. C# - Windows Forms의 데이터 바인딩 지원(DataBinding, DataSource) [2]파일 다운로드1
13130정성태9/28/20225223.NET Framework: 2051. .NET Core/5+ - 에러 로깅을 위한 Middleware가 동작하지 않는 경우파일 다운로드1
13129정성태9/27/20225537.NET Framework: 2050. .NET Core를 IIS에서 호스팅하는 경우 .NET Framework CLR이 함께 로드되는 환경
13128정성태9/23/20228149C/C++: 158. Visual C++ - IDL 구문 중 "unsigned long"을 인식하지 못하는 #import파일 다운로드1
13127정성태9/22/20226606Windows: 210. WSL에 systemd 도입
13126정성태9/15/20227232.NET Framework: 2049. C# 11 - 정적 메서드에 대한 delegate 처리 시 cache 적용
13125정성태9/14/20227450.NET Framework: 2048. C# 11 - 구조체 필드의 자동 초기화(auto-default structs)
13124정성태9/13/20227187.NET Framework: 2047. Golang, Python, C#에서의 CRC32 사용
13123정성태9/8/20227633.NET Framework: 2046. C# 11 - 멤버(속성/필드)에 지정할 수 있는 required 예약어 추가
13122정성태8/26/20227536.NET Framework: 2045. C# 11 - 메서드 매개 변수에 대한 nameof 지원
13121정성태8/23/20225526C/C++: 157. Golang - 구조체의 slice 필드를 Reflection을 이용해 변경하는 방법
13120정성태8/19/20227062Windows: 209. Windows NT Service에서 UI를 다루는 방법 [3]
13119정성태8/18/20226612.NET Framework: 2044. .NET Core/5+ 프로젝트에서 참조 DLL이 보관된 공통 디렉터리를 지정하는 방법
13118정성태8/18/20225472.NET Framework: 2043. WPF Color의 기본 색 영역은 (sRGB가 아닌) scRGB [2]
13117정성태8/17/20227641.NET Framework: 2042. C# 11 - 파일 범위 내에서 유효한 타입 정의 (File-local types)파일 다운로드1
13116정성태8/4/20228094.NET Framework: 2041. C# - Socket.Close 시 Socket.Receive 메서드에서 예외가 발생하는 문제파일 다운로드1
13115정성태8/3/20228481.NET Framework: 2040. C# - ValueTask와 Task의 성능 비교 [1]파일 다운로드1
13114정성태8/2/20228651.NET Framework: 2039. C# - Task와 비교해 본 ValueTask 사용법파일 다운로드1
13113정성태7/31/20227879.NET Framework: 2038. C# 11 - Span 타입에 대한 패턴 매칭 (Pattern matching on ReadOnlySpan<char>)
13112정성태7/30/20228276.NET Framework: 2037. C# 11 - 목록 패턴(List patterns) [1]파일 다운로드1
13111정성태7/29/20228049.NET Framework: 2036. C# 11 - IntPtr/UIntPtr과 nint/nuint의 통합파일 다운로드1
... 16  17  18  19  [20]  21  22  23  24  25  26  27  28  29  30  ...