Dev./Terraform

Terraform: Status 가 꼬이는 현상

Ivan'show 2023. 9. 7.
728x90
반응형

가끔 모듈 정보를 바꿔야 할 때가 있다.

module "servers" {

>>>>>

module "be" {

terraform 으로 생성한 인스턴스가 운영중인데 무심코 module 정보를 바꾸고 init 을 했다면 terraform status 가 꼬여 문제가 발생하게 된다.

apply 를 하든, destroy 를 하든, plan 을 하든 이미 status 가 쌓여 있는 시점에서는 새로운 모듈을 삽입해서 사용해서는 안되는 것 같다.

(venv) kimminhyeok@Ivans-Mac staging % terraform state list
data.ncloud_server_products.sm
ncloud_public_ip.be
ncloud_public_ip.db
module.be.data.ncloud_subnet.main
module.be.data.ncloud_vpc.main
module.be.ncloud_access_control_group.main
module.be.ncloud_access_control_group_rule.main
module.be.ncloud_init_script.main
module.be.ncloud_login_key.loginkey
module.be.ncloud_network_interface.main
module.be.ncloud_server.main
module.db.data.ncloud_subnet.main
module.db.data.ncloud_vpc.main
module.db.ncloud_access_control_group.main
module.db.ncloud_access_control_group_rule.main
module.db.ncloud_init_script.main
module.db.ncloud_login_key.loginkey
module.db.ncloud_network_interface.main
module.db.ncloud_server.main
module.loadbalancer.ncloud_lb.be
module.loadbalancer.ncloud_lb_listener.be
module.loadbalancer.ncloud_lb_target_group.be
module.loadbalancer.ncloud_lb_target_group_attachment.be
module.network.ncloud_network_acl.nacl
module.network.ncloud_subnet.be-loadbalancer
module.network.ncloud_subnet.be-server
module.network.ncloud_vpc.main

해결방법

근본적으로 state 를 수정하거나 하는 방법은 아직 잘 모르겠다.

그래서 우회해서 해결하는 방법으로 선택한 것은, 일단 지금 까지 개발한 내용을 commit 해서 git 에 기록을 남기고 이전 commit 으로 돌아가서 destroy 를 진행한다. 이후 다시 checkout 으로 돌아온다. 돌아 온 후 coomit 삭제

git commit -m "TMP"
git checkout ${commit ID}
terraform destroy
git checkout main

soft reset

git reset HEAD^

reset 으로 커밋을 없애주면서 마무리 → TMP 삭제

728x90
반응형

'Dev. > Terraform' 카테고리의 다른 글

Terraform: AWS ssh connection  (0) 2023.09.09
Terraform: AWS 서버구축  (0) 2023.09.08
Terraform: Separating  (0) 2023.09.06
Terraform: Modules  (0) 2023.09.05
Terraform: LoadBalancer  (0) 2023.09.05

댓글