기존에 패커를 통해서 EC2인스턴스를 만들고, Provisioning을 해주고, AMI이미지를 굽게 됩니다. 하지만 이 모든 과정이 오래 걸리는 과정입니다. 그래서 빠르게 프로비저닝을 테스팅할 수 있는 방법이 있어야 합니다. 이번시간에는 이런 패커의 디버깅하는 방법에 대해 간단히 알아보도록 하겠습니다.
우선 기존에 breakpoint privisioner를 사용한는 방법이 있었습니다.
/04-provisioner/main.pkr.hcl
build {
name = "fastcampus-packer"
source "amazon-ebs.ubuntu" {
name = "nginx"
ami_name = "fastcampus-packer-nginx"
}
provisioner "shell" {
inline = [
"sudo apt-get update",
"whoami",
]
}
provisioner "file" {
source = "${path.root}/files/index.html"
destination = "/tmp/index.html"
}
provisioner "shell" {
inline = [
"echo ${source.name} and ${source.type}",
"whoami",
"sudo apt-get install -y nginx",
"sudo cp /tmp/index.html /var/www/html/index.html"
]
}
provisioner "breakpoint" {
disable = false
note = "디버깅용"
}
}
이 외에도 packer cli에는 기본적으로 -debug 옵션을 붙히면 각각의 모든 과정들을 사용자의 입력이 있을떄만 다음으로 넘어갈 수 있게끔 할 수 있어서 디버깅에 용이하게 할 수 있습니다.
$ packer build -debug .
위 명령어를 치게 되고 엔터를 쭉 인스턴스가 만들어 지기 전까지 하게 되면
위와 같이 임시 ssh key가 생성되게 됩니다. 그리고 콘솔에는
이렇게 Public IP가 뜨게 되는데, 한번 접속해 보도록 하겠습니다.
잘 접속이 되는데, 그 이후에 엔터를 계속치다가 프로비저닝 중에 오류가 뜨면, 다시 서버로 돌아가서 어디가 잘못된 부분이 있는지 계속 확인해 볼 수 있을 것입니다. 그리고 문제점을 확인하게 되면 ctrl + c를 누르면 임시 파일들이 정리되고 인스턴스가 정리되게 됩니다.
'DevOps > AWS Architecture' 카테고리의 다른 글
[ DevOps ] - (테라폼을 이용한 인프라 관리) 테라폼 워크스페이스 디렉토리 구성 전략 (0) | 2022.08.03 |
---|---|
[ DevOps ] - (테라폼을 이용한 인프라 관리) 테라폼 Provisioner와 EC2 Userdata (0) | 2022.08.03 |
[ DevOps ] - (패커를 이용한 머신 이미지 관리) - 후 처리기 (Post-processor) (0) | 2022.08.02 |
[ DevOps ] - (패커를 이용한 머신 이미지 관리) - 데이터 소스 활용 ( Data-source ) (0) | 2022.08.02 |
[ DevOps ] - (패커를 이용한 머신 이미지 관리) - 프로비저너 (Provisioner) (0) | 2022.08.02 |