Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

13
respostas

Erro ao executar o terraform init

Boa noite, estou com problemas para executar o terraform init (o SO no qual estou usando é windows). segue erro abaixo.

PS C:\LABS\terraform> terraform init

Initializing the backend...

Initializing provider plugins...
- Using previously-installed hashicorp/aws v3.3.0
- Finding latest version of hashicorp/aws-instance...

Error: Failed to install provider

Error while installing hashicorp/aws-instance: provider registry
registry.terraform.io does not have a provider named
registry.terraform.io/hashicorp/aws-instance

PS C:\LABS\terraform>

Fico no aguardo Obrigado.

13 respostas

Olá Anderson, tudo bem? Você poderia colocar aqui o conteúdo do seu arquivo main.tf para agente poder analisar corretamente? Mas de ante mão, acho que esse problema é justamente o que foi relado e implementado a partir dessa Issue que foi dois meses atrás, o caso é que eles alteram a implementação e agora é possível usar "diferentes módulos usem diferentes provedores com o mesmo nome", então se não indicarmos o provedor de forma explicita ele assume que é o padrão, que é o hashicorp, porém esse não é hashicorp e sim aws.

Fico aguardando retorno!

segue meu main.tf

provider "aws" {
  version = "~> 3.0"
  region  = "us-east-2"
}

resource "aws-instance" "dev"{
    count = 2
    ami = "ami-0bbe28eb2173f6167"
    instance_type = "t2.micro"
    key_name = "terraform-aws"
    tags = {
        Name = "dev${count.index}"
    }
}

Como estava imaginando, parece que agora precisamos informar de onde é o provider que estamos querendo utilizar, então no caso do provider AWS você poderia adicionar o bloco de código abaixo antes do bloco resource:

terraform {
  required_providers {
    aws = {
      source  = "terraform-providers/terraform-provider-aws"
      version = "3.4.0"
    }
  }
}

E fala pra gente o resultado!

Boa tarde, ainda continuo com problema para rodar o arquivo, segue informações abaixo:

Erro:

PS C:\LABS\terraform> terraform validate

Error: Duplicate required providers configuration

  on versions.tf line 2, in terraform:
   2:   required_providers {

A module may have only one required providers configuration. The required
providers were previously configured at main.tf:2,3-21.

Codigo:

terraform {
  required_providers {
    aws = {
      source  = "terraform-providers/terraform-providers/aws"

    }
  }
}
provider "aws" {
  version = "~> 3.0"
  region  = "us-east-2"
}

resource "aws-instance" "dev"{
    count = 2
    ami = "ami-0bbe28eb2173f6167"
    instance_type = "t2.micro"
    key_name = "terraform-aws"
    tags = {
        Name = "dev${count.index}"
    }
}

Anderson, você poderia me informar qual é a versão do Terraform que você está usando?

Outra coisa, você poderia tentar usando o código abaixo e depois fala o resultado pra gente:

terraform {
  required_providers {
    aws = {
      source  = "terraform-providers/terraform-providers/aws"
      version = "~> 3.0"
    }
  }
}

provider "aws" {
  region  = "us-east-2"
}

resource "aws-instance" "dev"{
    count = 2
    ami = "ami-0bbe28eb2173f6167"
    instance_type = "t2.micro"
    key_name = "terraform-aws"
    tags = {
        Name = "dev${count.index}"
    }
}

Ao executar o codigo que voce passou o erro foi o mesmo do anterior.

Error: Duplicate required providers configuration

  on versions.tf line 2, in terraform:
   2:   required_providers {

A module may have only one required providers configuration. The required
providers were previously configured at main.tf:2,3-21.

A versão do terraform é:

Terraform v0.13.0

Você poderia tentar agora usando o source da própria hashicorp:

terraform {
  required_providers {
    aws = {
      source = "hashicorp/aws"
      version = "3.4.0"
    }
  }
}

provider "aws" {
  region  = "us-east-2"
}

resource "aws-instance" "dev"{
    count = 2
    ami = "ami-0bbe28eb2173f6167"
    instance_type = "t2.micro"
    key_name = "terraform-aws"
    tags = {
        Name = "dev${count.index}"
    }
}

E fala o resultado!

Olá Jonilson, tentei rodar o ultimo arquivo que voce mudou, mas não funcionou. Atualizei o terraform e está com as informações abaixo:

Anderson@DareDevil MINGW64 /c/LABS2/terraform
$ terraform --version
Terraform v0.13.2
+ provider registry.terraform.io/hashicorp/aws v3.4.0

Anderson@DareDevil MINGW64 /c/LABS2/terraform

Mas agora quando eu rodo o terraform init ele dá o seguinte erro:

Anderson@DareDevil MINGW64 /c/LABS2/terraform
$ terraform init

Initializing the backend...

Initializing provider plugins...
- Using previously-installed hashicorp/aws v3.4.0
- Finding latest version of hashicorp/aws-instance...

Error: Failed to install provider

Error while installing hashicorp/aws-instance: provider registry
registry.terraform.io does not have a provider named
registry.terraform.io/hashicorp/aws-instance

Fico no aguardo.

Anderson, fiz o mesmo processo aqui, passo a passo no Windows e deu tudo certo, então talvez o problema possa ser conexão com Internet, na verdade o provedor de internet, você poderia tentar usando outra rede? E outra coisa, na sua rede tem algum Proxy, pode ser isso que esteja atrapalhando o download.

Print do teste:

Teste terraform Windows

Bom dia Jonilson, então não uso Proxy, nunca tive problemas com outras ferramentas que uso para provisionamento que depende de rede (vagrant, ansible e docker), todos funcionam bem. Testei com uma outra rede e estou tendo o mesmo problema.

Anderson, já que não houve sucesso mesmo testando em outra rede, você poderia fazer outro teste? Poderia criar uma máquina virtual usando o VirtualBox e então tentar fazer o procedimento por essa máquina virtual, o que me surge é que pode ter algum software que pode está bloqueando o download e ou a instalação do plugin, ou então tentar fazer em outra máquina (se possível).

Boa noite Jonilson, já tinha realizado com maquina virtual e docker, não funcionou. Peguei uma outra máquina física e funcionou .

Que legal que funcionou Anderson, então tem algum problema de configuração na rede ou algum problema dando conflito e atrapalhando no download, e não consigo determinar qual é esse programa, mas que legal que funcionou!