Terraform um futuro moribundo? Vida longa ao OpenTofu!

Marcelo Gonçalves
5 min readOct 27, 2023

--

Vocês devem estar se perguntando? O que vai acontecer com o Terraform? A Hashicorp deu um tiro no pé? O que é OpenTofu? Calma meus amigos eu irei explicar o que está acontecendo.

O Terraform sempre foi uma solução de código aberto e com muito apoio de uma comunidade gigantesca, hoje em dia é difícil dizer que não existe uma corporação que não utiliza IaC sem usar o Terraform como sua ferramenta de provisionamento.

Porque Terraform é tão fomoso? A solucão Terraform da Hashicorp não é focada apenas em um único provedor, pelo contrário, existem mais de 3000 serviços terceiros, módulos e ferramentas adjacentes que constrói com louvor toda essa fama e tornam o o que ele é.

Mas algo muito triste aconteceu exatamente no dia 10 de agosto de 2023, foi como receber uma facada nas costas, com pouco ou nenhum aviso prévio a Hashicorp mudou o licenciamento da ferramenta sem que a comunidade pudesse opinar de MPL para Business Source License (v1.1), o famoso BUSL.

Qual o impacto dessa mudança? Primeiro irei explicar os tipos de licenciamento:

Licença Pública Mozilla (MPL) 2.0

A MPL 2.0 é considerada uma licença de código aberto robusta que permite a distribuição gratuita e aberta do software. Ela é compatível com outras licenças importantes de código aberto, como a Licença Pública Geral GNU (GPL) e a Licença Apache.

Permite o uso, modificação e redistribuição irrestritos do software, contanto que quaisquer modificações feitas no código licenciado pela MPL também sejam disponibilizadas sob a MPL. Também permite a integração com software proprietário.

A MPL 2.0 é uma licença de código aberto reconhecida aprovada pela Iniciativa de Código Aberto (OSI). Ela é projetada para garantir que o código aberto permaneça aberto e disponível para a comunidade.

A MPL 2.0 não impõe limitações baseadas em tempo. Permanece código aberto indefinidamente.

Permite tanto o uso não comercial quanto o comercial do software sem restrições.

A MPL 2.0 promove uma comunidade mais aberta e colaborativa em torno do software, pois permite uma ampla variedade de usos e contribuições.

Business Source License

A Licença Business Source não é uma licença de código aberto no sentido tradicional. Às vezes é chamada de “licença de código-fonte disponível”, pois permite o compartilhamento do código-fonte, mas inclui restrições que podem torná-la menos permissiva do que as licenças de código aberto tradicionais.

A BSL não é considerada de código aberto por muitos na comunidade de código aberto devido às suas restrições, especialmente em relação ao uso e redistribuição.

Normalmente impõe restrições ao uso e redistribuição. Muitas vezes inclui uma limitação baseada em tempo, como exigir que o código-fonte esteja disponível gratuitamente após um certo período ou quando condições específicas são atendidas.

Geralmente inclui uma cláusula que especifica quando o software pode transicionar para uma licença mais permissiva, muitas vezes após um período definido ou quando determinados limites de receita ou usuários são alcançados.

A BSL pode impor restrições ao uso comercial até que certas condições sejam atendidas ou um período especificado tenha passado.

Pode limitar o envolvimento da comunidade devido às suas restrições de uso, potencialmente desencorajando contribuições e colaboração.

Podemos dizer que milhares de empresas da noite para o dia podem ter problemas jurídicos em suas infraestruturas, pois tudo ficou muito vago sobre o licenciamento BUSL. Cada empresa e cada desenvolvedor que utiliza o Terraform não tem certeza o que pode acontecer ao utilizar o Terraform, imagina se a HashiCorp muda de novo o licenciamento da noite para o dia e você ganha um processo por utilizar o Terraform.

Com o novo licenciamento cheio de restrição o ecossistema desenvolvido em torno do Terraform como código aberto vai desaparecer, desenvolvedores experientes que ajudavam na evolução da ferramenta não contribuirão mais:

“As bases de código Terraform existentes se transformarão em passivos desatualizados, as ferramentas independentes praticamente desaparecerão e a comunidade se fragmentará e desaparecerá”

Manifesto OpenTofu

Várias tentativas de contato com a HashCorp solicitando o retorno do Terraform para o licenciamento de código aberto foram feitas, todavia sem nenhuma resposta, por isso, no dia 25 de agosto de 2023 foi criado um fork publico com o código livre do Terraform sob os cuidados da Linux Foundation com o nome OpenTofu.

O OpenTofu veio para devolver para o Terraform o seu status de ferramenta de código aberto e retormar uma das comunidades mais participativa para poder produzir e crescer sem restrições.

Como instalar o OpenTofu?

Infelizmente o código é para Linux e MAC, mas irei demonstrar logo abaixo como solucionar isso:

1 — Iremos instalar o WSL:

2 — Execute os seguintes comandos:

2.1

wsl --install

2.2

wsl -l -o

2.3

wsl --install -d Ubuntu-22.04

3 — Após instalar o WSL execute os comandos:

3.2

bash
sudo su

4- Precisamos agora instalar o AZ CLI para logar no Azure:

4.1

curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

4.2

sudo apt-get update
sudo apt-get install ca-certificates curl apt-transport-https lsb-release gnupg

4.3

sudo mkdir -p /etc/apt/keyrings
curl -sLS https://packages.microsoft.com/keys/microsoft.asc |
gpg --dearmor |
sudo tee /etc/apt/keyrings/microsoft.gpg > /dev/null
sudo chmod go+r /etc/apt/keyrings/microsoft.gpg

4.4

AZ_DIST=$(lsb_release -cs)
echo "deb [arch=`dpkg --print-architecture` signed-by=/etc/apt/keyrings/microsoft.gpg] https://packages.microsoft.com/repos/azure-cli/ $AZ_DIST main" |
sudo tee /etc/apt/sources.list.d/azure-cli.list

4.5

sudo apt-get update
sudo apt-get install azure-cli

5 — Agora iremos instalar o OpenTofu:

snap install opentofu

6 -Execute o OpenTofu:

tofu init
tofu validate
tofu workspace select -or-create production
tofu plan --var-file=variables.tfvars
tofu apply --varofile=variables.tfvars

Bibliografia:

https://medium.com/@zoiwrites/terraform-is-dead-long-live-opentofu-bf4c73364050

https://medium.com/@bisinet/from-terraform-to-opentofu-ebb23863b6a7

https://opentofu.org/

#mvp #mvpbr #mvpbuzz

--

--

Marcelo Gonçalves
Marcelo Gonçalves

Written by Marcelo Gonçalves

Microsoft Solutions Architect | Teacher | Linux | MCP | MCT | LGPDF™ | OCI | AWS

No responses yet