마짱짱의 지식창고

[Terraform] Terraform 생성,수정,삭제 test 본문

Automation/Terraform

[Terraform] Terraform 생성,수정,삭제 test

마짱짱 2021. 6. 4. 14:05
반응형

0. 시작하기 전

2021.06.04 - [Cloud/Terraform] - [Terraform] WSL2 + cloud sdk + terraform + VScode 개발환경 구축

구축 제대로 됐는지 확인을 위한 간단한 테스트

 

https://registry.terraform.io/providers/hashicorp/google/latest/docs

해당 주소에서 GCP에 관한 Terraform 구조를 확인 할 수있습니다.

 

(참고실습 : https://learn.hashicorp.com/tutorials/terraform/google-cloud-platform-build?in=terraform/gcp-get-started )

1. main.tf 생성

// Terraform Resistry에 등록된 명령어 구조, https://registry.terraform.io/providers/hashicorp/google/latest/docs
terraform {
  required_providers {
    google = {
      source  = "hashicorp/google"
      version = "3.70.0"
    }
  }
}

// 접근할 Provider
provider "google" {
  credentials = file("/mnt/d/terraform/key.json") // GCP 에 접근할 ServiceAccount의 Keyfile

  project = "daring-card-283301" // 생성할 프로젝트
  region  = "asia-northeast3"    // 생성할 지역
}

// VPC 생성
resource "google_compute_network" "vpc_network" {
  name = "terraform-network" // 이름
}

credentials 부분의 Keyfile은 다음 아래주소에 정리했습니다.

2021.06.04 - [Cloud/GCP] - [GCP] Service Account 생성

2. terraform init, apply

terraform init

해당 명령어를 통해

새 구성을 만들거나 버전 제어에서 기존 구성을 체크 아웃 할 때를 사용하여 디렉토리를 초기화해야합니다

 

terraform fmt 를 입력하여 

독성과 일관성을 위해 현재 디렉토리의 구성을 자동으로 업데이트합니다.

 

terraform validate 를 입력하여

구성이 구문 상 유효하고 내부적으로 일관성이 있는지 확인할 수도 있습니다 .

 

terraform apply 를 입력하여 구성을 시작합니다.변경하는 값이 맞는지 확인하고 yes 를 입력하시면 구성이 시작됩니다.

 

 

3. 수정

해당 코드를 기존에있던 main.tf 에 붙입니다.

// VM 생성
resource "google_compute_instance" "vm_instance" {
  name         = "terraform-instance" // VM 이름
  machine_type = "f1-micro" // vm 머신타입
  zone = "asia-northeast3-a" // 생성될 위치

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9" // Boot os
    }
  }

  network_interface {
    network = google_compute_network.vpc_network.name  // 위에서 만든 네트워크 VPC 이용
    access_config {
    }
  }
}


terraform apply 입력하여 실행하면 VM이 생성되었습니다.

 

 

갑자기 생성된 VM에 Tag를 붙이고 싶어졌습니다.

기존에 있던 VM생성 코드에 아래

tags = ["msw"] 를 알맞게 넣어주세요.

 

다시 terraform apply 를 해줍시다.

~ : 리소스에서 업데이트가 있을예정이다.

+ : 추가될 내용 입니다.

 

4. 삭제

terraform destory 명령어를 통해 해당 위치에있는 설정에대한 구축한 것을 파괴합니다.

반응형