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
Conexão com Cluster Kafka Hospedado em Kubernetes: Guia Completo
Nesse artigo vamos discutir questões relacionadas a como disponibilizar um cluster kafka hospedado em um k8s para aplicações que estejam hospedadas fora do cluster kubernetes. Não vamos tratar da instalação
Seja o melhor aluno e garanta sua contratação na 4Linux
A 4Linux escolherá 20 pessoas para realizarem gratuitamente seus cursos Devops e garante contratar o melhor aluno, venha para o caça talentos Devops. Quem pode participar? Poderá participar todas as
Como Implementar a Análise de Qualidade de Código com DevOps e SonarQube
Dentro da ótica do DevOps e de como implementar agilidade com qualidade, temos os testes automatizados como um dos principais pilares para manter a essência do CI (Continuous Integration), porém