테라폼으로 관리해보자
자동화 하는것이다.
Windows PC에서 테라폼을 사용해보자
VSCode로 코드 편집을 해보자
본 내용은 네이버 클라우드+하시코프 세미나 참석해 , 아래 내용 참고하여 작성했습니다.
1
help 도움말 보기 ~~
명령어 뒤에 help 친다.
terraform apply help
2
주석은 3가지 ?
#
//
/*
*/
3
.tf 가 붙어 있으면 테라폼 파일이다.
1.tf , 2.tf , 3.tf 파일로 만들면, 실행할때 합쳐져서 실행된다고 보면 된다.
그래서, 파일 안에 똑같은 이름이 있으면 오류가 난다.
4
변수 ?
재 활용성을 높여 준다.
변수는
(변수 우선 순위)
Command line flag 명령줄로 실행
tfvars 파일에도 설정할수 있다.
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
참고 사이트
1
https://code.visualstudio.com/
2
왼편 아래 확장 메뉴
terraform 으로 검색해 HashCorp Terraform 확장 설치한다.
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
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>
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
8
콘솔에서 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
감사합니다.