vagrant_init

vagrant 基础操作

下载安装 VirtualBox :https://www.virtualbox.org/

下载安装 Vagrant :http://www.vagrantup.com/

假设你的电脑上已经安装了 VirtualBox 和 Vagrant 。请务必先安装 VirtualBox,因为 Vagrant 是依赖它的。

添加 box

如果你已经将 wifi.box 这个 vagrant 的包下载到了你的电脑上,我们需要将这个包导入到 Vagrant.这个包大小有 5.4 G。请保证你的硬盘空间足够大。为它保留出25G的空间(5.4G 缓存包+ 17G 左右的虚拟机)

1
2
$vagrant box add openwrt  wifi.box # vagrant box add <name> <path>

执行了以上的命令后,你的 vagrant 里面已经包括了这个包

1
2
3
$ vagrant box list
openwrt (virtualbox, 0) # 这个就是我们刚才导入的这个包

开发环境

进入到自己的开发目录,假设是本地硬盘上的 ~/openwrt_build 或者 D:\openwrt_build

1
2
3
4
5
6
7
8
9
cd ~/openwrt_build # d:# cd  openwrt_build   # 进入指定目录

vagrant init openwrt # 执行后会在当前目录创建一个 Vagrantfile 的文件

vagrant up # 启动,第一次创建目录 。等待命令完成后可以看到 VirtualBox 中虚拟机的状态是启动状态

vagrant ssh # 使用 ssh 登录到 虚拟机


网络配置

Vagrant的网络有三种模式

1、较为常用是端口映射,就是将虚拟机中的端口映射到宿主机对应的端口直接使用 ,在Vagrantfile中配置:

1
2
3

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

guest: 80 表示虚拟机中的80端口, host: 8080 表示映射到宿主机的8080端口。

1
2
开启这个后,如果vagrant已经启动了,在命令行输入 vagrant reload 重启机器,就可以再宿主机伤使用 localhost:8080来访问虚拟机的localhost:80 。

2、如果需要自己自由的访问虚拟机,但是别人不需要访问虚拟机,可以使用private_network,并为虚拟机设置IP ,在Vagrantfile中配置:

1
2
config.vm.network :private_network, ip: "192.168.1.104"

192.168.1.104 表示虚拟机的IP,多台虚拟机的话需要互相访问的话,设置在相同网段即可
3、如果需要将虚拟机作为当前局域网中的一台计算机,由局域网进行DHCP,那么在Vagrantfile中配置:

1
2
config.vm.network :public_network

目录映射

既然是开发环境,那么开发工作肯定还是需要在本地完成,而不是都要进到虚拟机中去完成,虚拟机就好好在后台运行服务就好了,不然就本末倒置了,所以这里就需要使用目录映射功能,将本地的目录映射到虚拟机的对应目录。

默认情况下,当前的工作目录,会被映射到虚拟机的 /vagrant 目录,当前目录下的文件可以直接在 /vagrant 下进行访问,当然也可以在通过 ln 创建软连接,如

ln -fs /vagrant/wwwroot /var/www

来进行目录映射,当然,从自动化配置的角度,能不进系统就不需要进系统,所以在Vagrant也可以进行目录映射的操作:

config.vm.synced_folder “wwwroot/“, “/var/www”

前面的参数 “wwwroot/” 表示的是本地的路径,这里使用对于工作目录的相对路径,这里也可以使用绝对路径,比如: “d:/www/”

后面的参数 “/var/www” 表示虚拟机中对应映射的目录。

一些命令

1
2
3
4
5
6
7
8
vagrant up (启动虚拟机)
vagrant halt (关闭虚拟机——对应就是关机)
vagrant suspend (暂停虚拟机——只是暂停,虚拟机内存等信息将以状态文件的方式保存在本地,可以执行恢复操作后继续使用)
vagrant resume (恢复虚拟机 —— 与前面的暂停相对应)
vagrant destroy (删除虚拟机,删除后在当前虚拟机所做进行的除开Vagrantfile中的配置都不会保留)
vagrant reload (重启)


一些问题

作者

张巍

发布于

2017-09-04

更新于

2017-09-04

许可协议

评论