Freebsd

如何在自定義 FreeBSD AMI 上執行 userdata 腳本?

  • January 13, 2020

我讀到您只能在 EC2 AMI 上執行一次使用者數據。如果您從 EC2 實例創建自定義 AMI,則無法在該自定義 AMI 上執行 userdata 腳本。在 Ubuntu 實例上,您可以刪除 /var/lib/cloud/* ,創建自定義 AMI 並在自定義 AMI 上執行 userdata。我在 FreeBSD 上找不到 /var/lib/cloud/* 的等價物。

有沒有辦法在自定義 FreeBSD AMI 上執行 userdata 或創建 AMI 的替代方法,以便您可以再次執行 userdata 腳本?

Linux 有 #cloud-boothook,但對於 FreeBSD,我只發現 configinit 不能滿足我的需要。我們在啟動實例時從命令行將參數傳遞到 userdata 腳本。

AWS 上的 FreeBSD AMI 對 user_data 腳本的支持與其他 AMI 不同。正如您所指出的,它不支持#cloud-boothookuser_data 並忽略啟動後傳遞的任何 user_data 。

一個簡單的解決方案如下:

sed -i '' '/KEYWORD: *firstboot$/d' /usr/local/etc/rc.d/ec2_configinit

這是一個技巧——您的實例現在將執行所有 user_data 腳本,即使是那些沒有#cloud-boothook標籤的腳本,但在我看來,它比腳本的預設行為要好得多。請注意,始終可以ec2_configinit通過在/etc/rc.conf.

引用自:https://unix.stackexchange.com/questions/433426