마짱짱의 지식창고
[Terraform] Terraform 생성,수정,삭제 test 본문
0. 시작하기 전
2021.06.04 - [Cloud/Terraform] - [Terraform] WSL2 + cloud sdk + terraform + VScode 개발환경 구축
구축 제대로 됐는지 확인을 위한 간단한 테스트
https://registry.terraform.io/providers/hashicorp/google/latest/docs
해당 주소에서 GCP에 관한 Terraform 구조를 확인 할 수있습니다.
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 명령어를 통해 해당 위치에있는 설정에대한 구축한 것을 파괴합니다.
'Automation > Terraform' 카테고리의 다른 글
[Terraform] Associate 준비(2) - Terraform State 의 목적, Remote State (0) | 2021.07.21 |
---|---|
[Terraform] Associate 준비(1) - IaC코드 이해하기 (0) | 2021.07.21 |
[Terraform] Associate 준비 & 문제풀이 & 개념정리 (0) | 2021.06.16 |
[Terraform] WSL2 + cloud sdk + terraform + VScode 개발환경 구축 (2) | 2021.06.04 |
Terraform 개요 및 설치 (0) | 2020.08.26 |