Как заставить пользовательские данные EC2 работать на недавно построенном AMI, сделанном с помощью Packer

Я могу создавать изображения AMI просто отлично. Но они перестали работать с пользовательскими данными EC2:

Есть пользовательские данные:

$ cat /tmp/user_data.sh
#!/bin/bash

touch /tmp/i_have_user_data /root/i_have_user_data

И я могу запустить простой образ Ubuntu:

aws ec2 run-instances --instance-type m3.medium --image-id ami-eed10e86 --user-data file:///tmp/user_data.sh

И это работает:

ubuntu@ip-10-165-90-180:~$ ls /tmp/i_have_user_data

/ TMP / i_have_user_data

Но если я построю AMI на основе этого с помощью Packer:

"builders": [
    {
        "type": "amazon-ebs",
        "region": "us-east-1",
        "source_ami": "ami-eed10e86",
        "instance_type": "m3.large",
        "ssh_username": "ubuntu",
        "tags": {
            "OS_Version": "Ubuntu",
            "Release": "LTS"
        }
    }
],

... и выполните то же самое, что и раньше, в / tmp ничего нет. Тем не менее, ясно, что есть пользовательские данные, если вы запуститеec2metadata:

ramdisk-id: unavailable
reserveration-id: unavailable
security-groups: default
user-data: #!/bin/bash

touch /tmp/i_have_user_data /root/i_have_user_data

Я почти уверен, что это проблема состояния, и что удаление файла состояния заставит все это работать волшебным образом. Или есть хитрость, чтобы сделатьоблако окончательного выскочить сценарий работы, которая может быть то, что не работает. Во всяком случае, я еще не нашел это.

Обновить:

Я сделал это, превратив сценарий пользовательских данных в загрузочный крюк:

#cloud-boothook
#!/bin/sh
echo "RUNNING USER DATA SCRIPT"

Все еще ищу объяснение, почему они перестали работать. Документы Cloud Init улучшаются, но путь еще впереди.

Ответы на вопрос(1)

Ваш ответ на вопрос