![自动缩放组中的 EC2 自定义 AMI 未运行用户数据脚本](https://linux22.com/image/685397/%E8%87%AA%E5%8A%A8%E7%BC%A9%E6%94%BE%E7%BB%84%E4%B8%AD%E7%9A%84%20EC2%20%E8%87%AA%E5%AE%9A%E4%B9%89%20AMI%20%E6%9C%AA%E8%BF%90%E8%A1%8C%E7%94%A8%E6%88%B7%E6%95%B0%E6%8D%AE%E8%84%9A%E6%9C%AC.png)
如同这个问题,
我的用户数据是:
#!/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 可以按预期处理用户数据。