Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)48 mil · #3770

opentofu-migration

Ajuda seu agente a mudar ferramentas de infraestrutura. Ele transfere configurações antigas para um novo sistema sem problemas.

O que ela faz

Esta ferramenta ajuda você a mudar seus códigos de infraestrutura de nuvem do Terraform para o OpenTofu. O OpenTofu é uma versão de código aberto e gratuita do Terraform.

Quando usar

  • ✓Quando você precisa migrar do Terraform para o OpenTofu por questões de licenciamento.
  • ✓Ao iniciar um novo projeto e comparar OpenTofu com Terraform.
  • ✓Para atualizar seus sistemas de integração e entrega contínua (CI/CD) para usar OpenTofu.

Exemplo do que pedir para a IA

“Como posso migrar meu código Terraform atual para o OpenTofu?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/opentofu-migration/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/opentofu-migration/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta substitui comandos do Terraform por comandos equivalentes do OpenTofu e ajuda a atualizar arquivos de configuração para garantir a compatibilidade. Ela também orienta na atualização de pipelines de CI/CD.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill opentofu-migration

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/opentofu-migration/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Migração para OpenTofu

Migre sua infraestrutura como código do HashiCorp Terraform para o fork de código aberto OpenTofu.

Quando Usar Esta Habilidade

Use esta habilidade quando:

  • Migrando do Terraform para o OpenTofu por motivos de licenciamento
  • Configurando um novo projeto de IaC e avaliando OpenTofu vs Terraform
  • Atualizando pipelines de CI/CD para usar OpenTofu
  • Configurando o registro de provedores do OpenTofu

Pré-requisitos

  • Código-fonte Terraform existente (0.13+)
  • CLI do OpenTofu instalada
  • Acesso ao backend de estado (S3, GCS, Azure Blob, etc.)

Instalar OpenTofu

# macOS
brew install opentofu

# Linux (Debian/Ubuntu)
curl --proto '=https' --tlsv1.2 -fsSL https://get.opentofu.org/install-opentofu.sh \
  -o install-opentofu.sh
chmod +x install-opentofu.sh
./install-opentofu.sh --install-method deb
rm install-opentofu.sh

# Linux (RPM)
./install-opentofu.sh --install-method rpm

# Docker
docker run --rm -v $(pwd):/workspace -w /workspace \
  ghcr.io/opentofu/opentofu:latest init

# Verify installation
tofu --version

Checklist de Migração

1. Verificar Compatibilidade

# OpenTofu reads Terraform state files directly — no migration needed
# Check your Terraform version (must be <= 1.6.x for full compat)
terraform version

# Run plan with OpenTofu against existing state
tofu init
tofu plan

2. Substituir Comandos da CLI

Terraform OpenTofu
terraform init tofu init
terraform plan tofu plan
terraform apply tofu apply
terraform destroy tofu destroy
terraform fmt tofu fmt
terraform validate tofu validate
terraform state tofu state
terraform import tofu import

3. Atualizar Arquivo de Bloqueio de Provedor

# Remove Terraform lock and regenerate for OpenTofu
rm .terraform.lock.hcl
tofu init -upgrade

# Verify providers resolve correctly
tofu providers

4. Atualizar Backend de Estado

Os arquivos de estado são compatíveis — nenhuma migração é necessária. Apenas verifique:

# backend.tf — works identically with OpenTofu
terraform {
  backend "s3" {
    bucket         = "mycompany-tfstate"
    key            = "prod/infrastructure.tfstate"
    region         = "us-east-1"
    dynamodb_table = "terraform-locks"
    encrypt        = true
  }
}
# Verify state access
tofu init
tofu state list

5. Registro de Provedores

O OpenTofu usa seu próprio registro, mas espelha a maioria dos provedores do Terraform:

# versions.tf
terraform {
  required_version = ">= 1.6.0"

  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
    kubernetes = {
      source  = "hashicorp/kubernetes"
      version = "~> 2.25"
    }
    # OpenTofu-specific providers
    random = {
      source  = "hashicorp/random"
      version = "~> 3.6"
    }
  }
}

Recursos Específicos do OpenTofu

Criptografia de Estado (Não no Terraform)

# OpenTofu supports native state encryption
terraform {
  encryption {
    key_provider "pbkdf2" "my_key" {
      passphrase = var.state_passphrase
    }
    method "aes_gcm" "encrypt" {
      keys = key_provider.pbkdf2.my_key
    }
    state {
      method   = method.aes_gcm.encrypt
      enforced = true
    }
    plan {
      method   = method.aes_gcm.encrypt
      enforced = true
    }
  }
}

Avaliação Antecipada de Variáveis/Locais

# OpenTofu allows variables in backend config and module sources
terraform {
  backend "s3" {
    bucket = var.state_bucket  # Works in OpenTofu, not Terraform
    key    = "${var.project}/terraform.tfstate"
    region = var.aws_region
  }
}

Atualizações de Pipeline de CI/CD

GitHub Actions

# .github/workflows/tofu.yml
name: OpenTofu
on:
  pull_request:
    paths: ["infra/**"]
  push:
    branches: [main]
    paths: ["infra/**"]

permissions:
  id-token: write
  contents: read
  pull-requests: write

jobs:
  plan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Configurar OpenTofu
        uses: opentofu/setup-opentofu@v1
        with:
          tofu_version: "1.8.0"

      - name: Configurar credenciais AWS
        uses: aws-actions/configure-aws-credentials@v4
        with:
          role-to-assume: arn:aws:iam::123456789:role/tofu-deploy
          aws-region: us-east-1

      - name: Init
        run: tofu init
        working-directory: infra/

      - name: Plan
        id: plan
        run: tofu plan -no-color -out=tfplan
        working-directory: infra/

      - name: Comentar PR com o plano

…
Perguntas frequentes

Meus arquivos de estado do Terraform funcionarão com o OpenTofu?

Sim, os arquivos de estado são compatíveis. Você não precisa migrá-los, apenas garantir que o OpenTofu possa acessá-los.

Preciso reinstalar meus provedores?

Você precisará remover o arquivo de bloqueio do Terraform (`.terraform.lock.hcl`) e executar `tofu init -upgrade` para que o OpenTofu baixe e bloqueie as versões corretas dos provedores.

O OpenTofu tem recursos que o Terraform não tem?

Sim, o OpenTofu oferece recursos como criptografia nativa de estado e a capacidade de usar variáveis em configurações de backend e fontes de módulos, que não estão disponíveis no Terraform.

Detalhes

Descrição original do autor

Migrate from Terraform to OpenTofu with state compatibility, provider registry setup, and CI/CD pipeline updates. Use when adopting the open-source Terraform fork or evaluating license-free IaC.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3770
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas