Windows 컨테이너에 WSUS를 설치하려고 시도(실패)

하고 싶은 일


WSUS(Windows Server Update Service)를 장기간 활용하면 DB와 콘텐츠 파일이 금방 커지기 때문에 비교적 빈번하게 (1년에 1~2회 정도) 재구축된다.
윈도 서버는 2016년부터 Docker 컨테이너를 이용할 수 있게 됐기 때문에 이 컨테이너에 WSUS를 구축할 수 있다면 재건도 수월해지기 때문에 컨테이너 제작을 동시에 연습하기로 했다.
결론적으로 중도에 포기했지만 재도전을 위해 절차를 적어야 한다.

컨테이너 운행 환경의 준비


OS는 Windows Server 2016 Datacenter의 평가판를 사용합니다.
적절한 스크롤 PC에 Windows Update를 설치합니다.
OS가 설치되어 있으면 MS 문서에 따라 Docker 실행 환경을 설정합니다.
관리자 권한으로 Powerrshell을 시작하고 3개의 명령만 실행하기 때문에 간단합니다.
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Install-Package -Name docker -ProviderName DockerMsftProvider
Restart-Computer -Force
실행 docker version 및 버전 표시

용기의 제작


WSUS 구축을 위한 컨테이너를 준비한다.
Windows Server에 사용되는 컨테이너 기반 이미지는 Windows Server Core와 Nano Server 두 가지로 나뉘어 있습니다.
자세한 내용은 생략했지만 WSUS의 경우 내부에서 IIS를 사용하기 때문에 전자가 아니면 안 된다.
Windows Server Core의 기본 이미지를 다운로드합니다.
10GB 정도 되기 때문에 시간이 걸립니다.
docker pull microsoft/windowsservercore
다운로드가 끝난 후 이 기본 이미지에 따라 WSUS를 구축하는 컨테이너를 시작합니다.
docker run --name wsus_test -v D:\WSUS:C:\WSUS -it microsoft/windowsservercore powershell
실행 후 컨테이너가 상승하여 컨테이너 안에 넣는 파워셀.
또한 호스트 OS의 폴더-v D:\WSUS:C:\WSUS를 지정D:\WSUS하여 컨테이너 내C:\WSUS에 매핑합니다.이렇게 하면 WSUS의 발송 파일은 용기에 직접 저장되지 않을 것이다.D:\WSUS 폴더는 미리 만들어야 함)hostname를 실행하면 호스트 OS와 다른 호스트 이름이 표시되고 컨테이너에 있는지 확인할 수 있습니다.
콘솔 배경색이 이상해져서 귀여워요.

WSUS 설치 역할


드디어 컨테이너에 WSUS를 설치한다.
단계 참조TechNet의 보도.
보도에서도 SQL 서버를 사용하는 방법을 설명했고, 이번에는 내장된 Windows Internal Database(WID) 방법으로 했다.
컨테이너에 WSUS 설치 역할
Install-WindowsFeature -Name UpdateServices -IncludeManagementTools

엑시트 코드가 Success라서 성공한 것 같아요.
"Restart Needed는""아니오""이므로 계속 진행합니다."
WSUS는 캐릭터를 설치한 것만으로는 움직일 수 없으며 추가 설정을 해야 한다.다음 명령을 실행합니다.
배포 파일의 저장 목적지C:\WSUS를 설정하고 싶어서 CONTENT_DIR 파라미터를 추가했습니다.
cd 'C:\Program Files\Update Services\Tools\'
.\WsusUtil.exe postinstall CONTENT_DIR=C:\WSUS

그래서 이곳에 오류가 생겼다.Fatal Error: The Server service is not started.서비스 시작이 실패한 것 같습니다.로그 파일 좀 봐.
PS C:\> cat C:\Users\ContainerAdministrator\AppData\Local\Temp\tmpB6DC.tmp
2017-04-23 20:21:20  Postinstall started
2017-04-23 20:21:21  Detected role services: Api, WidDatabase, Services
2017-04-23 20:21:21  Start: LoadSettingsFromParameters
2017-04-23 20:21:21  Content local is: True
2017-04-23 20:21:21  Content directory is: C:\WSUS
2017-04-23 20:21:21  SQL instname is:
2017-04-23 20:21:21  End: LoadSettingsFromParameters
2017-04-23 20:21:21  Start: Run
2017-04-23 20:21:21  Fetching WsusAdministratorsSid from registry store
2017-04-23 20:21:21  Value is (null)
2017-04-23 20:21:21  Configuring content directory...
2017-04-23 20:21:21  Configuring groups...
2017-04-23 20:21:21  Starting group configuration for WSUS Administrators...
2017-04-23 20:21:21  Group does not already exist in the registry
2017-04-23 20:21:21  System.Runtime.InteropServices.COMException (0x80070842): The Server service is not started.

   at System.DirectoryServices.DirectoryEntry.RefreshCache()
   at System.DirectoryServices.AccountManagement.PrincipalContext.DoMachineInit()
   at System.DirectoryServices.AccountManagement.PrincipalContext.Initialize()
   at System.DirectoryServices.AccountManagement.PrincipalContext.ContextForType(Type t)
   at System.DirectoryServices.AccountManagement.Principal.set_Name(String value)
   at Microsoft.UpdateServices.Administration.ConfigureGroups.FetchOrCreateGroup(PrincipalContext context, String name,
String description)
   at Microsoft.UpdateServices.Administration.ConfigureGroups.SetupGroup(PrincipalContext context, String groupName, Str
ing description, String registryValue)
   at Microsoft.UpdateServices.Administration.ConfigureGroups.Run(Action`1 logWriter)
   at Microsoft.UpdateServices.Administration.PostInstall.Run()
   at Microsoft.UpdateServices.Administration.PostInstall.Execute(String[] arguments)
System.DirectoryServices.DirectoryEntry.RefreshCache()에서 예외가 생긴 것 같아요.
오류 코드를 한참 동안 보냈지만 어떻게 해결해야 할지 모르겠다.
컨테이너가 아닌 일반적인 Windows Server Core 2016에서도 똑같은 프로그램을 설치하려고 했는데 그쪽은 잘 되고 있고 컨테이너 환경에는 문제가 없는 것 같아요.
Windows 컨테이너에서 실행되는 사용자는 user manager\containeradministrator입니다. 일반적인 Administrator가 아닌 것 같습니다.
여기에 권한 주위의 문제가 발생했습니까?

일반적인 Administrator로 실행하는 방법이 있습니까? 많이 시도했지만 순조롭지 못했습니다
이번에 여기서 포기했어.

감상


윈도 서버가 2016년에 출시된 지 반년이 지났지만 윈도 서버에 대한 정보는 아직 매우 적다.
특히 도입부를 넘어 실제 컨테이너를 어떻게 융통성 있게 운용할지에 대한 시도가 꾸준히 필요하다.
이번 시도의 WSUS뿐만 아니라 IT 인프라 운용 분야에서 컨테이너 기술을 어떻게 도입할지 계속 지켜볼 것이다.

좋은 웹페이지 즐겨찾기