Docker로 Terraform 인프라 만들기

목적



이것은 NGINX Docker 컨테이너를 배포하고 제거하여 Terraform 워크플로를 학습하는 데 도움이 되는 매우 간단한 실습입니다.

Terraform을 사용하려면 설치해야 합니다. HashiCorp는 Terraform을 바이너리 패키지로 배포합니다. 널리 사용되는 패키지 관리자를 사용하여 Terraform을 설치할 수도 있습니다.

OS에 따라 Terraform을 설치하는 방법은 여러 가지가 있지만 우리는 Windows의 경우 수동 방법만 거치지만 Windows에 Terraform을 설치하는 또 다른 방법은 Chocolatey를 사용하는 것입니다.
Chocolatey는 Windows용 무료 오픈 소스 패키지 관리 시스템입니다. 명령줄에서 Terraform 패키지를 설치하는 데 도움이 됩니다.

수동 설치



미리 컴파일된 바이너리를 다운로드하거나 소스에서 컴파일하여 terraform 바이너리를 검색합니다.

사전 컴파일된 바이너리에서 설치하거나 HashiCorp Terraform repository을 복제하여 소스에서 직접 컴파일할 수 있습니다.

미리 컴파일된 바이너리



Terraform을 설치하려면 시스템에 맞는 appropriate package을 찾아 zip 아카이브로 다운로드하십시오.

Terraform을 다운로드한 후 패키지의 압축을 풉니다. Terraform은 terraform이라는 단일 바이너리로 실행됩니다. 패키지의 다른 모든 파일은 안전하게 제거할 수 있으며 Terraform은 계속 작동합니다.

마지막으로 PATH에서 terraform 바이너리를 사용할 수 있는지 확인하십시오. 이 프로세스는 운영 체제에 따라 다릅니다.

This Stack Overflow article에는 사용자 인터페이스를 통해 Windows에서 PATH를 설정하는 지침이 포함되어 있습니다.

설치 확인



새 터미널 세션을 열고 Terraform의 사용 가능한 하위 명령을 나열하여 설치가 작동하는지 확인합니다.

사용

terraform -help


Terraform을 설치한 후 Mac, Windows 또는 Linux에서 Docker를 사용하여 1분 이내에 NGINX 서버를 프로비저닝합니다. 시스템에 데스크탑용 Docker가 설치되어 있지 않은 경우 이 빠른 단계를 따르십시오installation guide.

운영 체제와 관련된 가이드를 선택하십시오.

인프라 구축



로컬 머신에 Terraform 및 Docker를 설치한 후 Docker Desktop을 시작합니다.

learn-terraform-docker-container라는 디렉터리를 만듭니다.

mkdir learn-terraform-docker-container


탐색

cd learn-terraform-docker-container


main.tf 파일을 만들고 선택한 파일 편집기를 사용하여 main.tf 파일을 엽니다.

touch main.tf



nano main.tf


다음 구성 파일을 복사하여 붙여넣고 변경 사항을 저장합니다.

terraform {
  required_providers {
    docker = {
      source  = "kreuzwerker/docker"
      version = "~> 2.15.0"
    }
  }
}

provider "docker" {}

resource "docker_image" "nginx" {
  name         = "nginx:latest"
  keep_locally = false
}

resource "docker_container" "nginx" {
  image = docker_image.nginx.latest
  name  = "tutorial"
  ports {
    internal = 80
    external = 8000
  }
}



"터미널"탭에서 Terraform이 Docker와 상호 작용할 수 있도록 하는 플러그인을 다운로드하는 프로젝트를 초기화합니다. 아래 명령을 실행하십시오.

terraform init




적용으로 NGINX 서버 컨테이너를 프로비저닝합니다. Terraform에서 확인을 요청하면 yes를 입력하고 ENTER를 누릅니다. 다음 명령을 실행합니다.

terraform apply




NGINX 인스턴스 확인



NGINX 컨테이너의 존재를 확인하려면 웹 브라우저에서 localhost:8000을 방문하거나 docker ps를 실행하여 Terraform을 통해 Docker에서 실행 중인 NGINX 컨테이너를 볼 수 있습니다.

docker ps




자원 파괴



컨테이너를 중지하고 이 자습서에서 만든 리소스를 삭제하려면 terraform destroy를 실행합니다. Terraform에서 확인을 요청하면 yes를 입력하고 ENTER를 누릅니다.

terraform destroy




이제 Terraform을 사용하여 NGINX 웹 서버를 프로비저닝하고 제거했습니다.

좋은 웹페이지 즐겨찾기