Vargrant配置

由于开发的时候对于开发环境以来很大,如果有统一的虚拟机,那么可以解决很多因为环境导致的小问题。

先安装virtualbox,再安装vargrant

virtualbox我觉得一直都很好用,其中用得最多的功能就是端口转发。

其中镜像市场是:https://app.vagrantup.com/boxes/search

还有一个官方的镜像:https://github.com/rails/rails-dev-box
可以直接拿来使用。

呃呃呃,遇到一个比较大鹅问题是:国内下载不知道是不是我网速的原因,好卡,好慢。

rails的配置的话,官方有一个:https://github.com/rails/rails-dev-box
配置文件的内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure('2') do |config|
# FIXME: When upgrading to a future version of Ubuntu check if the workaround
# near the top of bootstrap.sh is still needed. If not, please delete it.
config.vm.box = 'ubuntu/artful64' # 17.10
config.vm.hostname = 'rails-dev-box'

config.vm.network :forwarded_port, guest: 3000, host: 3000

config.vm.provision :shell, path: 'bootstrap.sh', keep_color: true

config.vm.provider 'virtualbox' do |v|
v.memory = ENV.fetch('RAILS_DEV_BOX_RAM', 2048).to_i
v.cpus = ENV.fetch('RAILS_DEV_BOX_CPUS', 2).to_i
end
end

配置共享文件夹

1
config.vm.synced_folder "./share_dir", "/vagrant", create: true, owner: "root", group: "root", mount_options: ["dmode=755","fmode=644"], type: "rsync"
1
2
3
4
5
6
7
8
config.vm.synced_folder  
"./share_dir", # 配置本地共享目录
"/vagrant", # 配置虚拟机对应的挂载目录
create: true, # 如果虚拟机上对应的文件夹不存在, 则创建
owner: "root", # 指定目录的所有者
group: "root", # 指定目录的所属组
mount_options: ["dmode=755", "fmode=644"], # 指定文件夹权限和文件权限
type: "rsync" # 指定文件同步方式, 一般让系统选择, 不指定

重启虚拟机

1
vagrant reload master

看到启动的虚拟机配置,看到了修改VirtualBox的配置,做了端口转发和文件共享。

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
vagrant up //启动虚拟机
vagrant ssh //连接登录ssh

vagrant reload //重新加载配置文件

vagrant halt //关闭虚拟机,关机

vagrant suspend //暂停虚拟机

vagrant resume //恢复虚拟机

vagrant destroy //删除虚拟机

小坑

发现我设置完共享文件夹之后,ssh一直链接不上,提示public key error。

我发现网上的配置很多都是错的,无语。。。

也就常规操作ssh 公钥登录。我在我MAC生成证书,identify-file指定为私钥匙,然后我把公钥放到测试得虚拟机上面。

1
2
3
4
5
6
ssh-keygen -t rsa
//输入你想存储的位置
//然后看到新版的vagrant ssh-config 设置的私钥的命名是.vagrant/machines/default/virtualbox/private_key
//将私钥命名为这样子
//然后把公钥上传到测试机器,,ssh/authorized_keys
//完成

这里可能产生一个安全问题:会不会有可能,多个机器使用一套公私钥。一台机器沦陷,大部分机器都沦陷了。

参考链接