VirtualBox+Vagrant

2017-10-15  本文已影响73人  idioitcbear

Vagrant可以想象成一个VM的仓库工具,我们可以使用别人做好的VM,或者我们可以自己做一个VM,配置好一些安装包。设置好统一环境。减少开发和测试环境导致的bug。

  1. 首先给出下载地址
    Vagrant: https://www.vagrantup.com/downloads.html
    VirtualBox: https://www.virtualbox.org/wiki/Downloads
    本文环境为Mac,所以安装只需要双击.pkg+next完成安装
  2. 初始化vagrant项目
    $ mkdir vagrant_getting_started
    $ cd vagrant_getting_started
    $ vagrant init
    
    首先我们需要生成VagrantFile,作为vagrant的配置文件。这个文件夹可以是空的,也可以是一个已经存在的vagrant工程
  3. 添加box
    可以通过如下命令进行添加
      vagrant box add hashicorp/precise64
    
    Note: 这种方式是从官方的仓库进行下载的。我们也可以指定本地文件或者自已的一个 url下面会有介绍。box加载是全局性的,这就是说,如果你有两个project用了同一个远程仓库中的镜像,两两之间是不会有影响的。
    在VagrantFile中配置上我们刚刚加入的box:
      Vagrant.configure("2") do |config|
      config.vm.box = "hashicorp/precise64"
      end
    
    Note: 如果这个box没有通过上面的命令进行添加,则在运行这个项目的时候会被进行下载
    你可以类似下面指定镜像的使用版本:
      Vagrant.configure("2") do |config|
      config.vm.box = "hashicorp/precise64"
      config.vm.box_version = "1.1.0"
      end
    
    直接指定box的位置:
      Vagrant.configure("2") do |config|
      config.vm.box = "hashicorp/precise64"
      config.vm.box_url = "http://files.vagrantup.com/precise64.box"
      end
    
    我们可以在这里搜索别人上传的镜像:vagrant repository
  4. 启动box
    $ vagrant up进行启动
    $ vagrant ssh 通过ssh进行虚拟机的连接
    $ vagrant destroy 销毁该虚拟机。这个操作并不会在本地删除之前下载的box file,只是销毁当前的虚拟机,如果要删除之前那个box文件,需要执行vagrant box remove
  5. 共享文件夹
    vagrant会自动挂载当前文件夹至虚拟机的/vagrant目录下,所以在对虚拟机的/vagrant目录进行操作是也会影响到宿主机的文件 ,列如:
      vagrant@precise64:~$ touch /vagrant/foo
      vagrant@precise64:~$ exit
      $ ls
      foo Vagrantfile
    
  6. 设置启动脚本
    • 在当前文件夹下新建bootstrap.sh文件
        #!/usr/bin/env bash
      
        apt-get update
        apt-get install -y apache2
        if ! [ -L /var/www ]; then
        rm -rf /var/www
        ln -fs /vagrant /var/www
        fi
      
    • 配置VagrantFile文件
        Vagrant.configure("2") do |config|
        config.vm.box = "hashicorp/precise64"
        config.vm.provision :shell, path: "bootstrap.sh"
        end
      
    • 使配置生效
      vagrant up即启动虚拟机时会生效,如果虚拟机已经在运行可以通过以下命令进行加载 vagrant reload --provision

未完待续~~~~

上一篇下一篇

猜你喜欢

热点阅读