https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/terraformUsingObjectStore.htm#http
- Bucket 생성
tf-example-tfstate
- PAR(Pre-Authenticated Request) 생성 => 근데 PAR URL로 접근해야 하면, 이건 인터넷에서 인증 없이 접근됨. Object Storage가 Private Bucket이라 하더라도 해당 PAR URL로는 인증없이 접근됨
par-bucket-tf-example-tfstate Permit object reads and writes
- Terraform Backend로 HTTP 구성
terraform { backend “http” { address = “https://objectstorage.ap-seoul-1.oraclecloud.com/p/k5TQIRpJrotyyCVwzQLDw3CqWrI1feMzvPtz7YEwm9I5IdvZwBxDUhGGmAxboJvf/n/cn8wdnkejjgq/b/tf-example-tfstate/o/terraform.tfstate" update_method = “PUT” } }
-
terraform init
-
terraform apply
-
Object Storage 가 보면 tfstate 파일 생성되어 있음.
-
lock 설정
terraform { backend “http” { address = “https://objectstorage.ap-seoul-1.oraclecloud.com/p/k5TQIRpJrotyyCVwzQLDw3CqWrI1feMzvPtz7YEwm9I5IdvZwBxDUhGGmAxboJvf/n/cn8wdnkejjgq/b/tf-example-tfstate/o/terraform.tfstate" update_method = “PUT” lock_address = “https://objectstorage.ap-seoul-1.oraclecloud.com/p/k5TQIRpJrotyyCVwzQLDw3CqWrI1feMzvPtz7YEwm9I5IdvZwBxDUhGGmAxboJvf/n/cn8wdnkejjgq/b/tf-example-tfstate/o/lock" unlock_address = “https://objectstorage.ap-seoul-1.oraclecloud.com/p/k5TQIRpJrotyyCVwzQLDw3CqWrI1feMzvPtz7YEwm9I5IdvZwBxDUhGGmAxboJvf/n/cn8wdnkejjgq/b/tf-example-tfstate/o/lock" } }
- terraform init
- terraform apply 응답 오류 발생 Object Storage의 HTTP API가 terraform state locking 지원 안하는 것으로 판단됨.
$ terraform apply
╷
│ Error: Error acquiring the state lock
│
│ Error message: Unexpected HTTP response code 404
│
│ Terraform acquires a state lock to protect the state from being written
│ by multiple users at the same time. Please resolve the issue above and try
│ again. For most commands, you can disable locking with the "-lock=false"
│ flag, but this is not recommended.
이 글은 개인으로서, 개인의 시간을 할애하여 작성된 글입니다. 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다.