Windows使用Vagrant&VirtualBox搭建虚拟开发环境
Vagrant 是一款用来构建虚拟开发环境的工具 , 我们可以通过 Vagrant 封装一个 Linux 的开发环境 , 分发给团队成员 ; 成员可以在自己喜欢的桌面系统 Mac/Windows/Linux 上开发程序 , 代码却能统一在封装好的环境里运行 , 非常便于统一开发环境
1. 安装Vagrant虚拟工作环境
安装 VirtualBox
下载地址 : https://www.virtualbox.org/
安装 Vagrant
下载地址 : https://www.vagrantup.com/
下载 box
box 是一个后缀为 box 的文件 , 实际上它就是一个包含了虚拟机配置 , 虚拟机硬盘镜像和 Vagrant 配置的压缩包 , 可以到 http://www.vagrantbox.es/ 上下载 box
附一个 CentOS7 的下载链接 : https://atlas.hashicorp.com/centos/boxes/7/versions/1703.01/providers/virtualbox.box
2. 安装虚拟机步骤
切换到需要配置虚拟机的文件夹 , 添加 box , 将下载好的 box 文件放在某个目录 , 如下得是当前目录 , 运行命令 :
vagrant box add MyCentOS7 virtualbox.box
1
先将 box 镜像下载下来安装会很快 ; 也可以使用在线安装 , 比如运行 vagrant box add centos/7 , 就会在线下载 box 镜像安装 , 但国内网速很慢 , 不推荐用
执行完添加 box 命令后 , box 中的镜像文件被放到了 /Users/astaxie/.vagrant.d/boxes/ , 在 Window 系统中是放到了C:\Users\当前用户名\.vagrant.d\boxes\ 目录下
初始化
vagrant init MyCentOS7
启动虚拟机
vagrant up
出现 Timed out while waiting for the machine to boot... , 但又无法定位错误的话 , 可以编辑虚拟机配置目录下的 Vagrantfile 文件 , 启动 VirtualBox 的 GUI 界面 , 配置如下 config.vm.provider "virtualbox" do |vb| \ vb.gui = true \ end , 然后 vagrant reload 重启 , 虚拟机启动时就有 GUI 界面了 , 同时错误也会显示出来 , 比如弹出 VT-x/AMD-V 硬件加速在您的系统中不可用 ; 您的 64-位虚拟机将无法检测到 64-位处理器 , 从而无法启动 错误时 , 就是 CPU 的虚拟化技术没开启 , 只需要进入 bios 开启就可以了
出现 "Rsync" could not be found on your PATH... 错误后 , 打开 C:\Users\{your_username}\.vagrant.d\boxes\CentOS7\0\virtualbox\Vagrantfile , 将 config.vm.synced_folder ".", "/vagrant", type: "rsync" 修改为 config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
出现 Vagrant was unable to mount VirtualBox shared folders... 错误后 , 运行 vagrant plugin install vagrant-vbguest , 再运行 vagrant reload 重启即可
登录虚拟机
Linux
vagrant ssh
Windows 终端并不支持 SSH , 所以需要安装第三方 SSH 客户端 , 比如 : Xshell , Putty , Cygwin , 我用的是 Xshell
再 Xshell 里面新建连接 , 然后输入虚拟机 IP : 127.0.0.1 , 端口号 : 2222 , 都是默认的
然后确认并连接 , 输入登录用户名 : vagrant , 登录密码 : vagrant , 也是默认的
如果 box 里的系统没有设置支持密码登录 , 这是密码的输入框会是灰色的无法输入 , 选择下面的 Public Key , 在 用户密钥 处点击浏览 , 选择刚刚配置虚拟机目录下的子目录 \.vagrant\machines\default\virtualbox\private_key , 然后便可登陆
如果想继续使用账户密码登录 , 可以进入虚拟系统后 , 修改 /etc/ssh/sshd_config , 设置 PasswordAuthentication yes
设置局域网其他主机连接登录
修改虚拟机 配置目录下的 Vagrantfile 文件
将 # config.vm.network "public_network" 修改为 config.vm.network "public_network", ip: "192.168.0.150"
意思就是解除注释 , 并用 192.168.0.150 来作为虚拟机 IP , 默认端口 22 , 这时便可从局域网内其他主机登录该虚拟机
3. 打包分发
当你配置好开发环境后 , 退出并关闭虚拟机 , 在终端里对开发环境进行打包 , 运行如下命令 :
vagrant package
打包完成后会在当前目录生成一个 package.box 的文件 , 将这个文件传给其他用户 , 其他用户只要添加这个 box 并用其初始化自己的开发目录就能得到一个一模一样的开发环境了
4. 常用配置
Vagrant 初始化成功后 , 会在初始化的目录里生成一个 Vagrantfile 文件 , 可以修改该文件进行个性化的定制
配置IP
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.network "public_network", ip: "192.168.0.150"
你可以把IP改成其他地址 , 只要不产生冲突就行
配置同步目录
将 `# config.vm.synced_folder "../data", "/vagrant_data"` 去掉 `#` , 修改为 :
`config.vm.synced_folder "/home/web/www", "/data/www"`
/home/web/www 是本地目录
/data/www 是 Linux 服务器目录
配置虚拟内存:
在文件结尾 end 字符前添加下面一段 :
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
end
温馨提示 : 修改配置后 , 记得重启虚拟机
5. 常用的操作命令
vagrant init # 初始化
vagrant up # 启动虚拟机
vagrant halt # 关闭虚拟机 , 其实是调用vitualbox的管理接口 , 关闭了虚拟机
vagrant suspend #暂停虚拟机环境
vagrant reload # 重启虚拟机
vagrant ssh # SSH 至虚拟机
vagrant status # 查看虚拟机运行状态
vagrant destroy # 销毁当前虚拟机
6. 跨网段访问虚拟机(进阶)
以上方法安装的虚拟机设置 public_network 参数后 , 可以实现局域网内相同网段的主机访问 , 注意只是相同网段 !
比如 : 我本机 IP 为 172.20.12.86 , 在 IP 为 192.168.22.56 的内网机器上部署了虚拟机 , 虚拟机 IP 设置为 192.168.22.150:22 , 那我在本机 172.20.12.86 是无法连接到虚拟机 192.168.22.150 的 ;
解决这个问题 , 我们可以用 Windows 自带的 netsh 实现端口转发 , 现在我们通过虚拟机的宿主主机 192.168.22.56 的端口 2222 转发到虚拟机 192.168.22.150 的端口 22 , 在 CMD 运行如下命令 :
// XP 系统首先安装 IPV6 , Win7以上忽略
netsh interface ipv6 install // 添加一个IPV4到IPV4的端口映射
netsh interface portproxy add v4tov4 listenaddress=192.168.22.56 listenport=2222 connectaddress=192.168.22.150 connectport=22
这时就可以在本机 172.20.12.86 直接连接虚拟机宿主主机 192.168.22.56:2222 来达到访问虚拟机的目的 ;
需要删除监听转发的端口可以运行如下命令 :
netsh interface portproxy delete v4tov4 listenaddress=192.168.22.56 listenport=2222
查看已存在的端口转发可以运行一下命令 :
netsh interface portproxy show all
原文:https://blog.csdn.net/tojohnonly/article/details/70151040
Windows使用Vagrant&VirtualBox搭建虚拟开发环境的更多相关文章
- 【Hadoop】:Windows下使用IDEA搭建Hadoop开发环境
笔者鼓弄了两个星期,终于把所有有关hadoop的环境配置好了,一是虚拟机上的完全分布式集群,但是为了平时写代码的方便,则在windows上也配置了hadoop的伪分布式集群,同时在IDEA上就可以编写 ...
- Windows+QT+Eclipse+MinGW搭建QT开发环境详细教程
Windows+QT+Eclipse+MinGW搭建QT开发环境详细教程 一.准备工具: QT-SDK for Windows:http://get.qt.nokia.com/qtsdk/qt-sd ...
- 使用Windows的Linux子系统搭建嵌入式开发环境
亲,都9102年了,还在用VMware跑嵌入式交叉编译链吗? 北京时间2019年6月13日,Windows 10发布预览版本18917.版本的主要功能是Linux子系统(windows sub ...
- Windows下使用VS2017搭建FLTK开发环境
环境介绍 系统:win10 64位 IDE:VS 2017 Community FLTK版本:1.3.4-2 下载FLTK 截止到本文编写,FLTK的最新稳定版本是1.3.4-2.我们从官网(www. ...
- Windows系统结合MinGW搭建软件开发环境
MinGW介绍 MinGW,即Minimalist GNU For Windows,它包含了GNU工具集的运行环境.GCC编译器工具集以及其它的GNU程序开发工具(如make.gawk.grep等等) ...
- linux(ubuntu)和windows下面快速搭建android开发环境
在windows和linux下面搭建android开发环境,一般要安装以下几个软件: 1.JDK安装 2.Eclipse安装 3.Android SDK安装 4.在eclipse里面安装ADT 5.e ...
- Windows平台搭建NodeJs开发环境以及HelloWorld展示—图解
Windows 7系统下搭建NodeJs开发环境(NodeJs+WebStrom)以及Hello World!展示,大体思路如下:第一步:安装NodeJs运行环境.第二步:安装WebStrom开发工具 ...
- Win7搭建NodeJs开发环境以及HelloWorld展示—图解
Windows 7系统下搭建NodeJs开发环境(NodeJs+WebStrom)以及Hello World!展示,大体思路如下:第一步:安装NodeJs运行环境.第二步:安装WebStrom开发工具 ...
- Win7搭建NodeJs开发环境
Win7搭建NodeJs开发环境以及HelloWorld展示—图解 Windows 7系统下搭建NodeJs开发环境(NodeJs+WebStrom)以及Hello World!展示,大体思路如下:第 ...
随机推荐
- spring-boot-actuator 常用配置
management: endpoints: web: base-path: "/" exposure: include: "*" endpoint: heal ...
- Linux命令——vi、cut、tr、wc、sort、uniq
vi 和 vim ^跳转当前行第一个非空字符 Ctrl + b向下翻页 Ctrl + f向上翻页 Shift + % 找到()[] {},以及在括号之间来回切换 全局替换 一次性替换文件中的所有出现的 ...
- RHEL7启动到命令模式
打开/etc/inittab 文件会看到以下信息 从中知道想要启动后就进入完整的多用户文本模式(命令行模式) 以root权限执行: ln -sf /lib/systemd/system/multi-u ...
- EF Migraiton错误解决
System.Runtime.Serialization.SerializationException: Type is not resolved for member 'Oracle.Managed ...
- linux服务器管理
1.找出目前系统开启的网络服务有哪些? netstat -tulp 2.找出所有的有监听网络的服务(包含socket状态) Netstat -lnp 3.查看所有的服务状态 Service –-sta ...
- SQL JOB实现数据库同步
数据库同步是一种比较常用的功能.以下结合我自己的体会整理的,如果有理解不完全或者有误的地方望大牛不理赐教.下面介绍的就是数据库同步的两种方式: 1.SQL JOB的方式 sql Job的方式同步数据 ...
- python 2.7安装pygame报错解决办法pygame-1.9.4-cp27-cp27m-win_amd64.whl is not a supported wheel on this platform.
python下载python安装包 https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame 下载完后进入cmd命令行执行安装,报错: pygame-1.9 ...
- 27-SQLServer系统扩展存储过程
一.注意点 1.在SQLServer中,有些系统扩展存储过程,是有风险,需要取消public角色的执行权限. 2.从SQLServer2005开始就不能通过sp_dropextendedproc 删除 ...
- 遍历windows窗口
原文 1. GetDesktopWindow GetNextWindow HWND hAll = ::GetDesktopWindow(); HWND hCurrent = ::GetNextWind ...
- javascript逻辑或(||)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...