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!