IaCμ Terraform
μ½λν μΈνλΌ Infrastructure as code (IaC)λ μλ¬Έ κ·Έλλ‘ βμ½λλ‘μμ μΈνλΌβ μλ―Έλ₯Ό κ°μ§κ³ μμ΅λλ€.
μ½μμμ UIλ₯Ό ν΅ν΄ μ‘°μνλκ²μ΄ μλ μ½λλ‘ λμμ κ΄λ¦¬ν©λλ€.
μΈνλΌ μλνμ μ±μλ
1.
맀λ΄μΌ
- μΈνλΌ κ΄λ ¨ λͺ¨λ μ 보μ κ΅¬μ± ,λ³κ²½, κΈ°μ‘΄ μν€ν
μ²μ λν λͺ¨λ λ΄μ©μ λ¬Έμλ‘ κ΄λ¦¬
- νμ¬λ μμ
μνΈλ₯Ό μ΄μ©ν΄μ IP, ID, Serviceλ±μ λν΄ κ΄λ¦¬νλ κ³³ μ‘΄μ¬
- μ¦μ νμΈ κ°λ₯νμ§λ§ μ€μ μμ
μ μν λͺ
λ Ήμ΄μ κ΅¬μ± νμΌμ λ³λλ‘ μ€λΉ
2.
μ€ν¬λ¦½νΈ
- λ°λ³΅λλ μμ
μ μμ
μκ° μ€ν¬λ¦½νΈλ‘ μμ±νκ³ κ²½νμ μΈ λ
Ένμ°λ₯Ό ν΅ν΄ μ€ν¬λ¦½νΈλ₯Ό μμ±
- ν λ² μ λ§λ€λ©΄ νΈν¨
- μ½λ μμ΄ λ§μμ§λ©΄ κ³ λ €μ¬νμ΄ λ§μμ§
3.
κ°μ λ¨Έμ (VM)
- κ°μν μ루μ
μ ν΅ν΄ μ΄λ―Έμ§ ν
νλ¦Ών κ°λ₯ν΄μ§
- νμν ν¨ν€μ§μ μ루μ
μ 미리 μ€μΉνμ¬ λ°λ³΅μ μΌλ‘ νμ© κ°λ₯
4.
ν΄λΌμ°λ μΈνλΌ
- ν΄λΌμ°λ 리μμ€λ₯Ό μ격μΌλ‘ κ΄λ¦¬ν μ μμ
- λΉ λ₯Έ μΈνλΌ μμκ³Ό ꡬμ±μ΄ κ°λ₯νκ³ νμ₯μ±μ΄ λ°μ΄λ¨
5.
컨ν
μ΄λ
- μ΄μ체μ λ₯Ό κ°μνν νκ²½μ μ 곡νκΈ° λλ¬Έμ λΉ λ₯Έ μλΉμ€ κ°λ°μ ν μ μμ
- λ°λΈμ΅μ€ νλ¦μ λ§μΆ°μ λΉ λ₯΄κ² μ±μ₯
- 컨ν
μ΄λ κ΄λ¦¬μ λ°°ν¬λ₯Ό μν μ μ΄ μμ€ν
μ ꡬμΆνκ³ λͺ¨λν°λ§μ μλ λ
Έλ ₯μ΄ μλ€μ μΌλ‘ 컀μ§κ³ μμ
- μ λ¬Έ μΈλ ₯μ΄ κΈ°μ κΈ°λ°μ λΉν΄ λΆμ‘±
IaCμ μ΄ν΄
μ½λλ₯Ό ν΅ν΄ μΈνλΌλ₯Ό κ΄λ¦¬νλ€λ κ²μ μ½κ² λ³κ²½νκ³ νκ²½μ μ΄ν΄ κ·Έλ¦¬κ³ λ°λ³΅μ μΌλ‘ λμΌν μνλ₯Ό λ§λ€ μ μλ€λ λ§μ
λλ€.
1.
μ’μ μ½λμ νΉμ§
- μ μμ μΌλ‘ λμ
- μ½κΈ° μ¬μ
- λͺ¨λνλ¨
- ν
μ€νΈκ° κ°λ₯ν¨
- μ°μν¨
- κ΄λ¦¬κ° μ¬μ
- λ³κ²½μ΄ μ¬μ
- κ°κ²°
- ν¨μ¨
IaC λμ μ κΈμ μ μΈ μΈ‘λ©΄
β’
μλμ ν¨μ¨μ±
- μλμΌλ‘ μμ
μ
ν λλ³΄λ€ μ μνκ³ λΆνμν μΈνλΌ κ΅¬μ± λ°©μ§
- μ½λλ₯Ό λ³κ²½νμ¬ μ μ©νλ©΄ μΈνλΌλ λ³κ²½νμ¬ κΈ°μ‘΄ λ°©μλ³΄λ€ λ³κ²½ μλκ° λΉ λ¦
β’
λ²μ κ΄λ¦¬
- μ½λ ννλ‘ κ΄λ¦¬νκΈ° λλ¬Έμ VCS ν΄κ³Ό μ°κ³ κ°λ₯
- λ³κ²½ λ΄μ©μ μΆμ νκ³ μ΄μ μ½λλ‘ λ‘€λ°±νκ±°λ λΉκ΅ κ°λ₯
β’
νμ
- νμΌ ννλ‘ λμ΄ μμ΄ μ¬μ΄ 곡μ κ°λ₯νκ³ κ³΅λ μμ
μ μν νκ²½ κ΅¬μΆ κ°λ₯
β’
μ¬μ¬μ©μ±
- μ£Όμ μ½λ λ°λ³΅ λλ νμ€νλ ꡬμ±μ ν¨ν€μ§νλ©΄ λ§€λ² μλ‘ μ½λλ₯Ό ꡬμ±νμ§ μκ³ κΈ°μ‘΄ λͺ¨λλ‘ λ°°ν¬ κ°λ₯
IaC λμ μ μ°λ €λλ μΈ‘λ©΄
β’
μ½λ λ¬Έλ² νμ΅
- νμ΅ νμ
β’
νμ΄νλΌμΈ ν΅ν©
- κΈ°μ‘΄ μν¬νλ‘μ μλνλ₯Ό μν μκ³ λ‘μ
β’
λμ μΈνλΌμ λν μ΄ν΄ νμ
- κ΄λ¦¬ λμμ΄ λλ μΈνλΌμ μ§μμ΄ νμ
ν λΌνΌμ νΉμ±
2012λ
νμμ½νλ₯Ό μ€λ¦½νκ³ μμ
νκ²½μ μ½κ² λ°λ³΅μ μΌλ‘ ꡬμ±ν μ μλ λ² μ΄κ·Έλ°νΈλ₯Ό μμμΌλ‘ 2014λ
ν
λΌνΌμ΄ μ²μ μΆμ 2021λ
1.0 λ²μ μ ν
λΌνΌμ μΆμνμ΅λλ€.
ν
λΌνΌμ μΈ κ°μ§ μ€μν μ² ν
β’
μν¬νλ‘μ μ§μ€
β’
μ½λν μΈνλΌ
β’
μ€μ©μ£Όμ
ν λΌνΌ μ 곡 μ ν
β’
On-premise
- μΌλ°μ μΌλ‘ Terraformμ΄λΌ λΆλ¦¬λ νν
- μ¬μ©μμ μ»΄ν¨ν
νκ²½μ μ€νμμ€ λ°μ΄λ리 ν΄λ¦° ν
λΌνΌμ΄ ꡬμ±λμ΄ κ°μ₯ λ리 μ΄μ©
β’
Hosted SaaS
- Terraform Cloudλ‘ λΆλ¦¬λ μλΉμ€ν μννΈμ¨μ΄λ‘ μ 곡λλ κ΅¬μ± νκ²½μΌλ‘ νμμ½νκ° κ΄λ¦¬νλ μλ² νκ²½μ΄ μ 곡
β’
Private Install
- Terraform Enterpriseλ‘ λΆλ¦¬λ μλ² μ€μΉν κ΅¬μ± νκ²½μΌλ‘ κΈ°μ
μ μ¬λ΄ μ μΉμ λ°λΌ μΈν°λ·/μΈλΆ λ€νΈμν¬ μ¬μ©μ΄ λΆκ°λ₯ν λ€νΈμν¬ νκ²½
ν λΌνΌ νκ²½ ꡬμ±
β’
미리 λΉλλ λ°μ΄λ리 νμΌ λ€μ΄λ‘λ
https://www.terraform.io/
β’
ν
λΌνΌ μμ€ μ½λλ₯Ό λ€μ΄λ‘λ ν λΉλ
β’
OS ν¨ν€μ§ κ΄λ¦¬μ νμ©
IDE ꡬμ±
λλΆλΆμ κ°λ° μΈμ΄κ° κ·Έλ λ― ν
λΌνΌλ λ°μ΄λ리 μ€μΉ νμΌκ³Ό λ©λͺ¨μ₯ κ°μ κΈ°λ³Έ ν
μ€νΈ νΈμ§κΈ°λ§ μμ΄λ μμν μ μλ€. νμ§λ§ μ½λ μμ΄ λ§μμ§κ³ μ¬λ¬ λꡬμ ν¨κ² μ¬μ© κ°λ₯ν νκ²½μ ꡬμ±νλ€λ©΄ IDE νκ²½μ΄ λ λμ κ°λ° νκ²½μ μ 곡ν©λλ€.
VSCode νμ₯ μμ΄μ½μ λλ¬μ HashiCorp HCL κ²μ ν μ€μΉλ₯Ό νλ©΄ VSCodeμμ ν
λΌνΌμ μ€νμν¬ μ μκ² λ©λλ€.
μ£Όμ λͺ λ Ήμ΄
ν°λ―ΈνΈμμ terraform λͺ
λ Ήμ΄λ₯Ό μ€ννλ κ²μΌλ‘ κΈ°λ³Έ λμλ§μ νμΈν μ μμ΅λλ€.
1.1 init
terraform init λͺ
λ Ήμ ν
λΌνΌ κ΅¬μ± νμΌμ΄ μλ λλ ν°λ¦¬λ₯Ό μ΄κΈ°ν νλλ° μ¬μ©ν©λλ€. μ΄ μμ
μ μ€ννλ λλ ν°λ¦¬λ₯Ό βλ£¨νΈ λͺ¨λβ μ΄λΌ λΆλ¦
λλ€. ν
λΌνΌμ μ²μ μμνλ λ° μ¬μ©λλ 첫 λ²μ§Έ λͺ
λ Ήμ΄λ‘ νλ‘λ°μ΄λ, λͺ¨λ λ±μ μ§μ λ λ²μ μ λ§μΆ° λ£¨νΈ λͺ¨λμ ꡬμ±νλ μν μ μνν©λλ€.
μλ°μ pom.xml, Node.jsμ package.json, νμ΄μ¬μ requirements.txt μ²λΌ ꡬμ±μμ νμν μμ‘΄μ± μ μλ₯Ό μ½κ³ μ²μ μ€νν λ μ€νμ νμν μν°ν©νΈλ λΌμ΄λΈλ¬λ¦¬λ₯Ό λ€μ΄λ‘λνκ³ μ€λΉμν€λ μν κ³Ό λΉμ·ν©λλ€.
ν
λΌνΌ μ½λμμ μ¬μ©λ ꡬ문μ κΈ°λ°μΌλ‘ νμν νλ¬κ·ΈμΈμ μ°Ύμμ μ€μΉνλ κ³Όμ μ
λλ€.
1.2 validate
ν
λΌνΌ νμΌμ μ½λμ μΈ μ ν¨μ±λ§ νμΈν©λλ€. ν
λΌνΌ plan λμκ³Ό λ¬λ¦¬ μμ±λ ꡬμ±μ λ¬Έλ², μ’
μμ±, μμ± μ΄λ¦μ΄λ μ°κ²°λ κ°μ μ νμ±μ νμΈν©λλ€.
terraform validateμ μ€νν΄λ³΄λ©΄ μλ¬ μΆλ ₯μ νμΈν μ μμ΅λλ€.
resource "local_file" "abc" {
content = "123!"
# filename = "${path.module}/abc.txt"
}
PS D:\ν
λΌνΌ\terraform_code> .\terraform.exe validate
β·
β Error: Missing required argument
β
β on main.tf line 1, in resource "local_file" "abc":
β 1: resource "local_file" "abc" {
β
β The argument "filename" is required, but no definition was found.
Shell
볡μ¬
local_file 리μμ€ μ μμ filenameμ΄ νμ μΈμμΈλ° μ£Όμ μ²λ¦¬λμκΈ° λλ¬Έμ ν΄λΉ μ μκ° μλ€λ λ©μμ§κ° μΆλ ₯λ©λλ€.
β’
-no-color
λ‘컬 νκ²½μ΄ μλ μΈλΆ νκ²½μμ(μ ν¨μ€, ν
λΌνΌ ν΄λΌμ°λ, κΉν μ‘μ
λ±) ν΄λΉ μ΅μ
μ μ¬μ©νλ©΄ μμ νκΈ° λ¬Έμκ° μλλ° μ΄ κ²½μ° -no-color μ΅μ
μ μΆκ°νλ©΄ μμ νκΈ° λ¬Έμ μμ΄ μΆλ ₯ν©λλ€.
β’
-json
μ΅μ
μ€μ -json μ΅μ
μ μ¬μ©νλ©΄ μ€ν κ²°κ³Όλ₯Ό JSON νμμΌλ‘ μΆλ ₯ν μ μμ΅λλ€.
PS D:\ν
λΌνΌ\terraform_code> .\terraform.exe validate -json
{
"format_version": "1.0",
"valid": true,
"error_count": 0,
"warning_count": 0,
"diagnostics": []
}
Shell
볡μ¬
plan & apply
plan λͺ
λ Ήμ ν
λΌνΌμΌλ‘ μ μ©ν μΈνλΌμ λ³κ²½ μ¬νμ λν΄ μ€ν κ³νμ μμ±νλ λͺ
λ Ήμ΄μ
λλ€. λν μΆλ ₯λλ κ²°κ³Όλ₯Ό νμΈνμ¬ μ΄λ€ λ³κ²½μ΄ μ μ©λ μ§ λ―Έλ¦¬ κ²ν ν μ μμ΄ μ΄ν΄νλλ° λμμ μ€λλ€.
applyλ μ plan κ³νμ κΈ°λ°μΌλ‘ μμ
μ μ€νν©λλ€.
plan λͺ
λ Ήμ λ³κ²½ μ¬νμ μ€μ λ‘ μ μ©νμ§λ μμΌλ―λ‘ μ μ© μ μ μμν ꡬμ±μ΄ λ§λμ§ κ²ν νλλ° μ΄μ©λ©λλ€.
PS D:\ν
λΌνΌ\terraform_code> .\terraform.exe plan
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# local_file.abc will be created
+ resource "local_file" "abc" {
+ content = "abc!"
+ content_base64sha256 = (known after apply)
+ content_base64sha512 = (known after apply)
+ content_md5 = (known after apply)
+ content_sha1 = (known after apply)
+ content_sha256 = (known after apply)
+ content_sha512 = (known after apply)
+ directory_permission = "0777"
+ file_permission = "0777"
+ filename = "./abc.txt"
+ id = (known after apply)
}
Plan: 1 to add, 0 to change, 0 to destroy.
Shell
볡μ¬
plan λͺ
λ Ήμ μ€ννλ©΄ μ²μ μΆλ ₯λ λ΄μ©μμ + κΈ°νΈλ μλ‘ μμ±λλ 리μμ€μ
λλ€.
λ§μ§λ§ Plan: 1 to add, 0 to change, 0 to destroy. κ²°κ³Όλ μ΄ κ΅¬μ±μ μ μ©ν κ²½μ° 1κ°μ 리μμ€κ° μΆκ°λκ³ , λ³κ²½λκ±°λ μμ λλ κ²μ μλ€κ³ μΆλ ₯ν΄μ€λλ€.
terraform apply λͺ
λ Ήμ μ€νν΄λ³΄λ©΄ plan λͺ
λ Ήμ΄μ μ μ¬ν μΆλ ₯μ νκΈ°νμ§λ§ μ€ν κ³νμ 보μ¬μ€ ν μ μ© μ¬λΆλ₯Ό 묻λ μ
λ ₯ λͺ¨λκ° νμ±νλ©λλ€. yesκ° μλλ©΄ λͺ¨λ μ·¨μνλ κ²μΌλ‘ κ°μ£Όν©λλ€.
PS D:\ν
λΌνΌ\terraform_code> .\terraform.exe apply
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# local_file.abc will be created
+ resource "local_file" "abc" {
+ content = "abc!"
+ content_base64sha256 = (known after apply)
+ content_base64sha512 = (known after apply)
+ content_md5 = (known after apply)
+ content_sha1 = (known after apply)
+ content_sha256 = (known after apply)
+ content_sha512 = (known after apply)
+ directory_permission = "0777"
+ file_permission = "0777"
+ filename = "./abc.txt"
+ id = (known after apply)
}
Plan: 1 to add, 0 to change, 0 to destroy.
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 or no>
Shell
볡μ¬
μ΄λ²μλ μ€ν κ³ν νμΌμ λ³λ μμ±ν΄μ apply νλ λ°©λ²μ λν΄μ μμλ΄
λλ€.
terraform plan -out=tfplan
PS D:\ν
λΌνΌ\terraform_code> .\terraform.exe plan -out=tfplan
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following
symbols:
+ create
Terraform will perform the following actions:
# local_file.abc will be created
+ resource "local_file" "abc" {
+ content = "abc!"
+ content_base64sha256 = (known after apply)
+ content_base64sha512 = (known after apply)
+ content_md5 = (known after apply)
+ content_sha1 = (known after apply)
+ content_sha256 = (known after apply)
+ content_sha512 = (known after apply)
+ directory_permission = "0777"
+ file_permission = "0777"
+ filename = "./abc.txt"
+ id = (known after apply)
}
Plan: 1 to add, 0 to change, 0 to destroy.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Saved the plan to: tfplan
To perform exactly these actions, run the following command to apply:
terraform apply "tfplan"
Shell
볡μ¬
μμ±λλ νμΌμ λ°μ΄λ리 ννμ΄κΈ° λλ¬Έμ λ΄μ©μ νμΈν μλ μμ§λ§ applyλ₯Ό μ€ννμ λ planμ κ³Όμ κ³Ό apply κ³Όμ μ΄ λμμ 보μλλ° μ§κΈμ μ€ν κ³ν νμΌμ΄ μκΈ° λλ¬Έμ μ¦μ μ μ©νλ κ²μ νμΈν μ μμ΅λλ€.
PS D:\ν
λΌνΌ\terraform_code> .\terraform.exe apply .\tfplan
local_file.abc: Creating...
local_file.abc: Creation complete after 0s [id=5678fb68a642f3c6c8004c1bdc21e7142087287b]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
PS D:\ν
λΌνΌ\terraform_code> .\terraform.exe apply
local_file.abc: Refreshing state... [id=5678fb68a642f3c6c8004c1bdc21e7142087287b]
No changes. Your infrastructure matches the configuration.
Terraform has compared your real infrastructure against your configuration and found no differences, so no changes are needed.
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
Shell
볡μ¬
λ€μ applyλ₯Ό μλνλ©΄ μ΄λ―Έ μ μ©μ΄ λμκ³ λ³κ²½ μ¬νμ΄ μκΈ° λλ¬Έμ No changes. λ©μμ§λ₯Ό νμΈν μ μμ΅λλ€.
resource "local_file" "abc" {
content = "abc!"
filename = "${path.module}/abc.txt"
}
resource "local_file" "def" {
content = "def!"
filename = "${path.module}/def.txt"
}
Shell
볡μ¬
PS D:\ν
λΌνΌ\terraform_code> .\terraform.exe apply
local_file.abc: Refreshing state... [id=5678fb68a642f3c6c8004c1bdc21e7142087287b]
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following
symbols:
+ create
Terraform will perform the following actions:
# local_file.def will be created
+ resource "local_file" "def" {
+ content = "def!"
+ content_base64sha256 = (known after apply)
+ content_base64sha512 = (known after apply)
+ content_md5 = (known after apply)
+ content_sha1 = (known after apply)
+ content_sha256 = (known after apply)
+ content_sha512 = (known after apply)
+ directory_permission = "0777"
+ file_permission = "0777"
+ filename = "./def.txt"
+ id = (known after apply)
}
Plan: 1 to add, 0 to change, 0 to destroy.
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
local_file.def: Creating...
local_file.def: Creation complete after 0s [id=15f946cb27f0730866cefea4f0923248d9366cb0]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Shell
볡μ¬
κ²°κ³Όλ μλ‘ μΆκ°λ 리μμ€μ λν΄μλ§ μλ‘ μμ±νλ μ€ν κ³νμ 보μ¬μ£Όκ² λ©λλ€. Enter a value κ°μ yesλ₯Ό μ
λ ₯ν΄μ μ μ©νλ©΄ νμ¬ λλ ν°λ¦¬μ def.txt νμΌμ΄ μμ±λ κ²μ 보μ¬μ€λλ€.
PS D:\ν
λΌνΌ\terraform_code> ls
λλ ν°λ¦¬: D:\ν
λΌνΌ\terraform_code
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2023-07-23 μ€μ 8:47 .terraform
-a---- 2023-07-23 μ€μ 8:47 1153 .terraform.lock.hcl
-a---- 2023-07-25 μ€ν 5:34 4 abc.txt
-a---- 2023-07-25 μ€ν 5:55 4 def.txt
-a---- 2023-07-25 μ€ν 5:40 184 main.tf
-a---- 2023-06-21 μ€ν 7:29 63411880 terraform.exe
-a---- 2023-07-25 μ€ν 5:55 2658 terraform.tfstate
-a---- 2023-07-25 μ€ν 5:55 1420 terraform.tfstate.backup
-a---- 2023-07-25 μ€ν 5:25 2195 tfplan
Shell
볡μ¬
μ΄μ μ μμ±ν μ€ν κ³ν νμΌ tfplanμλ abc.txtλ§ μμ±νλ ꡬμ±μΈλ° λ€μ applyλ₯Ό μ§ννλ©΄ κ²°κ³Όκ³Ό μ΄λ»κ² λ κΉμ?
PS D:\ν
λΌνΌ\terraform_code> .\terraform.exe apply .\tfplan
β·
β Error: Saved plan is stale
β
β The given plan file can no longer be applied because the state was changed by another operation after the plan was created.
Shell
볡μ¬
μλ¬κ° λ°μνλλ° tfplanμ΄ μμ±λ μ΄νμ λ³κ²½μ΄ λ°μνκΈ° λλ¬Έμ μ΄μ μ μμ±λ μ€ν κ³νμΌλ‘ μ μ©ν μ μλ€λ λ©μμ§ μ
λλ€.
μλ‘ μΆκ°ν def μ½λλ₯Ό μμ νκ³ λ€μ μ§νν΄λ³΄κ² μ΅λλ€.
PS D:\ν
λΌνΌ\terraform_code> .\terraform.exe apply
local_file.def: Refreshing state... [id=15f946cb27f0730866cefea4f0923248d9366cb0]
local_file.abc: Refreshing state... [id=5678fb68a642f3c6c8004c1bdc21e7142087287b]
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following
symbols:
- destroy
Terraform will perform the following actions:
# local_file.def will be destroyed
# (because local_file.def is not in configuration)
- resource "local_file" "def" {
- content = "def!" -> null
- content_base64sha256 = "Rm4skjSqJGFRkUFCflW7rNUZ4sAS3vzjWfrOjTwlDBU=" -> null
- content_base64sha512 = "JwN8zsR7XvAQZ9KkxokoJPkPZt5LElyjPuH0Pmhd82GIL/Zu3rZOHRacv8myxhbbZzpUahtQ6HDB0OMSiXedyA==" -> null
- content_md5 = "3f6d9022e2f7b9cf3995155f239cba7c" -> null
- content_sha1 = "15f946cb27f0730866cefea4f0923248d9366cb0" -> null
- content_sha256 = "466e2c9234aa2461519141427e55bbacd519e2c012defce359face8d3c250c15" -> null
- content_sha512 = "27037ccec47b5ef01067d2a4c6892824f90f66de4b125ca33ee1f43e685df361882ff66edeb64e1d169cbfc9b2c616db673a546a1b50e870c1d0e31289779dc8" -> null
- directory_permission = "0777" -> null
- file_permission = "0777" -> null
- filename = "./def.txt" -> null
- id = "15f946cb27f0730866cefea4f0923248d9366cb0" -> null
}
Plan: 0 to add, 0 to change, 1 to destroy.
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
local_file.def: Destroying... [id=15f946cb27f0730866cefea4f0923248d9366cb0]
local_file.def: Destruction complete after 0s
Apply complete! Resources: 0 added, 0 changed, 1 destroyed.
Shell
볡μ¬
ν
λΌνΌμ μ μΈμ μΌλ‘ λμνκΈ° λλ¬Έμ νμ¬μ μ½λ μνμ μ μ©ν μνλ₯Ό λΉκ΅ν΄μ μΌμΉμν€λ μμ
μ μνν©λλ€. κ·Έλ κ² λλ¬Έμ μ κ±°λ def μ½λλ₯Ό μμ νλ λμμ μννλ κ²μ νμΈν μ μμ΅λλ€.