Terraform - экземпляр AWS EC2 - пользовательские данные доступны на устройстве, но не запускаются при применении шаблона - PullRequest
0 голосов
/ 27 сентября 2018

Я боролся с этой проблемой последние несколько дней.У меня есть экземпляр, который создается с использованием шаблона terraform с userdata, который указан из файла шаблона.Экземпляр использует AMI сообщества Debian Jessie, и я могу просматривать пользовательские данные на экземпляре через wget.Я попробовал копию AMI, я попытался использовать # cloud-boothook и попытался поместить скрипт userdata в основной шаблон TF.

Я проверил выход облака-init-output.Журналы регистрируются, и есть ошибка, которая показывает, что мое исследование указывает на проблему с переменными среды и sudo, но я все еще ожидаю, что временный файл будет создан, потому что нет никакого вызова sudo, предшествующего этой строке эха (отсюда: userСценарии данных не выполняются без объяснения причин ).

 util.py[WARNING]: Running scripts-user (<module 'cloudinit.config.cc_scripts_user' from '/usr/lib/python2.7/dist-packages/cloudinit/config/cc_scripts_user.pyc'>) failed

Раздел моего шаблона TF, который создает экземпляр:

resource "aws_instance" "example" {
  ami                       = "ami-116d857a"
  instance_type             = "t2.micro"
  source_dest_check         = "False"
  subnet_id                 = "${aws_subnet.public.id}"
  key_name                  = "my-generic-keyname"
  vpc_security_group_ids    = ["${aws_security_group.vpn-sg.id}"]
  user_data                   = "${data.template_file.bootscript.rendered}"
  depends_on                = ["aws_subnet.public"]
}

Пользовательские данные, содержащиеся в файле шаблона:

#!/bin/bash
echo 'Running user data' > /tmp/user-script-output.txt
sudo apt install strongswan-starter -y
sudo apt install curl -y

# Write secrets file
[cat <<-EOF > /etc/ipsec.secrets
# This file holds shared secrets or RSA private keys for authentication.

# RSA private key for this host, authenticating it to any other host
# which knows the public part.

privateip : PSK "$clientPSK"

EOF

Ожидаемое поведение: Когда я вхожу в экземпляр SSH, я могу просмотреть метаданные без проблем, но файл в / tmp не создан, curl не установлен и не является пакетом strongswan.

Я ценю помощь!

...