= Terraform state
== comandos
* list: lista los recursos del state
* show: muestra los detalles de uno de los recursos del state
* mv: mueve o renombra un recurso
* rm: elimina un recurso
* pull: descarga el state de un remoto
* push: sube el state desde local al remoto
== mover recursos a diferentes 'states'
/via: [[https://medium.com/@lynnlin827/moving-terraform-resources-states-from-one-remote-state-to-another-c76f8b76a996]]
===creando un nuevo estado
* creamos directorio destino y metemos todo el código necesario:
* provider
* state settings (del nuevo)
* resource(s)
* tener en cuenta si necesitamos **outputs** del stado original para usar en el de destino
* adaptar el código para usar esos outputs con **data**
* exportamos/movemos el resource:terraform state mv -state-out=../destino/terraform.tfstate
* identificamos el recurso con la [[https://medium.com/@lynnlin827/moving-terraform-resources-states-from-one-remote-state-to-another-c76f8b76a996|sintaxis de direccionamiento estándar]] -> ''terraform state list''
* en destino, inicializamos terraform:terraform init
* nos preguntará si queremos subir el state local al remoto, le decimos que **yes**
===añadiendo a un estado existente
* añadimos el código necesario en destino
* desde el directorio destino, descargamos nuestro estado remoto en un fichero local:terraform state pull > terraform.tfstate
* desde el directorio origen, movemos igual que antes el recurso:terraform state mv -state-out=../destino/terraform.tfstate
* desde el directorio destino, subimos el nuevo estado:terraform state push terraform.tfstate