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
Docker BuildX: Otimizando sua Pipeline de Infraestrutura como Código
Transforme seu processo de criação de imagens Docker e eleve sua infraestrutura ao próximo nível com esta extensão poderosa do Docker CLI. Por que ainda usar apenas Docker Build em
DevOpsDays Maringá: Evento internacional de tecnologia chega ao Paraná
Sétima edição no Brasil e a primeira a ser realizada no estado do Paraná, o DevOpsDays Maringá reunirá especialistas para expor e debater temas do mundo DevOps. O DevOpsDays terá
Conhecendo o kernel Linux pelo /proc (parte 4) – comportamentos da memória virtual
No post anterior vimos como o kernel mantem os mapeamentos de memória virtual para memória física e como essa tradução é realizada em tempo de execução pela MMU. Neste post







