在我的 ubuntu vagrant 中,我有一个执行该操作的配方apt-get update
。apt-get upgrade -y
如果需要重新启动,我还有一个最终配方可以重新启动机器。由于我使用 NFS 共享本地目录,因此重新启动 VM 会使 NFS 共享停止工作。因此,我需要vagrant reload
从主机发出。
是否可以vagrant reload
从客户机内部发出类似命令,或者在虚拟机重新启动后以其他方式重新加载 vagrant NFS 配置?我不想编写在主机上运行的脚本 - 我正在寻找可以放入我的reboot
chef 配方中的命令,以便它重新启动并重新加载 vagrant 配置。
答案1
简短的回答是“不”,至少在没有一些非常丑陋的解决方法并且不破坏在每个主机系统上运行 vagrant 前提的情况下是不行的。例如,您可以从虚拟机 ssh 进入您的主机并执行 vagrant reload。还有 vagrant 插件,但我认为它们不能获取 chef 的返回值并对其采取行动。如果可以,您可以观察特定语句并采取相应行动。
我也不确定您是否真的想以这种方式升级您的虚拟机。升级可能会以意想不到的方式破坏事物。我建议从 vagrantup 获取 ubuntu 基础框,然后手动升级并将其导出为您使用的 vagrant 框。如果您想再次升级,请重做该过程。这需要多做一些工作,但更安全。