我来这里搜索并找到了适合我工作的出色解决方案。谢谢!现在我在这里提出我的第一个问题:
我有一个 OVA 文件(带有 OVF 和 VMDK 文件的 tar -https://en.wikipedia.org/wiki/Open_Virtualization_Format) 包含一个 Ubuntu VM,我将使用 vSphere 客户端将其部署到 ESXi 上。我还有一个 shell 脚本,希望在 VM 首次启动时执行。
使用 cloud-init 执行此操作的正确方法是什么?cloud-init 是否会在某个特殊位置寻找此类脚本?
谢谢,问候!Dinko
答案1
对于 VMWare 的 vSphere,用户数据通过 cdrom 以 ISO 形式注入 VM。这可以通过将 ISO 映像连接到 CD/DVD 驱动器,使用 vSphere 仪表板来完成。
要将此示例脚本传递给在 vSphere VM 中运行的 cloud-init,请在创建 vSphere VM 时将 CD/DVD 驱动器设置为指向数据存储上的 ISO。
注意:ISO 必须包含用户数据。
例如,将相同的 simple_script.bash 传递给 vSphere:
创建 ISO
% mkdir my-iso
注意:ISO 上的文件名必须是:user-data.txt
% cp simple_scirpt.bash my-iso/user-data.txt
% genisoimage -o user-data.iso -r my-iso
验证 ISO
% sudo mkdir /media/vsphere_iso
% sudo mount -o loop JoeV_CI_02.iso /media/vsphere_iso
% cat /media/vsphere_iso/user-data.txt
% sudo umount /media/vsphere_iso
然后,启动以 CDROM 形式附加的 vSphere VM ISO user-data.iso。
还可以启动 vSphere VM 并使用 Delta Cloud 将可选的用户数据传递给它。
有关 Delta Cloud 的更多信息,请参阅:http://deltacloud.apache.org