Visual Studio Team Services와 Terraform Enterprise 통합

저는 지금 약 7 개월 동안 HashiCorp에서 솔루션 엔지니어로 일해 왔으며 고객에게 Terraform Enterprise (TFE)에 대해 이야기 할 때 자주 묻는 질문은 우리가 지원하는 VCS (버전 제어 시스템)입니다. 실제로이 대화는 매우 짧습니다. 일반적으로 고객은 여러 VCS 공급자를 보유하고 있으므로 TFE와 통합하는 것이 매우 간단합니다. 문제는 조직에서 기본적으로 지원되지 않는 VCS를 선택한 경우 어떻게해야합니까?

이 기사의 목적은 선택한 VCS를 계속 사용하면서 TFE의 모든 이점을 활용할 수 있도록 TFE 내에서 사용할 수있는 몇 가지 워크 플로에 대해 설명하는 것입니다.

먼저 몇 가지 핵심 개념을 풀어 보겠습니다.

작업 공간

Terraform은 몇 가지 용도로 사용되는 작업 공간 구성을 구현합니다. 가장 간단한 형태로 작업 공간은 Terraform 템플릿 (main.tf, variables.tf, outputs.tf 등)을 저장하는 VCS의 폴더를 나타냅니다. 문서에서이를 작업 디렉토리라고도합니다. 작업 공간은 다음과 같은 몇 가지 다른 주요 기능도 제공합니다.

전체적으로, 작업 공간과 이들이 제공하는 기능은 조직이 코드로서의 인프라를 대규모로 관리 할 때 경험하는 많은 골칫거리를 제거합니다.

버전 관리

이것은 간단합니다. VCS는 인프라 배포에 필요한 애플리케이션 코드 및 관련 Terraform 템플릿을 저장하는 곳입니다. VCS를 TFE와 통합 할 때 웹 UI 또는 푸시 또는 풀 요청을 통해 Run을 대기열에 넣을 때 템플릿 (작업 디렉터리)을 가져올 위치를 알고 있습니다.

이 모든 활동은 VCS 저장소의 웹훅에서 제공되며 인증은 oAuth를 통해 처리됩니다.

실행

여기에서 워크 플로 인 창의 끝 부분에 도달합니다. 이제 YouTube 채널에서 사용할 수있는 비디오를 본 적이 있다면 우리는 모두 워크 플로에 관한 것임을 알 수 있습니다. TFE에는 세 가지 핵심 워크 플로가 있습니다.

문제 공간

알겠습니다. 이제 핵심 개념을 이해 했으므로 문제 해결을위한 비즈니스 단계를 시작하겠습니다. 겸손한 TFE API를 입력하세요!

아래에서 설명 할 솔루션은 멀티 클라우드 전략을 보유한 금융 서비스 기관에서 사용한 솔루션입니다. 제 고객은 Azure에 배포 할 때 이미 VSTS, PowerShell 및 ARM 템플릿에 많은 투자를했습니다. 핵심 사용 사례 중 하나는 CICD 용 VSTS를 계속 사용할 수 있지만 리소스 프로비저닝을 처리하기 위해 Terraform Enterprise에 전달할 수 있음을 보여주는 것이 었습니다. PoC (개념 증명)는 처음에는 Microsoft Azure의 워크 플로를 증명하기위한 것이었지만 이후 AWS, GCP 및 VMWare 온 프레미스를 포함하도록 발전했습니다. 모든 API 통합은 PowerShell을 통해 관리되며 실행은 VSTS에서 처리됩니다. 이 작업을 수행 한 이유는 다음과 같습니다.

전제 조건

직접 테스트하려면 몇 가지 사항이 필요합니다.

시연 시간!

그러면이 워크 플로가 실제로 어떻게 보이는지 살펴 보겠습니다. 다음 데모에서는 VSTS에서 새 프로젝트를 만드는 방법을 보여주고 몇 가지 코드를 가져 와서 몇 가지 변수를 사용하여 빌드 및 릴리스 파이프 라인을 만들겠습니다. 마지막으로 파이프 라인에서 지속적 배포를 활성화하여 일부 코드를 커밋 할 때마다 Azure 리소스 그룹 및 가상 네트워크를 자동으로 실행하고 프로 비전합니다. 너무 쉽습니다!

결론

TFE의 워크 플로는 고객에게 많은 유연성을 제공하며 채택 여부는 서비스를 사용하는 실무자의 운영 성숙도에 크게 좌우됩니다. 발가락을 물에 담그는 경우 UI에서 시작할 가능성이 큽니다. 발전하고 기술이 성장함에 따라 ITSM 플랫폼이 서버리스 기능과 통신하는, 즉 자동화 계층과 통신하고 Terraform을 호출하여 클릭시 반복 가능한 인프라를 쿠키 절단하는 더 복잡한 통합으로 이동하게됩니다. 마우스 행복한 날!