Terrafrom EMR Bootstrap Shell File - PullRequest
0 голосов
/ 14 мая 2019

Я хочу выполнить файл оболочки внутри модуля Terrafrom для AWS EMR, передав файл в действие начальной загрузки.Однако файл не загружается.

Блок кода для вызова файла находится в файле main.tf, который можно увидеть здесь -

bootstrap_action {
  path = "${file("files/emr_bootstrap.sh")}"
  name = "emr_bootstrap"
}

И файл main.tf находится на том же уровне, что и файл.каталог "files".

Сообщение об ошибке: -

ValidationException: Invalid bootstrap action path, must be a location in Amazon S3 or a local path starting with 'file:'.

Любые идеи / указатели будут высоко оценены.

Ответ на ответ 1

Спасибо, HenryTK.Я также попробовал это без успеха, поэтому я думаю, что проблема в том, что файл на самом деле не существует в месте назначения.Чтобы преодолеть это до блока bootstrap_action, был добавлен блок копирования файла, как показано здесь -

provisioner "file" {
  source = "files/emr_bootstrap.sh"
  destination = "/tmp/emr_bootstrap.sh"
}

Даже с этим поставщиком файлов сценарий оболочки не выполняется, что означает, что bootstrap_action не находит оболочкусценарий.

1 Ответ

0 голосов
/ 14 мая 2019

Используйте волшебную path.module интерполяцию [1].

bootstrap_action {
  path = "${file("${path.module}/files/emr_bootstrap.sh")}"
  name = "emr_bootstrap"
}

[1] https://www.terraform.io/docs/configuration-0-11/interpolation.html

...