配置:
1、下载vagrant
链接地址:https://releases.hashicorp.com/vagrant/1.8.6/
windows下载 vagrant_1.8.6.msi版本;centos下载 vagrant_1.8.6_x86_64.rpm
2、下载vm virtualbox: https://www.virtualbox.org/wiki/Download_Old_Builds_5_1
3、下载vagrant box
https://app.vagrantup.com/boxes/search
Vagrant-CentOS-7.box
官网下载很慢,百度网盘地址:https://pan.baidu.com/s/1hsMXezq
4、添加box并初始化
mkdir vagrant_test
cd vagrant_test
vagrant box add centos7 ./Vagrant-CentOS-7.box
vagrant init centos7 //win10在c盘,可能无写入权限,需要手动分配写入权限给文件
5、开启vagrant
vagrant up
若出现 “rsync" could not be found on your PATH. Make sure that rsync”的错误,导致不成功,只需在 C:\Users\Administrator\.vagrant.d\boxes\centos7\0\virtualbox\Vagrantfile 文件里的
type: "rsync" 改为 type: "virtualbox"
若出现 “The error output from the command was:mount: unknown filesystem type 'vboxsf'” 错误。
需要输入命令 vagrant plugin install vagrant-vbguest
再输入 vagrant reload --provision
一般默认ssh地址: 127.0.0.1 ;默认端口:2222; 默认用户名:vagrant;密码:vagrant
超级用户:root; 密码:vagrant
5.1 用xshell连接虚拟机
先在vagrant_test目录执行 vagrant ssh 得到Private key的路径,ssh登陆时用户名得选vagrant
在创建链接,密码输入时选择浏览文件,即上一步得到的Private key
6、配置浏览器访问虚拟机:临时端口转发
先暂停虚拟机 vagrant suspend
配置虚拟机端口转发: 设置->网络->高级->端口转发 添加如下一行数据
名称 协议 主机ip 主机端口 子系统ip 子系统端口
ssh TCP 127.0.0.1 8888 80
启动虚拟机 vagrant resume
这时, 在浏览器输入127.0.0.1:8888 即可访问虚拟机80端口
8、Vagrantfile配置
(1)永久端口转发:https://www.vagrantup.com/docs/networking/forwarded_ports.html
在根目录Vagrantfile 里面添加如下代码,即可实现浏览器访问 127.0.0.1:8080,即可挑战至虚拟机80端口(虚拟机需要开启nginx或apache,并重启vagrant reload)。
config.vm.network "forwarded_port", guest: 80, host: 8080
(2) 共享目录:https://www.vagrantup.com/docs/synced-folders/basic_usage.html
在根目录Vagrantfile 里面添加如下代码,再重启vagrant reload 即可实现目录共享:
config.vm.synced_folder "C:/phpStudy/WWW/test", "/usr/local/nginx/html"
(3) 虚拟机私有ip配置(实现浏览器ip访问虚拟机) https://www.vagrantup.com/docs/networking/private_network.html
添加如下代码,接口实现浏览器输入ip,访问虚拟机。注意,出来vagrant reload后,还得重启nginx
config.vm.network "private_network", ip: "192.168.50.4"
(4)修改虚拟机名称,即vagrant box 左侧列表中的名称;
添加如下代码。
config.vm.provider "virtualbox" do |vb| vb.name = "vagrant_test"end
(5) 修改虚拟机主机名:即虚拟机命令行用户名后面的字段;
config.vm.hostname = "vagrant"
(6) nignx相关优化;主要是为了文件快速同步虚拟机
需要修改nginx.conf里面的 sendfile on 改为 sendfile off
vagrant 打包与分发
vagrant halt 先关闭虚拟机
vagrant package --output xxx.box
打包时,需要注意将原vagrant的配置文件 config.vm.network "private_network", ip: "192.168.50.4" 注释掉;
常用命令:
vagarnt -v ;版本号
vagrant box list;查看目前已有的box
vagrant box add ; 新增加一个box
vagrant box remove;删除指定的box
vagrant init; 初始化配置vagrantfile
vagrant up; 启动虚拟机
vagrant ssh; ssh登陆虚拟机
vagrant suspend;暂停虚拟机
vagrant resume:重新恢复启动
vagrant reload ; 重启虚拟机
vagrant halt; 关闭虚拟机
vagrant status ; 查看虚拟机状态
vagrant destroy; 删除虚拟机