1

我正在尝试将我的软件打包到 AWS AMI 中。

我想在我的 AMI 中禁用执行用户数据的逻辑,如果它检测到它包含一个 bash 脚本,而不禁用整个用户数据系统(我正在通过元数据 URL(169.254.169.254)访问用户数据)。

我的 AMI 基于Amazon Linux AMI x86_64 PV EBS(ami-5256b825),它使用cloud-init 0.7.2-7.20.

我已经尝试在以下行中添加注释,/etc/cloud/cloud.cfg.d/defaults.cfg但 AWS AMI 创建过程似乎用默认值覆盖了这个文件。

 - scripts-per-once
 - scripts-per-boot
 - scripts-per-instance
 - scripts-user

注意:在旧的 AWS AMI(例如 ami-5256b825)上,我一直在使用以下 sed 命令执行此操作:

sed -i 's/once-per-instance/never/g' /etc/init.d/cloud-init-user-scripts
4

1 回答 1

1

您可以在运行之前创建 cloud-init 锁定文件(例如“/var/lib/cloud/sem/user-scripts.i-7f3f1d11”)。由于 cloud-init 最后运行并检查是否缺少此锁定文件来运行用户数据,因此用户数据不会运行。您可以将其设置为以“#!/bin/bash”开头的用户数据。

于 2014-05-26T22:40:07.840 回答