Как передать IPv4-адрес локальному провайдеру terraform? - PullRequest
0 голосов
/ 28 декабря 2018

Я пытался сделать

терраформ применить

, но получаю ошибку ниже

1 произошла ошибка (и):

  • digitalocean_droplet.testvm [0]: Ресурс 'digitalocean_droplet.testvm' не найден для переменной 'digitalocean_droplet.testvm.ipv4_address'

Terraform не выполняет автоматический откат в случае ошибок,Вместо этого ваш файл состояния Terraform был частично обновлен любыми успешно завершенными ресурсами.Пожалуйста, исправьте ошибку выше и примените снова для постепенного изменения вашей инфраструктуры.

Как передать общедоступный IP-адрес созданного дроплета команде инициатора local-exec.

Ниже приведен мой .tf файл

provider "digitalocean" {
  token = "----TOKEN----"
}

resource "digitalocean_droplet" "testvm" {
    count = "10"
    name = "do-instance-${count.index}"
    image = "ubuntu-16-04-x64"
    size = "512mb"
    region = "nyc3"
    ipv6 = true
    private_networking = false
    ssh_keys = [
      "----SSH KEY----"
    ]
    provisioner "local-exec" {
        command = "fab production deploy ${digitalocean_droplet.testvm.ipv4_address}"
    }
}

Заранее спасибо!

1 Ответ

0 голосов
/ 28 декабря 2018

Для локального исполнителя exec вы можете использовать ключевое слово self.В этом случае это будет {self.ipv4_address}.

Я предполагаю, что ваш фрагмент сработал бы, если бы вы не поместили count=10 в каплю testvm.Вы также можете использовать ${count.index}

Дополнительная информация: https://www.terraform.io/docs/provisioners/

Также найдено эта проблема с github , которая может быть вам полезна.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...