Amazon-Ec2
如何通過 cloud-init 禁用執行使用者數據
我正在 EC2 中創建一個新的 AMI,並希望禁用它執行從該 AMI 啟動(或重新啟動)時可能放入使用者數據的任何內容。我查看了現有的
/etc/cloud/cloud.cfg
,/etc/cloud/cloud.cfg.d/*
但沒有看到它在哪裡啟用(所以預設情況下它可能是打開的)。 如何重新配置 cloud-init 以不允許這樣做,甚至允許重新啟用它? 我懷疑我還需要禁用#cloud-config
. 我是否需要禁用整個 cloud-init 包才能實現這一點?編輯:
我將在各種 AMI中使用 Amazon Linux和Ubuntu。
編輯2:
看來我需要禁用所有.
user-data
也許這會更容易。編輯3:
我確實希望能夠
user-data
在我的腳本中訪問。
這是我目前的 hack——不太優雅,但它有效:
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
更優雅的方法是在**/var/lib/cloud/instances/{your-instance-id}中創建一個名為cloud-config.txt**的文件,其內容如下:
#cloud-config # from 1 files # cloud-config.txt --- cloud_final_modules: - - scripts-user - never ...