Window Packer 사용 방법
1. 기본 예제
https://learn.hashicorp.com/tutorials/packer/aws-windows-image?in=packer/integrations
Build a Windows Image | Packer - HashiCorp Learn
With Packer installed, let's build a Windows Amazon EC2 AMI.
learn.hashicorp.com
2. 주의 사항
기본 예제를 따라하다보면 이상한 점을 느낄 텐데, 계정과 비밀번호를 넣는 부분이다.
이렇게 되면 모든 AMI 들은 동일한 계정과 비밀번호를 가지게 된다.
따라서 sysprep
을 통해 AMI 이미지를 일반화 해줘야 한다. (내부 PID 등 초기화)
| 왜 일반화를 해줘야 하나?
> 윈도우 서버를 시작하면 컴퓨터 이름, 로그인 정보들이 생성되며, 무엇보다 SID(Security Identifier, 보안식별자)가 생성이 되는데(SID 500은 시스템 관리자), 일반화를 안하고 사용하면 SID 정보가 그대로 남아 중복이 될 수도 있고 문제 발생의 여지가 존재 클라우드에서 사용하는 이미지는 일반화를 해야한다.
3. 해결 방법
manics packer 참고 자료가 좋아서 fork 떠서 가져온다. 아래 참고 자료를 통해서 만들어보자
https://gist.github.com/IMHOSUNG/cedde7b4fe807b4217f5934cb20765e7
Build a custom Windows AMI on AWS using Packer
Build a custom Windows AMI on AWS using Packer. GitHub Gist: instantly share code, notes, and snippets.
gist.github.com
4. 추가 문제 사항
ansible을 통해 추가 작업을 같이 사용하다보면 Window에서는 일반적으로 Winrm 사용하게 되는 데, secure 포트(5965였던가..?) 사용할 경우에는 내부에서 사용하는 https 인증서를 갱신해줘야 한다.
근데 이게 Packer에서도 동일한 포트를 사용하기 때문에 강제로 내부에서 사용하는 https 인증서를 갱신하면 문제가 발생한다.
해결 방법은 나중에 한 번 더 알아보자