zoukankan      html  css  js  c++  java
  • Vagrant (3) —— 复制/备份Vagrant Box

    Vagrant (3) —— 复制/备份Vagrant Box

    摘要

    介绍复制/备份Vagrant Box基本方法

    版本

    Vagrant版本: 1.8.1


    内容

    复制vagrant box并压缩

    关闭正在运行的Vagrant

    vagrant halt
    

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

    vagrant package
    

    这样就完成了。

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

    vagrant package -h
    
    ⇒  vagrant package -h
    Usage: 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列表中,通过名称而非文件路径来使用,可以这样:

    vagrant package
    

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

    vagrant box add --name name-of-this-box package.box virtualbox
    

    注意以上命令行参数--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	
    

    没有亲测


    参考

    How to copy Vagrant boxes (or duplicate them)

  • 相关阅读:
    卡特兰数
    Tree
    关于树上DP的转移方式与复杂度证明
    Tarjan进阶
    排队
    Perm 排列计数
    [bzoj1227]虔诚的墓主人
    [BZOJ1195]最短母串
    ValueError: Variable vgg_16/conv1/conv1_1/weights already exists, disallowed
    《链家网技术架构的演进之路》读后感
  • 原文地址:https://www.cnblogs.com/richaaaard/p/5160220.html
Copyright © 2011-2022 走看看