Terraform, obtendo o erro “A raiz do módulo não possui recursos” sobre a contaminação

2

Obtendo um erro The module root has no resources sobre a corrupção. Estou tentando corromper alguns null_resources . Aqui está o bloco de código para null_resource.provision_first :

resource "null_resource" "provision_first" {

    connection {

        user = "root"
        type = "ssh"
        private_key = "${file("./.ssh/prv_key")}"
        host = "${element(digitalocean_droplet.droplet.*.ipv4_address, count.index)}"
        timeout = "2m"
   }

   provisioner "remote-exec" {
       inline = [

           # install salt-minion
           "wget -O - http://bootstrap.saltstack.org | sudo sh"
       ]
    }

    provisioner "file" {

         # copy minion file
        source = "../salt/prod/minion"
        destination = "/etc/salt/minion"
    }

   provisioner "file" {

       # copy top.sls and init.sls files
       source = "../salt/roots"
       destination = "/etc/salt/roots"
   }

   provisioner "remote-exec" {
       inline = [

          # tell salt-minion to look for the state tree in
          # the local file system, with the --local flag.
         "salt-call --local state.highstate -l debug"
       ]
   }

}

E aqui está o bloco de código para null_resource.provision_last :

resource "null_resource" "provision_last" {
    connection {
        user = "root"
        type = "ssh"
        private_key = "${file("./.ssh/prv_key")}"
        host = "${element(digitalocean_droplet.droplet.*.ipv4_address, count.index)}"
        timeout = "2m"
    }

   provisioner "file" {
       source = "../site/index.html"
       destination = "/usr/nginx/html/site/index.html"
   }

   provisioner "file" {
       source = "../site/assets"
       destination = "/usr/nginx/site"
   }

  provisioner "remote-exec" {
      inline = [
          "mv /usr/nginx/html/site/build/index.html /usr/nginx/html/site/index.html"
      ]
   }

}

Eu não consigo entender o que estou fazendo de errado. Tanto quanto eu posso ver, deveria ser capaz de manchar cada um desses recursos. Isso é o que estou fazendo na linha de comando: terraform taint null_resource.provision_last e terraform taint null_resource.provision_first

    
por pierrebonbon 11.04.2016 / 16:08

1 resposta

5

Eu estava faltando o caminho do módulo no meu comando. Mais detalhes aqui .

Este é o jeito certo de escrever:

terraform taint -module=MODULENAME TYPE.NAME

Por exemplo, se meu módulo foi nomeado hosting :

module "hosting" {
    ...
}

E se eu quisesse manchar o seguinte recurso:

resource "null_resource" "provision_last" {
    ...
}

Eu precisaria fazer o seguinte:

terraform taint -module=hosting null_resource.provision_last
    
por 12.04.2016 / 01:20

Tags