我正在 EC2 中创建一个新的 AMI,并希望禁止它运行在从此 AMI 启动(或重新启动)时可能放入用户数据中的任何内容。我查看了现有的/etc/cloud/cloud.cfg
,/etc/cloud/cloud.cfg.d/*
但没有看到启用此功能的位置(因此可能默认情况下处于启用状态)。 我该如何重新配置 cloud-init 以不允许此功能或者甚至允许重新启用此功能? 我怀疑我还需要禁用#cloud-config
。我需要禁用整个 cloud-init 包来实现这一点吗?
编辑:
我将使用 Amazon Linux和各种 AMI 中的 Ubuntu。
编辑2:
看来我需要禁用全部的user-data
。也许这样会更容易一些。
编辑3:
我确实希望能够user-data
访问我的脚本。
答案1
这是我目前的破解方法——不是太优雅,但它有效:
patch /usr/lib/python2.7/dist-packages/cloudinit/stages.py <<EOF
@@ -469,7 +469,6 @@
def consume_data(self, frequency=PER_INSTANCE):
# Consume the userdata first, because we need want to let the part
# handlers run first (for merging stuff)
- self._consume_userdata(frequency)
self._consume_vendordata(frequency)
# Perform post-consumption adjustments so that
EOF
答案2
一个更优雅的方法是创建一个名为云配置.txt在/var/lib/cloud/instances/{你的实例 ID},内容如下:
#cloud-config
# from 1 files
# cloud-config.txt
--- cloud_final_modules:
- - scripts-user
- never
...