vagrant配置文件vagrantfile详解

box设置

config.vm.box = "centos7"

当前vm使用的box镜像名称,值为本地仓库的镜像名,即使用 vagrant init 后面跟的名字。

hostname设置

config.vm.hostname = "for_work"

指定vm的hostname,,会覆盖vm中/etc/hostsname中的设置。当有很多台虚拟服务器的时候,依靠hostname來做识别。比如安装了多台虚拟机时可以通过vagrant up hostname来启动指定虚拟机

虚拟机网络设置

Vagrant有三种网络连接方式:
NAT : 缺省创建,用于让vm可以通过host转发访问局域网甚至互联网;
host-only : 只有主机可以访问vm,其他机器无法访问它;
bridge : 此模式下vm就像局域网中的一台独立的机器,可以被其他机器访问。

#配置当前vm的host-only网络的IP地址为192.168.33.10
config.vm.network "private_network", ip: "192.168.33.10"

host-only 模式的IP可以不指定,而是采用dhcp自动生成的方式,如 :

config.vm.network "private_network", type: "dhcp"

创建一个bridge桥接网络,指定IP

#config.vm.network "public_network", ip: "192.168.0.17"

同步文件夹设置

config.vm.synced_folder "../shared", "/app/"

主机与vm同步文件,vagrant默认会把工作目录映射到vm的/vagrant目录,第一个文件夹为主机的目录,第二个文件夹为vm中的目录。

端口转发设置

config.vm.network "forwarded_port", guest: 80, host: 8080

将主机的8080端口请求,转发到vm的80端口,这样访问http://host:8080 就相当于访问http://vm:80了
guest和host是必须的,还有几个可选属性:
guest_ip:字符串,vm指定绑定的Ip,缺省为0.0.0.0
host_ip:字符串,host指定绑定的Ip,缺省为0.0.0.0
protocol:字符串,可选TCP或UDP,缺省为TCP

vm provider通用和个性化设置

通用配置对于不同provider是通用的,常用的通用配置如下:

config.vm.provider "virtualbox" do |vb|
  #指定vm-name,也就是virtualbox管理控制台中的虚机名称
    vb.name = "centos6"
    # vagrant up启动时,是否自动打开virtual box的窗口,缺省为false
    vb.gui = true
    #指定vm内存,单位为MB
    vb.memory = "1024"
    #设置CPU个数
    vb.cpus = 2
end
36nu 分享编程知识及经验

已有账号?立即登录