gpt4 book ai didi

linux - 每次 guest 重新启动后 Vagrant 执行脚本或命令(vagrant up)

转载 作者:IT老高 更新时间:2023-10-28 12:41:12 25 4
gpt4 key购买 nike

我知道配置脚本,但这是我要询问的不同脚本。我希望每次重新启动 guest 后执行一个脚本。

我正在使用 shell 配置器。

config.vm.provision :shell, path: "vagrant/bootstrap.sh"

我无法将我的命令放入我想在每次重新启动后运行的脚本中。

基本上,我希望在用户执行 vagrant up 时启动我的一个应用程序。

我的客人是 ubuntu 14.04 值得信赖的,我发现的一个解决方案是跟踪我的客人 -

sudo crontab -e
#add the following line
@reboot sh /path/to/my_script_on_guest.sh

我可以尝试在我的配置脚本中执行此操作,但 sudo crontab -e 要求使用编辑器,我必须以交互方式添加该行。由于 crontab 文件不固定,我不知道是否可以像这样进行一个衬里文件编辑

echo '@reboot sh/path/to/my_script_on_guest.sh' >> crontab_file

我猜这一定是客户操作系统特定的东西。

这可以使用 Vagrant 实现吗?

编辑:从 ssh 配置器更正为 shell 配置器。

最佳答案

你可以使用 run: 'always'

config.vm.provision :shell, path: "vagrant/bootstrap.sh", run: 'always'

这将确保您的命令在您的虚拟机每次启动时执行(vagrant up 或 vagrant reload)

如果您只需要始终运行某些命令,则可以拆分脚本

config.vm.provision :shell, path: "vagrant/bootstrap1.sh"
config.vm.provision :shell, path: "vagrant/bootstrap2.sh", run: 'always'
config.vm.provision :shell, path: "vagrant/bootstrap3.sh"

脚本将按顺序运行,首次配置机器时 bootstrap1 然后 2 然后 3

再运行 vagrant up(或重新加载)时,只会运行 bootstrap2

关于linux - 每次 guest 重新启动后 Vagrant 执行脚本或命令(vagrant up),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37208309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com