Publicando módulos em um registro
Compartilhe módulos reutilizáveis do Terraform entre equipes versionando-os no Git e publicando-os em um registro de módulos público ou privado.
Publicando módulos em um registro é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 4 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.
Além dos módulos locais
Os módulos locais ficam em uma pasta ao lado da sua configuração. Para compartilhar módulos entre projetos e equipes, publique-os em um registro de módulos, para que os consumidores possam obtê-los pelo nome e pela versão, assim como em um gerenciador de pacotes.
Origens dos módulos
O argumento source determina de onde o Terraform busca um módulo. As opções incluem:
- Um caminho local
- Um repositório Git
- O registro público do Terraform
- Um registro privado no Terraform Cloud
Consumindo um módulo do registro
Os módulos do registro usam o formato namespace/name/provider. Sempre fixe uma versão para obter compilações reproduzíveis.
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "5.1.2"
name = "my-vpc"
cidr = "10.0.0.0/16"
}Convenção de nomenclatura de repositórios
O registro público exige um nome específico para o repositório: terraform-PROVIDER-NAME. Por exemplo, um módulo de rede para AWS ficaria em um repositório chamado terraform-aws-network.
Estrutura padrão de um módulo
Um módulo publicável segue uma organização previsível para que o registro possa documentá-lo automaticamente.
terraform-aws-network/
main.tf
variables.tf
outputs.tf
README.md
examples/
basic/main.tfDocumentando entradas
Cada variável deve ter uma description e, idealmente, um type. O registro transforma essas informações automaticamente em uma tabela documentada de entradas.
variable "cidr" {
type = string
description = "The CIDR block for the VPC"
default = "10.0.0.0/16"
}Versionamento com tags do Git
O registro obtém as versões dos módulos a partir de tags semânticas de versão do Git. Criar uma tag para uma versão é o que disponibiliza uma nova versão aos consumidores.
git tag v1.0.0
git push origin v1.0.0Fixando diretamente uma origem Git
Você pode ignorar o registro e referenciar um repositório Git por URL, fixando uma tag com o parâmetro de consulta ref.
module "network" {
source = "git::https://github.com/acme/terraform-aws-network.git?ref=v1.0.0"
cidr = "10.0.0.0/16"
}Registros privados
O Terraform Cloud e o Enterprise oferecem um registro privado, para que os módulos internos permaneçam confidenciais e ainda possam ser descobertos pela sua organização, seguindo o mesmo fluxo de nome e versão.
Restrições de versionamento semântico
Use restrições de versão para permitir atualizações seguras. O operador ~> permite atualizações de correção e menores, mas não alterações principais incompatíveis.
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "~> 5.1"
}Atualizando versões de módulos
Depois de alterar uma restrição de versão, execute terraform init -upgrade para buscar a versão mais recente permitida e atualizar o arquivo de bloqueio.
terraform init -upgradeVerificação rápida
Verifique sua compreensão sobre o versionamento de módulos.
Recapitulação: compartilhando módulos
Você aprendeu a publicar e consumir módulos:
- A regra de nomenclatura de repositórios
terraform-PROVIDER-NAME. - Estrutura padrão com entradas e saídas documentadas.
- As tags do Git determinam as versões do registro.
- Restrições de versão como
~>mantêm as atualizações seguras.
Agora seus módulos reutilizáveis podem dar suporte a todos os projetos da organização.
Perguntas Frequentes
A aula “Publicando módulos em um registro” é grátis?
Sim — o texto completo de “Publicando módulos em um registro” é 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 “Publicando módulos em um registro”?
Compartilhe módulos reutilizáveis do Terraform entre equipes versionando-os no Git e publicando-os em um registro de módulos público ou privado. 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 4 de 4.
Quanto tempo leva a aula “Publicando módulos em um registro”?
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