vagrant 复制备份boxex

来源:互联网 发布:js 点击显示隐藏的div 编辑:程序博客网 时间:2024/06/15 02:33

  • 复制vagrant box并压缩
    • 关闭正在运行的Vagrant
    • 在相同路径下创建一个 packagebox 文件
  • 创建一个新的vm快速方法
    • 为新的vagrant创建一个目录然后初始化一个新的Vagrantfile
    • 启用注释掉的关于box位置的配置
    • 以上的路径为box的文件路径windows用户需要配置成
    • 将默认的IP配置修改推荐用本机的ip地址最后1
    • 重新运行Vagrant
  • 创建新的vm完整方法
    • 如果希望将box加入到vagrant box列表中通过名称而非文件路径来使用可以这样
      • 将box加入到Virtualbox选择名字name-of-this-box
    • 现在我们可以通过名称来创建一个vm
    • 下面是实际操作过程中遇到的问题

复制vagrant box并压缩

关闭正在运行的Vagrant

vagrant halt

在相同路径下,创建一个 package.box 文件

vagrant package

如果要指定vm或者输出名称等内容请查看

vagrant package -h⇒  vagrant package -hUsage: vagrant package [options] [name]Options:    --base NAME                  Name of a VM in virtualbox to package as a base box    --output NAME                Name of the file to output    --include FILE...            Additional files to package with the box    --vagrantfile FILE           Vagrantfile to package with the box    -h, --help                       Print this help    

package.box 这个文件是当前vagrant vm的全镜像,且经过压缩。

创建一个新的vm(快速方法)

为新的vagrant创建一个目录,然后初始化一个新的Vagrantfile

# vagrant init

打开文件Vagrantfile,编辑文件,将当前默认的box名字改为新的box名称,比如“my-backup-test-box”

config.vm.box = "my-backup-test-box"

启用注释掉的关于box位置的配置

# config.vm.box_url = "http://domain.com/path/to/above.box"

以上的路径为box的文件路径,windows用户需要配置成

config.vm.box_url = "file:///d:/folder/package.box"

将默认的IP配置修改,推荐用本机的ip地址,最后+1

config.vm.network :private_network, ip: "192.168.33.101"

重新运行Vagrant

# vagrant up

创建新的vm(完整方法)

如果希望将box加入到vagrant box列表中,通过名称而非文件路径来使用,可以这样:

将box加入到Virtualbox(选择名字name-of-this-box)

# vagrant box add --name name-of-this-box package.box virtual box

注意以上命令行参数–name

    ⇒  vagrant box add --name name-of-this-box package.box    ==> box: Box file was not detected as metadata. Adding it directly...    ==> box: Adding box 'name-of-this-box' (v0) for provider:    box: Unpacking necessary files from: file:///Users/Richard/Documents/Dev/vagrant/package.box    ==> box: Successfully added box 'name-of-this-box' (v0) for 'virtualbox'!

现在我们可以通过名称来创建一个vm

config.vm.box = "name-of-my-box"

此种方法不需要再配置config.vm.box_url

需要注意 synced folder
在打包box并且创建新的vm时,客户(guest)下的synced folder的内容可能会丢失,所以最好在此之前关闭synced

config.vm.synced_folder ".", "/vagrant", disabled: true 

以上内容是抄袭来的,原文在这里 原文传送门

下面是实际操作过程中遇到的问题:

Failed to mount folders in Linux guest. This is usually becausethe "vboxsf" file system is not available. Please verify thatthe guest additions are properly installed in the guest andcan work properly. The command attempted was:mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` vagrant /vagrantmount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrantThe error output from the last command was:mount: unknown filesystem type 'vboxsf'

解决办法是:

# vagrant plugin install vagrant-vaguest

登录后,切换root遇到:

su: 鉴定故障

解决办法:

# sudo su# passwd root
1 0
原创粉丝点击