admin管理员组

文章数量:1608937

Vagrant使用 Beta

Destroy

销毁将会使客户机器从宿主机的磁盘上全部抹掉,一旦客户机被销毁将会回到最原始的状态,就像你从没有启动过一样,要注意的是使用这个命令会丢失你所有的文件和数据,不过好处就是客户机被销毁了,宿主机就会恢复到原先的状态,不会占用多余的磁盘空间,不会有和客户机相关的进程来消耗我们的CPU和内存资源,尤其是像我这种电脑配置不是很高的,用完就销毁还是可以节约很多的资源开销的。
下面就是vagrant destroy命令的运行状态:

$ vagrant destroy
Are you sure you want to destroy the 'default' VM? [y/N] y 
[default] Forcing shutdown of VM...
[default] Destroying VM and associated drives...

$ vagrant status
    Current machine states:
    default                  not created (virtualbox)
The environment has not yet been created. Run `vagrant up` to create the environment. If a machine is not created, only the default provider will be shown. So if a provider is not listed, then the machine is not created for that environment

客户机在销毁之前会让你确认是否执行这个拉风的命令,一单你输入了Y确定,就会销毁你所有没有和宿主机共享的文件,如果你不想核实是否销毁也可以直接的跳过,命令如下:

$ vagrant destroy --force
[default] Forcing shutdown of VM...
[default] Destroying VM and associated drives.

然后,当你再次启动的时候会重新的创建虚拟客户机:

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider... [default] Importing base box 'precise64'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports... [default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces... [default] Preparing network interfaces based on configuration... [default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] -- 80 => 8080 (adapter 1)
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes. [default] VM booted and ready for use!
[default] Configuring and enabling network interfaces... [default] Mounting shared folders...
[default] -- /vagrant

Provisioning Your Vagrant VM( 预配你的vagrant 虚拟机)

根据前面的介绍我们知道了,可以简单的运行vagrant up开启一个已经准备好的完整开发环境,也就是说所有项目必备的相关软件已经在客户机中预安装好了,这里有两种方式可以做到这点:1 ,直接的将软件嵌进box中 2 , 预安装软件作为启动的一部分在启动的时候自动下载安装。预配器就是属于第二种。
我们在练习的过程中,安装的客户机一般都是裸机,能够运行最小环境的软件安装预安装数量。
预配器同时支持shell scripts, Chef, or Puppet. 如果需要可以通过插件添加它。

为啥需要自动预配器?

自动的预配器有三个好处:易上手,重复用,缩小开发和生产环境之间的差距。真是可怜看到这突然想到,可能很多人都没有三个优点。
很多的开发着一般都会在服务器被创建的时候手动的从机器上复制,粘贴上传到对应的服务器上,但是当我们需要连接多个服务器时,可能会因为服务器之间的细微差距导致文件句柄耗尽,或数据库版本不兼容等一些其他的我想不到和没有碰到的问题。。。因为这些不可预测的问题,加上开发进度调的持续滚动,让我们没有那么多的时间去处理这些问题,就会出现一个常见的踢皮球的问题“这个项目在我的机器上运行时正常的”。

支持的预配器

Vagrant支持的预配器有shell scripts, Chef, or Puppet,对于新手来说经常会有疑惑那个预配器时Vagrant用的。最常听到的就是Chef or Puppet比较合适,但是它们都太复杂了。(Chef or Puppet说实话在我准备翻译这本书的时候,从来都没有听过这两个东西时啥,就是现在我也说不清,读者有兴趣

本文标签: Vagrantbeta