在Mac下使用Vagrant+VirtualBox构建跨平台开发环境

1、下载、安装VirtualBox
官方下载点这里
2、下载、安装Vagrant
官方下载点这里
3、下载系统box文件
官方系统box文件
4、先将box文件添加进Vagrant

#title是自己起的名字
#url是自己在第三步下载的box文件路径
vagrant box add {title} {url}

5、初始化Vagrant

#新建目录
mkdir vagrant_project
#打开此目录
cd vagrant_project
#初始化,title为你上方设置的title
vagrant init {title}

6、从Vagrant启动VirtualBox虚拟机

vagrant up

出现以下代码则启动成功

==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection reset. Retrying...
==> default: Machine booted and ready!
[default] GuestAdditions 6.1.4 running --- OK.

到此结束虚拟机就算启动成功了。但是还不能真正的进入开发步骤


下面讲解其他问题
1、ssh登陆问题
刚刚启动好虚拟机,这个时候还不能使用上面的ip和端口号进行ssh账号密码宿主登陆。
需要更改ssh登陆权限(此处需要切换为root用户)

#使用Vagrant的ssh命令登陆
vagrant ssh
#先更改root账户密码,根据提示需要输入两次密码
sudo passwd root
#切换为root账户(需要输入上一步中修改的root密码)
sudo -i 
#使用vi编辑器打开 /etc/ssh/sshd_config 配置文件进行修改。
vi /etc/ssh/sshd_config

需要更改如下配置

PasswordAuthentication yes
PermitRootLogin yes
#这里简单讲解vi编辑器的一些操作
#先按键盘的 i 键进入编辑模式,修改完成以后需要按 esc 按键退出编辑模式
#然后输入 :wq   就可以退出并保存了
# 需要重新载入配置
service sshd restart

然后需要使用命令退出ssh模式

logout

这个时候就可以使用账号密码进行ssh登陆了
账号:root
密码:(为上面所修改的root密码)
2、网络问题(需要修改第五步的时候选择的文件夹内的Vagrantfile配置文件)

  • Forwarded port(端口映射)
    是指将宿主计算机的端口映射到虚拟机上的某个端口上,访问宿主计算机的该端口时,请求实际会被转发到虚拟机上指定的端口,配置文件设置语法为:
config.vm.network :forwarded_port, guest: 80, host: 8889

优点:简单、容易理解、容易实现外网访问虚拟机。
缺点:需映射很多端口时较麻烦、不支持在宿主机器上使用小于1024的端口来转发(如:不能使用SSL的443端口来进行https连接)。

  • Public network(公有网络)
    这种配置下,虚拟机享受实体机一样的待遇,一样的网络配置,vagrant 1.3版本以后这种配置也支持设定固定IP。
config.vm.network "private_network", ip: "192.168.50.4" # 固定IP

还可以设置动态IP,配置语法如下:

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

优点:安全,只能自己访问。
缺点:因私有原有,所以其他团队成员不能和你协作。

  • Public network(公有网络)
    这种配置下,虚拟机享受实体机一样的待遇,一样的网络配置,vagrant 1.3版本以后这种配置也支持设定固定IP,配置语法如下:
config.vm.network "public_network", ip: "192.168.50.4"

还可以设置桥接网卡,配置语法如下:

config.vm.network "public_network", bridge: "en1: Wi-Fi (AirPort)"

优点:方便团队协作,别人可以访问你的虚拟机。
缺点:需要有网络,有路由器分配IP
3、共享目录
有时候,我们希望虚拟机能和我们的主机共享一些文件夹,这时候在vagrant的配置文件中进行配置来达到共享目录的目的。
​ vagrant的共享目录类型有:

  • 配置语法:(具体这里可以百度。有更为详细的介绍)
    config.vm.synced_folder "/hostPath", "/www/wwwroot", owner:"www", group:"www", create:true  
    

设置完成以后需要重启虚拟机,但是启动的时候可能会报错,无法挂载磁盘。使用以下命令

#添加vagrant插件就可以解决无法挂载的问题。
vagrant plugin install vagrant-vbguest

附上vagrant的命令

#--列出本地环境中所有的box
vagrant box list
#--添加box到本地vagrant环境
vagrant box add box-name(box-url)
#--更新本地环境中指定的box
vagrant box update box-name
#--删除本地环境中指定的box
vagrant box remove box-name
#--重新打包本地环境中指定的box
vagrant box repackage box-name
#--启动虚拟机
vagrant up
#--关机
vagrant halt
#--销毁虚拟机
vagrant destroy
#--虚拟机重启
vagrant reload

Vagrant官方文档地址:https://www.vagrantup.com/docs/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,639评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,277评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,221评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,474评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,570评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,816评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,957评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,718评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,176评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,511评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,646评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,322评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,934评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,755评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,987评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,358评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,514评论 2 348

推荐阅读更多精彩内容