Vagrant配置

Vagrant是使⽤Ruby开发的,所以它的配置语法也是Ruby的,每个项⽬都需要有⼀个Vagrantfile,在执⾏vagrant init的⽬录下可以找到该⽂件。

config.vm.hostname:配置虚拟机主机名
config.vm.network:这是配置虚拟机⽹络,由于⽐较复杂,我们其后单独讨论
config.vm.synced_folder:除了默认的⽬录绑定外,还可以⼿动指定绑定
config.ssh.username:默认的⽤户是vagrant,从官⽅下载的box往往使⽤的是这个⽤户名。如果是⾃定制的box,所使⽤的⽤户名可能会有所不同,通过这个配置设定所⽤的⽤户名。
config.vm.provision:我们可以通过这个配置在虚拟机第⼀次启动的时候进⾏⼀些安装配

 

需要注意的是,Vagrantfile⽂件只会在第⼀次执⾏vagrant up时调⽤执⾏,其后如果不明确使⽤vagrant reload进⾏重新加载,否则不会被强制重新加载。

box设置

config.vm.box = "centos7"  #该名称是再使⽤ vagrant init 中后⾯跟的名字。

 

hostname设置

config.vm.hostname = "node1" #设置hostname⾮常重要,因为当我们有很多台虚拟服务器的时候,都是依靠hostname來做识别的。⽐如,我安装了centos1,centos2两台虚拟机,再启动时,我可以通过vagrant up centos1来指定只启动哪⼀台。

虚拟机⽹络设置

config.vm.network "private_network", ip: "192.168.10.11"
//Host-only模式
config.vm.network "public_network", ip: "10.1.2.61"
//Bridge模式

Vagrant的⽹络连接⽅式有三种:
▲NAT : 缺省创建,⽤于让vm可以通过host转发访问局域⽹甚⾄互联⽹。
▲host-only : 只有主机可以访问vm,其他机器⽆法访问它。
▲bridge : 此模式下vm就像局域⽹中的⼀台独⽴的机器,可以被其他机器访问。

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

host-only 模式的IP可以不指定,⽽是采⽤dhcp⾃动⽣成的⽅式,如

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

 

#config.vm.network "public_network", ip: "192.168.0.17"
#创建⼀个bridge桥接⽹络,指定IP
#config.vm.network "public_network", bridge: "en1: Wi-Fi (AirPort)"
#创建⼀个bridge桥接⽹络,指定桥接适配器
config.vm.network "public_network"
#创建⼀个bridge桥接⽹络,不指定桥接适配器

同步⽬录设置

config.vm.synced_folder "D:/xxx/code", "/home/www/"

前⾯的路径(D:/xxx/code)是本机代码的地址,后⾯的地址就是虚拟机的⽬录。虚拟机的/vagrant⽬录默认挂载宿主机的开发⽬录(可以在
进⼊虚拟机机后,使⽤df -h 查看),这是在虚拟机启动时⾃动挂载的。我们还可以设置额外的共享⽬录,上⾯这个设定,第⼀个参数是宿主
机的⽬录,第⼆个参数是虚拟机挂载的⽬录。

端⼝转发设置

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

#将虚拟机(被称作guest)的端口80映射为宿主机的端口8080。

guest和host是必须的,还有⼏个可选属性:
guest_ip:字符串,vm指定绑定的Ip,缺省为0.0.0.0
host_ip:字符串,host指定绑定的Ip,缺省为0.0.0.0
protocol:字符串,可选TCP或UDP,缺省为TCP

0 条评论