我开始使用 Packer,我有一个问题。是否有任何解决方案可以添加一个 bash 脚本,该脚本将自动启动并且仅在从映像部署 VM 后启动一次?
/etc/rc.local在 linux VM 的映像中添加以下代码:
####Marker_start####
sed -i '/####Marker_start####/,/####Marker_end####/d' /etc/rc.local
#Your custom code here
####Marker_end####
Run Code Online (Sandbox Code Playgroud)
解释:
其他方法:
创建一个包含您的自定义代码的脚本并将以下代码附加到它。
chmod 644 "$0"
Run Code Online (Sandbox Code Playgroud)
并创建一个符号链接
ln -s /path/to/your-script.sh /etc/rc5.d/S99my-custom-script.sh
Run Code Online (Sandbox Code Playgroud)
(假设您的默认运行级别为 5。根据 VM 发行版的需要更改它 - 例如 ubuntu 已启用/etc/rc2.d)
说明:当进入运行级别 5 时,将自动执行
指定/etc/rc5.d/S*的脚本,参数= start。第一次执行时,将脚本设为不可执行,以便它只执行一次。