当前位置: 首页>>技术教程>>正文


ubuntu – 在主机启动时启动Vagrant VM

, ,

问题描述

我是vagrant的新手,并建立了几个vagrant vm,用于开发和测试。我的问题是我无法在我的计算机(Ubuntu)上自动启动这些框。每当我的主机启动时,每台计算机都转到该文件夹​​和vagrant up确实很烦人。

我尝试添加一个看起来像cd path/to/vm/folder && vagrant up的cronjob,但这似乎不起作用。

我还尝试了VBoxManage的cronjob,但每次VM启动时,vagrant都会更改VM的名称(而不是编号/版本’vmname_version’)。

最佳办法

Cron作业不适合此用例,它适用于计划的作业。

当您将Ubuntu作为主机运行时,建议您使用/etc/rc.local,将命令放在rc.local脚本中,该脚本在初始化过程结束时执行。

看起来像这样

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.    
cd /path/to/vagrant_vm1 && vagrant up
cd /path/to/vagrant_vm2 && vagrant up
exit 0

注意:如果使用相同的网络模式-NAT(默认)启动多个Vagrant框,则主机上将存在端口冲突;默认情况下,NAT使用默认的相同的端口转发规则。访客22主持2222。

如果需要启动多个框(NAT),请考虑使用公共网络(桥接)或使用VBoxManage controlvm启动虚拟机,请参阅Two separate Vagrant machines, windows host, PuTTY – how?中的答案

次佳办法

这是在http://uhowto.urbylog.info/post/54097294891/an-upstart-script-to-launch-vagrant-box-automatically上找到的启动脚本

自动启动vagrant框的新贵脚本有时可能需要在主机启动时以自觉方式启动vagrant虚拟机。同样,在关闭或重新启动主机时为访客提供正常关机。以下是一个新手脚本的示例,该脚本用于代表randomjoe用户启动/停止无业游民的盒子。在下面的脚本中更改用户名和Vagrantfile目录。描述性地命名您的新贵配置文件。为您需要在系统启动时启动并运行的每个Vagrantfile创建一个/etc/init/*.conf文件。 /etc/init/vagrant-precise32.conf:

description "Start vagrant precise32 box on system startup"
author "uHOWTO"
env VAGRANTUSR=randomjoe
env VAGRANTBOXPATH=/home/randomjoe/vagrantboxes/precise32
start on stopped rc
stop on runlevel [016]

pre-start script
    cd ${VAGRANTBOXPATH}
    su -c "/usr/bin/vagrant up" ${VAGRANTUSR}
end script

post-stop script
    cd ${VAGRANTBOXPATH}
    su -c "/usr/bin/vagrant halt" ${VAGRANTUSR}
end script

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9504.html,未经允许,请勿转载。