博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
构建虚拟开发环境
阅读量:5813 次
发布时间:2019-06-18

本文共 4439 字,大约阅读时间需要 14 分钟。

构建虚拟开发环境

Date: 2019-05-27

Author: Sun

为啥不注册云服务器?

我没钱,我不想花钱,但是又想在本地搭建linux环境,学习ubuntu和centos,使用vagrant+VirtualBox搭建虚拟开发环境

VirtualBox

​ 一款功能强大的x86和AMD64 / Intel64 虚拟化产品,适用于企业以及家庭使用。VirtualBox不仅是一款功能非常丰富,性能卓越的企业用户产品。

vmware只有企业版才支持docker,virtualbox是完全支持docker

1 支持操作系统

​ VirtualBox可在Windows,Linux,Macintosh和Solaris主机上运行,并支持大量客户操作系统,包括但不限于Windows(NT 4.0,2000,XP,Server 2003,Vista,Windows 7,Windows 8,Windows 10 ),DOS / Windows 3.x,Linux(2.4,2.6,3.x和4.x),Solaris和OpenSolaris,OS / 2和OpenBSD。

2 安装VirtualBox

下载网址:

下载软件:

​ VirtualBox-5.1.24-117012-Win.exe

安装成功后,会在桌面产生virtualbox。

vagrant

​ Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。

​ Vagrant是一款用来构建虚拟开发环境的外挂工具,可以简化虚拟机配置和管理。它底层支持VirtualBox、VMware、AWS等,非常适合使用php/python/ruby/java语言开发的应用。

1. Vagrant下载地址:

进入vagrantup官网 ,

下载vagrant_1.9.7_x86_64,安装

安装完成后,cmd进入后,输入vagrant,如果出现如下信息,表示安装成功!

1466232-20190527115035383-19183050.png

​ 至此,vagrant安装成功!

2. 下载package.box

​ 去vagrant官网下载一个package.box 文件, box文件就是一个系统的镜像文件。

​ 参考网站:

​ 有不同的虚拟化环境box,包含centos,debian,ubuntu等,下载到本地。

1466232-20190527224351323-522653123.png

此时,可以选择自己想要安装的操作系统

我下载的是 vagrant-centos-7.box,见附件

centos box镜像版本:

​ vagrant-centos-7.box

ubuntu box版本:

​ xenial-server-cloudimg-amd64-vagrant.box

3. 把box加载到vagrant中

box文件就是vagrant的镜像文件

下载好之后,在该目录下执行命令加载镜像文件到Vagrant中去

查看vagrant box 使用手册 (vagrant box help)

cmd -》 cd $PATH/virtualbox-vagrant

> vagrant box add centos7 vagrant-centos-7.box

centos7是给虚拟机起的名字 ,随意写。然后可以通过以下命令查看,当前vagrant下有那些可用

> vagrant box listcentos7 (virtualbox, 0)

ubuntu对应的box地址如下:

说明:

$ vagrant box remove centos7 # 从box列表移除

4. 初始化虚拟机

​ 在你想要创建虚拟机的目录下,执行以下命令进行初始化

> vagrant  init   centos7

会生成一个Vagrantfile文件,该文件就是Vagrant的配置文件。

具体关于vagrantfile的详解见章节后面介绍。

5. 启动虚拟机

在该目录下输入:

vagrant up

等待启动,如果没有错误并且启动完成后,可以在virtualbox中看到虚拟机

说明:

​ 可能会出现错误信息,提示没有开启vt虚拟化支持

1466232-20190527122043667-1203711724.png

需要进入系统BIOS设置开启下

1466232-20190527122108904-1884369462.jpg

设置好了后,保存进入系统,再次执行如下命令

>vagrant up

等待启动虚拟机。进入步骤6

说明:关闭虚拟机,采用 vagrant halt

6. 登录到centos7系统

登录到centos7系统中

>vagrant ssh

会免密进入到centos操作系统

1466232-20190528223829277-292554919.png

进入到centos7的vagrant用户下,进行操作了!

至此,采用virtualbox结合vagrant构建虚拟开发环境已经部署完成!

(可以采用yum进行包安装和python环境安装配置)

vagrantfile知识扩展

​ Vagrantfile文件,里面包含有大量的配置信息,通过它可以定义虚拟机的各种配置,如网络、内存、主机名等,主要包括三个方面的配置,虚拟机的配置、SSH配置、Vagrant的一些基础配置

配置详解

下面是一些常用的配置:

config.vm.hostname:配置虚拟机主机名

config.vm.network:这是配置虚拟机网络,由于比较复杂,我们其后单独讨论
config.vm.synced_folder:除了默认的目录绑定外,还可以手动指定绑定
config.ssh.username:默认的用户是vagrant,从官方下载的box往往使用的是这个用户名。如果是自定制的box,所使用的用户名可能会有所不同,通过这个配置设定所用的用户名。
config.vm.provision:我们可以通过这个配置在虚拟机第一次启动的时候进行一些安装配置

​ 需要注意的是,Vagrantfile文件只会在第一次执行vagrant up时调用执行,其后如果不明确使用vagrant reload进行重新加载,否则不会被强制重新加载。

  1. box设置
config.vm.box = "centos7"

​ 该名称是再使用 vagrant init 中后面跟的名字。

2. hostname 设置

config.vm.hostname = "node1"

​ 设置hostname非常重要,因为当我们有很多台虚拟服务器的时候,都是依靠hostname來做识别的。比如,我安装了centos1,centos2 两台虚拟机,再启动时,我可以通过vagrant up centos1来指定只启动哪一台。

3. 虚拟机网络设置

config.vm.network "private_network", ip: "192.168.10.11"   // Host - only模式config.vm.network "public_network", ip: "10.1.2.61"       // Bridge模式

Vagrant的网络连接方式有三种:

NAT : 缺省创建,用于让vm可以通过host转发访问局域网甚至互联网。

host-only : 只有主机可以访问vm,其他机器无法访问它。

bridge : 此模式下vm就像局域网中的一台独立的机器,可以被其他机器访问。

config.vm.network "public_network", ip: "192.168.0.17"#创建一个bridge桥接网络,指定IPconfig.vm.network "public_network", bridge: "en1: Wi-Fi (AirPort)"#创建一个bridge桥接网络,指定桥接适配器config.vm.network "public_network"#创建一个bridge桥接网络,不指定桥接适配器

4. 同步目录设置

config.vm.synced_folder "D:/xxx/code", "/home/www/"

​ 第一个参数是宿主机的目录,第二个参数是虚拟机挂载的目录。

​ 前面的路径(D:/xxx/code)是本机代码的地址,后面的地址就是虚拟机的目录。虚拟机的/vagrant目录默认挂载宿主机的开发目录(可以在进入虚拟机机后,使用df -h 查看),这是在虚拟机启动时自动挂载的。

5. 端口转发设置

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

​ 上面的配置把宿主机上的8080端口映射到客户虚拟机的80端口,例如你在虚拟机上使用nginx跑了一个Go应用,那么你在host上的浏览器中打开http://localhost:8080时,Vagrant就会把这个请求转发到虚拟机里跑在80端口的nginx服务上。不建议使用该方法,因为涉及端口占用问题,常常导致应用之间不能正常通信,建议使用Host-only和Bridge方式进行设置

6. provision任务

​ 你可以编写一些命令,让vagrant在启动虚拟机的时候自动执行,这样你就可以省去手动配置环境的时间了。

​ 脚本何时会被执行 ?

​ 第一次执行vagrant up命令

​ 执行vagrant provision命令

​ provision任务是预先设置的一些操作指令,格式:

config.vm.provision 命令字 json格式参数config.vm.provion 命令字 do |s|    s.参数名 = 参数值end

修改完Vagrantfile的配置后,记得要重启虚拟机,才能使用虚拟机更新后的配置。reload

vagrant reload

帮助命令

vagrant help

查看vagrant版本信息

vagrant -v

Vagrant命令详解

命令  作用vagrant box add 添加box的操作vagrant init    初始化box的操作,会生成vagrant的配置文件Vagrantfilevagrant up  启动本地环境vagrant ssh 通过 ssh 登录本地环境所在虚拟机vagrant halt    关闭本地环境vagrant suspend 暂停本地环境vagrant resume  恢复本地环境vagrant reload  修改了 Vagrantfile 后,使之生效(相当于先 halt,再 up)vagrant destroy 彻底移除本地环境vagrant box list    显示当前已经添加的box列表vagrant box remove  删除相应的boxvagrant package 打包命令,可以把当前的运行的虚拟机环境进行打包vagrant plugin  用于安装卸载插件vagrant status  获取当前虚拟机的状态

转载于:https://www.cnblogs.com/sunBinary/p/10929856.html

你可能感兴趣的文章
Spring ’14 Wave Update: Installing Dynamics CRM on Tablets for Windows 8.1
查看>>
MySQL 备份与恢复
查看>>
TEST
查看>>
PAT A1037
查看>>
(六)Oracle学习笔记—— 约束
查看>>
[Oracle]如何在Oracle中设置Event
查看>>
top.location.href和localtion.href有什么不同
查看>>
02-创建hibernate工程
查看>>
Scrum之 Sprint计划会议
查看>>
svn命令在linux下的使用
查看>>
Gradle之module间依赖版本同步
查看>>
java springcloud版b2b2c社交电商spring cloud分布式微服务(十五)Springboot整合RabbitMQ...
查看>>
10g手动创建数据库
查看>>
Windwos Server 2008 R2 DHCP服务
查看>>
UVa 11292 勇者斗恶龙(The Dragon of Loowater)
查看>>
白话算法(7) 生成全排列的几种思路(二) 康托展开
查看>>
d3 v4实现饼状图,折线标注
查看>>
微软的云策略
查看>>
Valid Parentheses
查看>>
【ES6】数值的扩展
查看>>