如同这个问题,
我的用户数据是:
#!/bin/bash
echo 'test' > /home/ubuntu/user-script.txt
Using a standard Ubuntu AMI, this works fine.
我有一个自定义 AMI,它是通过建立标准 Ubuntu AMI、运行 Ansible playbook 并从中创建 AMI 创建的。当我将启动配置配置为使用自定义 AMI 时,不会运行用户数据。没有其他区别。
我理解这可能是由于信号量文件造成的,因此我启动了我的 AMI 实例,删除了 /var/lib/cloud/sem/* 并创建了一个新的 AMI。我使用此 AMI 创建了一个新的启动配置并得到了相同的结果。
我重复了这个过程,这次删除了 /var/lib/cloud/*。结果相同。
有什么想法吗?这一定可行,对吧?
答案1
我已找到造成此现象的原因。
我的 Ansible 剧本正在从 Ubuntu 中删除一个名为“unattended-upgrades”的软件包,大概是亚马逊实用程序使用的。
同样,我的第二个剧本是删除 ubuntu 用户。Amazon 实用程序也可能使用它。
当我禁用这些角色时,AMI 可以按预期处理用户数据。