Usando espaços de trabalho para ambientes
Explore os espaços de trabalho do Terraform para gerenciar estados separados para diferentes ambientes (por exemplo, desenvolvimento, homologação e produção) na mesma configuração.
Usando espaços de trabalho para ambientes é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.
O que são os espaços de trabalho do Terraform?
Os espaços de trabalho do Terraform ajudam você a gerenciar vários estados distintos para a mesma configuração do Terraform. Pense neles como ambientes separados, como 'desenvolvimento', 'preparação' ou 'produção'.
Isso significa que você pode usar o mesmo conjunto de arquivos .tf para implantar a infraestrutura em locais diferentes sem alterar o código, promovendo reutilização e consistência.
O espaço de trabalho 'default'
Quando você inicializa o Terraform pela primeira vez em um diretório (usando terraform init), passa automaticamente a usar o espaço de trabalho default.
Todas as suas operações iniciais de terraform apply armazenarão o estado nesse espaço de trabalho default, a menos que você crie e selecione outro. Ele está sempre presente!
Criando novos espaços de trabalho
Para criar um novo ambiente, use o comando terraform workspace new. Esse comando também muda automaticamente o contexto atual para o espaço de trabalho recém-criado.
Vamos criar um espaço de trabalho dev:
terraform workspace new devEm seguida, o Terraform criará um estado separado para esse ambiente dev.
Listando os espaços de trabalho disponíveis
Você pode ver todos os espaços de trabalho disponíveis no diretório atual de configuração usando o comando terraform workspace list.
O espaço de trabalho ativo no momento será marcado com um asterisco (*), ajudando você a acompanhar seus diferentes ambientes.
terraform workspace listAlternando entre espaços de trabalho
Para alternar entre espaços de trabalho existentes, use o comando terraform workspace select, seguido do nome do espaço de trabalho. Esse comando muda o ambiente ativo.
Vamos voltar ao espaço de trabalho default:
terraform workspace select defaultQuaisquer operações posteriores do Terraform terão como destino o estado do ambiente default.
Usando 'terraform.workspace'
Você pode tornar suas configurações dinâmicas fazendo referência ao nome do espaço de trabalho atual por meio da variável integrada terraform.workspace. Isso é perfeito para nomear recursos ou definir etiquetas específicas do ambiente.
Experimente executar este exemplo. Primeiro, execute terraform init, depois terraform workspace new dev e, por fim, terraform apply. Observe o nome e as etiquetas do bucket.
provider "aws" {
region = "us-east-1" # Or your preferred region
}
resource "aws_s3_bucket" "example" {
bucket = "my-unique-bucket-${terraform.workspace}-12345"
acl = "private"
tags = {
Environment = terraform.workspace
ManagedBy = "CoddyKit"
}
}
output "bucket_name" {
description = "Name of the S3 bucket created."
value = aws_s3_bucket.example.bucket
}Arquivos de estado isolados
O aspecto mais importante dos espaços de trabalho é que cada um mantém seu próprio arquivo de estado completamente separado.
Isso significa que os recursos implantados no espaço de trabalho dev não interferirão nos recursos do espaço de trabalho prod, mesmo que sejam definidos pelos mesmos arquivos de configuração. O Terraform gerencia esses arquivos de estado em um diretório oculto (.terraform/environments) dentro do seu diretório de trabalho.
Excluindo espaços de trabalho
Quando um ambiente não for mais necessário, você poderá excluir o espaço de trabalho dele usando terraform workspace delete <name>.
- Importante: você não pode excluir o espaço de trabalho atualmente ativo.
- Crucial: certifique-se sempre de ter destruído todos os recursos associados a esse espaço de trabalho usando
terraform destroyantes de excluí-lo. Caso contrário, poderão restar recursos órfãos!
terraform workspace select default
terraform workspace delete devEspaços de trabalho versus diretórios separados
Embora os espaços de trabalho sejam excelentes para pequenas variações da mesma configuração, nem sempre são a melhor opção. Considere estes pontos:
- Espaços de trabalho: ideais para pequenas diferenças entre ambientes (por exemplo, quantidade de recursos e etiquetas), mantendo o mesmo projeto básico de infraestrutura.
- Diretórios separados: melhores para projetos de infraestrutura significativamente diferentes ou quando equipes diferentes gerenciam ambientes completamente separados.
Escolha a abordagem que melhor se adapta à complexidade do seu projeto e à estrutura da sua equipe.
Verificação dos espaços de trabalho
Você aprendeu sobre os espaços de trabalho do Terraform. Vamos testar seu entendimento.
Recapitulação: espaços de trabalho para ambientes
Ótimo trabalho! Você explorou os espaços de trabalho do Terraform, um recurso poderoso para gerenciar vários ambientes a partir de uma única configuração. Lembre-se destes pontos principais:
- Os espaços de trabalho fornecem arquivos de estado isolados para ambientes diferentes (por exemplo, dev e prod).
- Use
terraform workspace new,listeselectpara gerenciá-los. - A variável
terraform.workspacepermite configurações dinâmicas e específicas do ambiente. - Sempre destrua os recursos antes de excluir um espaço de trabalho para evitar infraestrutura órfã.
Isso permite uma implantação de infraestrutura flexível e organizada!
Perguntas Frequentes
A aula “Usando espaços de trabalho para ambientes” é grátis?
Sim — o texto completo de “Usando espaços de trabalho para ambientes” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.
O que vou aprender em “Usando espaços de trabalho para ambientes”?
Explore os espaços de trabalho do Terraform para gerenciar estados separados para diferentes ambientes (por exemplo, desenvolvimento, homologação e produção) na mesma configuração. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar DevOps Bootcamp?
Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Usando espaços de trabalho para ambientes”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de DevOps Bootcamp?
Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Introdução aos Módulos do Terraform
- Criação de Módulos Reutilizáveis
- Usando espaços de trabalho para ambientes
- Publicando módulos em um registro