brunch

You can make anything
by writing

C.S.Lewis

by Master Seo May 20. 2022

NCP 6탄-테라폼-테라폼으로 관리 1/4

네이버 클라우드 자원을 테라폼으로 만들어보자

테라폼으로 관리해보자

자동화 하는것이다.




작업 환경

Windows PC에서 테라폼을 사용해보자

VSCode로 코드 편집을 해보자



본 내용은  네이버 클라우드+하시코프 세미나 참석해 ,  아래 내용  참고하여 작성했습니다.

https://docmoa.github.io/



<1>  테라폼  알아  보기

<2>  Windows PC에 테라폼 다운로드와  설치

<3>  Windows PC에 VScode 설치

<4>  테라폼 코드 다운로드 

<5>  vscode에서  파일  폴더로 소스를 열어보자




<1>  테라폼  알아  보기


1

help 도움말 보기 ~~

명령어 뒤에  help 친다.


terraform   apply  help



2

주석은   3가지 ?

//

/*    

*/



3

.tf 가 붙어 있으면  테라폼 파일이다.


1.tf  , 2.tf  ,  3.tf      파일로 만들면, 실행할때  합쳐져서 실행된다고 보면 된다.

그래서, 파일 안에 똑같은 이름이 있으면 오류가 난다.



4

변수 ?

재 활용성을 높여 준다.


변수는  

(변수 우선 순위)

Command line flag  명령줄로 실행

tfvars 파일에도  설정할수 있다.




<2>  실습   - Windows PC에 테라폼 다운로드와  설치



1

https://www.terraform.io/downloads



2

D:\2\terraform_1.2.0_windows_386>terraform.exe --version

Terraform v1.2.0

on windows_386



3

참고 사이트

https://docmoa.github.io/03-Public%20Cloud/NCP/09-Terraform-Workshop/01-intro_to_terraform_on_ncp/02-z-lab_terraform_basic.html




<3>  Windows PC에 VScode 설치



1

https://code.visualstudio.com/



2

왼편 아래 확장 메뉴

terraform 으로 검색해  HashCorp Terraform 확장 설치한다.





<4>  테라폼 코드 다운로드 



1

https://github.com/ncp-hc/workshop-oss



2

다운로드 zip

d:/2에 푼다.



3

vscode에서   터미널  > Net 터미널 실행


테라폼을 실행해 본다.


PS C:\2\terraform_1.2.0_windows_386> .\terraform.exe   




<5>  vscode에서  파일  폴더로 소스를 열어보자



1

vscode  실행

File > Open Folder > lab01   폴더 선택한다.



2

코드 내용 확인



c:\2\workshop-oss-main\lab01>dir

2022-05-19  오후 07:31               367 main.tf

2022-05-19  오후 07:31                65 outputs.tf

2022-05-19  오후 07:31               176 terraform.tfvars

2022-05-19  오후 07:31             1,025 variables.tf



c:\2\workshop-oss-main\lab01>more *.tf

terraform {

  required_providers {

    ncloud = {

      source  = "NaverCloudPlatform/ncloud"

      version = ">= 2.1.2"

    }

  }

}

provider "ncloud" {

  region      = var.region

  site        = var.site

  support_vpc = true

}

resource "ncloud_vpc" "hashicat" {

  ipv4_cidr_block = var.address_space

  name            = lower("${var.prefix}-vpc-${var.region}")

}

# Outputs file

#output "vpc_name" {

#  value = ncloud_vpc.name

#}

##############################################################################

# Variables File

#

# Here is where we store the default values for all the variables used in our

# Terraform code. If you create a variable with no default, the user will be

# prompted to enter it (or define it via config file or command line flags.)

variable "prefix" {

  description = "This prefix will be included in the name of most resources."

}

variable "region" {

  description = "The region where the resources are created."

  default     = "KR"

}

variable "site" {

  description = "Ncloud site. By default, the value is public. You can specify only the following value: public, gov, fin. public is for www.ncloud.com. gov is for www.gov-ncloud.com. fin is for www.fin-ncloud.com."

  default     = "public"

}

variable "address_space" {

  description = "The address space that is used by the virtual network. You can supply more than one address space. Changing this forces a new resource to be created."

  default     = "10.0.0.0/8"

}

c:\2\workshop-oss-main\lab01>





<6> 네이버 클라우드에서 인증키 만들어 복사해 놓자.



1

access-key 와 secret key 이다.

복사해 놓자.

인증키는 외부에 유출 되면 안된다.



2

vs code 의 ps  파워셜에서 환경 설정법

파워셀 ps

$Env:NCLOUD_ACCESS_KEY="7qYmb8A"

$Env:NCLOUD_SECRET_KEY="u8n6znDXyDe71B"


linux 경우

export NCLOUD_ACCESS_KEY="XXXXXXXXXXXXX"

export NCLOUD_SECRET_KEY="79DXXXXXXXXXXXXXXXXXqp"



3

테라폼 실행 파일을 다운 받은 소스 폴더에 넣음


 Directory of c:\2\workshop-oss-main\lab01

2022-05-19  오후 07:31               367 main.tf

2022-05-19  오후 07:31                65 outputs.tf

2022-05-19  오전 06:03        61,461,472 terraform.exe

2022-05-19  오후 07:31               176 terraform.tfvars

2022-05-19  오후 07:31             1,025 variables.tf



4

초기화 ?

terraform init

Suggestion [3,General]: terraform 명령이 현재 위치에 있지만 이 명령을 찾을 수 없습니다. Windows PowerShell은 기본적으로 현재 위치에서 명령을 로드하 

지 않습니다. 이 명령을 신뢰하는 경우 대신 ".\terraform"을(를) 입력하십시오. 자세한 내용은 "get-help about_Command_Precedence"를 참조하십시오.       


 .\terraform.exe init

PS D:\2\terraform_1.2.0_windows_386> .\terraform.exe init



6

PS D:\2\workshop-oss-main\lab01> .\terraform.exe plan 


│ Error: expected "ipv4_cidr_block" to contain a network Value with between 16 and 28 significant bits, got: 8

│   with ncloud_vpc.hashicat,

│   on main.tf line 17, in resource "ncloud_vpc" "hashicat":

│   17:   ipv4_cidr_block = var.address_space

│ Error: name can only lowercase letters, numbers and special characters "-" are allowed and must start with an alphabetic character

│   with ncloud_vpc.hashicat,

│   on main.tf line 18, in resource "ncloud_vpc" "hashicat":

│   18:   name            = lower("${var.prefix}-vpc-${var.region}")


테라폼   변수파일에서 /8 대신  /16 으로 변경한다.

네이버 클라우드는   IP블럭을 /16부터 지원한다.



tfvars 파일에서 변수를 지정한다.

주석 해지 한다.



7

PS D:\2\workshop-oss-main\lab01> .\terraform.exe apply


Do you want to perform these actions?

  Terraform will perform the actions described above.

  Only 'yes' will be accepted to approve.

  Enter a value: yes



콘솔에서 VPC 생성 확인 ?


yourname-vpc-kr




9

실습을 모두 마쳤다면 삭제  !!


삭제하지 않으면 비용이 나온다~~



.\terraform.exe destroy


PS D:\2\workshop-oss-main\lab01> .\terraform.exe destroy


Do you really want to destroy all resources?

  Terraform will destroy all your managed infrastructure, as shown above.

  There is no undo. Only 'yes' will be accepted to confirm.


  Enter a value: yes




다음 공부

https://brunch.co.kr/@topasvga/2447



전체 보기

https://brunch.co.kr/@topasvga/2450


감사합니다.

매거진의 이전글 145. 테라폼,NKS설치-2025-05
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari