Como se livrar da mancha de Terraform

Como se livrar da mancha de Terraform
Terraform Taint refere-se a um marcador que define um recurso gerenciado pela Terraform como contaminado. Um recurso contaminado significa que o recurso gerenciado pela Terraform está em um estado ruim ou indesejável. Se um recurso for marcado como contaminado, o Terraform o recriará ou destruirá durante a próxima aplicação.

Este curto guia ensinará como usar o recurso Terraform Untrant para remover marcadores em mancal em um recurso.

Por que usar a Terraform Taint?

Embora o uso da mancha de Terraform possa variar dependendo do que precisa ser feito nos recursos especificados, os usos comuns incluem:

  1. Recriando recursos, como um mecanismo de computação ou instância do EC2 em caso de modificações indesejadas.
  2. Reconstruindo os recursos sem destruí -los, especialmente no desenvolvimento.

Como manchar um recurso

O comando Terraform Taint permite que você diga a Terraform que um recurso/objeto específico está danificado ou em um estado contaminado. Como mencionado, isso forçará a Terraform a reconstruir o recurso marcado como contaminado durante o próximo plano.

Uso

O comando Terraform Taint toma a sintaxe como mostrado:

Endereço Terraform Taint [Opções]

O endereço refere -se ao endereço do recurso/objeto para atribuir o marcador de mancha. Você pode especificar um endereço do recurso usando o formato como mostrado:

aws_instance.foo
aws_instance.bar [1]
módulo.foo.módulo.bar.aws_instance.qux

Você também pode passar as seguintes opções para o comando taint para modificar comportamentos:

  1. -permitir-se-o parâmetro de falta de permissão forçará o comando a ter sucesso, mesmo que o recurso especificado esteja faltando.
  2. -Lock = [Bool] - O parâmetro de bloqueio aceita um verdadeiro ou falso booleano. Se definido como false, ele desativará temporariamente o bloqueio de leitura/gravação do Terraform no estado durante a execução.
  3. -Timeout de bloqueio - força a Terraform a tentar novamente e obter um estado de bloqueio por um período especificado em segundos. Esta função é nula se o -lock for definido como falso.

O exemplo a seguir mostra como criar uma instância do EC2 e usar o comando taint para marcá -lo como contaminado:

Terraform
requerir_providers
aws =
fonte = "Hashicorp/AWS"
versão = "-> 3.27 "


requerir_version = "> = 0.12 "

Provedor "AWS"
perfil = "padrão"
região = "US-leste-1"

Recurso "AWS_INSTANCE" "DATABASE_SERVER"
ami = "ami-b7873e35"
instance_type = "T2.micro "

Marque o recurso como contaminado:

Terraform Taint aws_instace.base de dados.servidor

Depois de marcar o recurso como contaminado, execute o comando Terraform Plan para ver as mudanças que serão aplicadas.

Como usar o Terraform não

Se você definir um recurso como contaminado, poderá reverter e remover o marcador em mancal usando o comando de Terraform Untaint.

O comando leva o ID do recurso como o argumento:

Endereço de Terraform Unbaint [Opções]

Aceita argumentos semelhantes ao comando Terraform Taint.

Por exemplo, para remover um marcador de mancha do recurso acima, use o seguinte comando:

Terraform não aws_instace.base de dados.servidor
Plano de Terraforma

O comando anterior removerá o marcador de mancha no recurso e mostrará as alterações a serem aplicadas na próxima aplicação de terraformação

Conclusão

Neste guia, você aprendeu o básico da Terraform Taint e o processo para marcar o recurso como danificado. Além disso, várias opções foram fornecidas ao comando Terraform Taint para modificar comportamentos. Esperamos que você tenha achado este artigo útil. Por favor, verifique o Linux Dint para obter mais dicas e informações.