Como modificar recursos existentes com Terraform na Google Cloud
Então, continuando com a nossa infraestrutura anterior…
Vamos realizar pequenos ajustes na máquina virtual que foi provisionada na GCP.
resource "google_compute_instance" "default" { name = "linux-vm-1" machine_type = "f1-micro" zone = "us-central1-a" boot_disk { initialize_params { image = "debian-cloud/debian-9" } } labels = { environment = "development" distro = "debian-9" } network_interface { network = "default" } }
$ terraform plan
Refreshing Terraform state in-memory prior to plan... The refreshed state will be used to calculate this plan, but will not be persisted to local or remote state storage. google_compute_instance.default: Refreshing state... [id=projects/projeto-1/zones/us-central1-a/instances/linux-vm-1] ------------------------------------------------------------------------ An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols: ~ update in-place Terraform will perform the following actions: # google_compute_instance.default will be updated in-place ~ resource "google_compute_instance" "default" { can_ip_forward = false cpu_platform = "Intel Haswell" deletion_protection = false enable_display = false guest_accelerator = [] id = "projects/projeto-1/zones/us-central1-a/instances/linux-vm-1" instance_id = "3724819701104257360" label_fingerprint = "42WmSpB8rSM=" ~ labels = { + "company" = "4Linux" + "environment" = "development" + "os-system" = "debian-9" } machine_type = "f1-micro" metadata = {} metadata_fingerprint = "b20jSyLni-U=" ...... ...... ...... ...... Plan: 0 to add, 1 to change, 0 to destroy. ...... ...... ......
O sumário final nos apresenta o que será criado, neste caso 0 recursos serão adicionados, 1 recurso será alterado e 0 recursos serão destruídos. Perceba que logo no início do output também é mostrado na saída do terminal que já existe esta máquina e em seguida o seguinte trecho de aviso:
An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols: ~ update in-place
Ou seja, o Terraform está informando que todas modificações são mostradas com um ~ (sinal de til) no inicio da linha.
Em nosso caso o recurso da instância está sendo alterado mais precisamente onde adicionamos o novo código (labels).
Para prosseguir com a modificação, execute de fato o Terraform para aplicar o código.
$ terraform apply -auto-approve
google_compute_instance.default: Refreshing state... [id=projects/projeto-1/zones/us-central1-a/instances/linux-vm-1] google_compute_instance.default: Modifying... [id=projects/projeto-1/zones/us-central1-a/instances/linux-vm-1] google_compute_instance.default: Modifications complete after 8s [id=projects/projeto-1/zones/us-central1-a/instances/linux-vm-1] Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
O procedimento para qualquer recurso é basicamente o mesmo para alterar de forma incremental.
- Você cria o recurso inicial que precisa;
- Faz o plano de execução;
- Faz aplicação deste recurso;
- Quando for necessário alterar qualquer atributo deste código, faça o plano de execução;
- Verifique se a saída está de acordo;
- Faça aplicação deste novo código.
About author
Você pode gostar também
Descubra como a estratégia DevOps pode transformar sua empresa
DevOps é um termo que tem ganhado destaque no mundo corporativo. Considerado uma poderosa estratégia, surgiu da necessidade de agilizar entregas na área de tecnologia da informação, sempre buscando ações
Piwik: A alternativa open source ao Google Analytics para análise de métricas
Não, o Piwik não é uma fruta derivada do Kiwi, é uma solução de Web Analytics open source, madura e eficiente para análise de métricas sobre audiência em sites e
Entenda o SAST e como implementar com o Horusec em seu projeto
Saudações pessoal! Nós já falamos por aqui sobre DevSecOps e como implementar em nosso ciclo de desenvolvimento. Neste post iremos entrar em uma das etapas mais importantes deste ciclo de