Назад | Перейти на главную страницу

Terraform, ошибка «У корневого модуля нет ресурсов» при заражении

Получение The module root has no resources ошибка при заражении. Я пытаюсь испортить пару null_resources. Вот блок кода для 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"
       ]
   }

}

А вот блок кода для 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"
      ]
   }

}

Я не могу понять, что делаю не так. Насколько я понимаю, он может испортить каждый из этих ресурсов. Вот что я делаю в командной строке: terraform taint null_resource.provision_last и terraform taint null_resource.provision_first

В моей команде отсутствовал путь к модулю. Подробнее Вот.

Это правильный способ написать:

terraform taint -module=MODULENAME TYPE.NAME

Например, если мой модуль был назван hosting:

module "hosting" {
    ...
}

И если бы я хотел испортить следующий ресурс:

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

Мне нужно будет сделать следующее:

terraform taint -module=hosting null_resource.provision_last