Terraform와 Proxmox를 활용한 GitOps 자동화

발행: (2026년 1월 30일 오후 11:45 GMT+9)
6 분 소요
원문: Dev.to

Source: Dev.to

초기 문제

Proxmox에서 VM을 만들 때마다 반복되는 과정이 있었습니다: 웹 인터페이스를 열고, 양식을 채우고, 네트워크를 수동으로 설정하고, VM 생성이 끝날 때까지 기다린 뒤, SSH로 접속해 환경을 구성하는 것이었습니다.

게다가 향후 같은 과정을 다시 실행해야 할 경우 정확히 어떤 단계가 수행됐는지 기억해야 했습니다. 변경 이력도 없고, 일관된 자동화도 없으며, 추적성도 부족했습니다.

스크립트나 Terraform을 사용하더라도 여전히 수동 단계가 남아 있어, 프로세스가 기대보다 오래 걸리고 개선할 부분이 명확했습니다.

해결책: GitOps + Terraform + GitHub Actions

전체 인프라를 Git에 버전 관리되는 코드만으로 관리하는 GitOps 워크플로를 구현했습니다.

그 결과는 매우 인상적이었습니다: 이제는 커밋과 푸시만으로 VM을 생성·수정·삭제할 수 있습니다. 2~3분 정도면 변경 사항이 Proxmox 환경에 자동으로 적용됩니다.

진행하면서 배운 점

모든 것이 간단한 것은 아니었습니다, 특히 처음부터 시작하는 사람에게는요.

저는 이미 이 도구들을 어느 정도 다뤄본 경험이 있기 때문에, Proxmox 권한을 올바르게 설정하고, self‑hosted runner를 로컬 네트워크에 배치하며(Proxmox가 클라우드에서 직접 접근할 수 없기 때문에), 코드를 확장 가능하고 재사용 가능하도록 구조화하는 일은 크게 어려운 작업이 아니었습니다.

그럼에도 각 단계마다 Infrastructure as Code, CI/CD, 자동화 모범 사례와 관련된 학습과 개선의 기회가 있었습니다.

참고: 처음 해보는 사람들을 위해 자세한 단계별 가이드와 FAQ를 제공하여 환경 재현을 쉽게 할 수 있도록 했습니다.

사용 기술

  • Terraform – IaC
  • GitHub Actions – CI/CD 자동화
  • Terraform Cloud (HCP Terraform) – 원격 상태 관리
  • Proxmox – 하이퍼바이저
  • Self‑hosted runners – 로컬에서 잡 실행

모든 도구는 100 % 오픈소스이며 무료이고, 데이터와 인프라에 대한 완전한 제어를 보장하는 self‑hosted 환경에서 실행됩니다.

실제 영향

이전현재
수동 프로세스·오류 위험·이력 없음으로 VM당 15–20 분코드에 VM 정의 → 커밋·푸시 자동 적용까지 약 30 초, Git을 통한 완전한 추적성

시간 절감보다 더 중요한 것은 신뢰성 향상이었습니다. 모든 변경은 리뷰를 거치고 Git 히스토리에 기록되며, git revert 한 줄로 쉽게 되돌릴 수 있습니다. 이는 실험 환경에서 안전하게 되돌릴 수 있는 가능성이 큰 차이를 만들기 때문입니다.

얻은 교훈

  • 자동화는 모든 수작업을 없애는 것이 아니라, 반복적이고 오류가 발생하기 쉬운 작업을 줄이는 것입니다.
  • Infrastructure as Code는 대기업 전용이 아니라, 홈랩에서도 실험하기에 최적입니다.
  • 문서는 코드만큼 중요합니다 – 미래의 ‘나’를 위해 각 단계를 문서화하는 데 시간을 투자했습니다.
  • Self‑hosted runner를 사용하면 로컬 환경에서도 자동화 가능성이 크게 확대됩니다.

향후 계획 / 개선점

현재 VM 생성 후 설정을 위해 Semaphore UI를 사용하고 있으므로, Ansible을 통합할 예정이며, 배포 전 자동 테스트도 추가하려고 합니다.

기술 구현 상세와 프로젝트 재현을 원하는 분들을 위해 전체 단계(발생한 모든 문제에 대한 트러블슈팅 포함)는 homelab-infrastructure-template에서 확인할 수 있습니다.


Back to Blog

관련 글

더 보기 »

38. Terraform을 사용한 사용자 변수 설정

Lab Information Nautilus DevOps 팀은 더 나은 아이덴티티 관리를 위해 Terraform을 사용하여 IAM 사용자 생성을 자동화하고 있습니다. 다음과 같이 AWS IAM 사용자를 생성하십시오.

34. Terraform을 사용하여 S3에 데이터 복사

Lab Information 나우틸러스 DevOps 팀은 현재 데이터 마이그레이션을 수행하고 있으며, 온프레미스 스토리지 시스템에서 AWS S3 버킷으로 데이터를 이동하고 있습니다. They have rece...