虚机安装

Vagrant创建虚机

方式一

  • 创建目录:mkdir centos7

  • 初始化Vagrantfile文件:vagrant init centos/7

  • 创建虚机:vagrant up

方式二

  • 下载一个合适的box。下载地址如下

    下载方式一:vagrant官网下载镜像方式

    下载方式二:http://cloud.centos.org/centos/7/vagrant/x86_64/images/

    下载方式三:https://www.vagrantbox.es/

  • 建立了如下的开发环境目录:

    $ /Users/helei/vagrant
    $ cd /Users/helei/vagrant
  • 完成一个box的安装

    $ vagrant box add {title} {url}
    $ vagrant init {title}
    $ vagrant up

    vagrant box add 是添加box的命令

    其中{title}可以自行设置,我这里使用的是 centos7 ,{url}是下载到本地box路径。我的路径是:/Users/helei/vagrant/centos-7.0-x86_64.box

    # 安装box
    $ vagrant box add CentOs7 /Users/helei/vagrant/centos-7.0-x86_64.box

    输出内容:

    Downloading or copying the box...
    Extracting box...te: 47.5M/s, Estimated time remaining: --:--:--)
    Successfully added box 'base' with provider 'virtualbox'!

    box中的镜像文件被放到了:/Users/helei/.vagrant.d/boxes/,如果在window系统中应该是放到了: C:\Users\当前用户名.vagrant.d\boxes\目录下。

    # 如果是才add 的box,就必须执行本步骤,初始化一次后,以后启动系统,就不需要执行本步骤。
    $ vagrant init CentOs7

    输出内容:

    A `Vagrantfile` has been placed in this directory.
    You are now ready to `vagrant up` your first virtual environment!
    Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant.

    这样就会在当前目录生成一个 Vagrantfile的文件,里面有很多配置信息,后面我在慢慢说,默认不做任何配置改动,也是可以启动系统的。

    # 启动系统
    $ vagrant up

    输出内容:

    Bringing machine 'default' up with 'virtualbox' provider...
    [default] Importing base box 'base'...
    [default] Matching MAC address for NAT networking...
    [default] Setting the name of the VM...
    [default] Clearing any previously set forwarded ports...
    ...

Vagrantfile文件模板

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.require_version ">= 1.6.0"

boxes = [
    {
        :name => "docker-node1",
        :eth1 => "192.168.205.10",
        :mem => "1024",
        :cpu => "1"
    },
    {
        :name => "docker-node2",
        :eth1 => "192.168.205.11",
        :mem => "1024",
        :cpu => "1"
    }
]

Vagrant.configure(2) do |config|

  config.vm.box = "centos7"

  boxes.each do |opts|
      config.vm.define opts[:name] do |config|
        config.vm.hostname = opts[:name]

        config.vm.provider "virtualbox" do |v|
          v.customize ["modifyvm", :id, "--memory", opts[:mem]]
          v.customize ["modifyvm", :id, "--cpus", opts[:cpu]]
        end

        config.vm.network :private_network, ip: opts[:eth1]
      end
  end

end
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.require_version ">= 1.6.0"

boxes = [
    {
        :name => "docker-node1",
        :eth1 => "192.168.205.10",
        :mem => "1024",
        :cpu => "1"
    },
    {
        :name => "docker-node2",
        :eth1 => "192.168.205.11",
        :mem => "1024",
        :cpu => "1"
    }
]

Vagrant.configure(2) do |config|

  config.vm.box = "centos7"

  boxes.each do |opts|
      config.vm.define opts[:name] do |config|
        config.vm.hostname = opts[:name]
        config.vm.provider "vmware_fusion" do |v|
          v.vmx["memsize"] = opts[:mem]
          v.vmx["numvcpus"] = opts[:cpu]
        end

        config.vm.provider "virtualbox" do |v|
          v.customize ["modifyvm", :id, "--memory", opts[:mem]]
          v.customize ["modifyvm", :id, "--cpus", opts[:cpu]]
        end

        config.vm.network :private_network, ip: opts[:eth1]
      end
  end

#  config.vm.synced_folder "./labs", "/home/vagrant/labs"
#  config.vm.provision "shell", privileged: true, path: "./setup.sh"

end

Vagrant基本操作

  • 启动虚机:vagrant up

  • 查看虚机状态:vagrant status

  • 显示当前用户Vagrant的所有环境状态:vagrant global-status

  • 进入虚机:vagrant ssh docker-node1

  • 删除虚机:vagrant destroy [name|id]

参考文章

Last updated

Was this helpful?