vagrant虚拟机(oraclevm怎么用vagrant安装)
本文目录
- oraclevm怎么用vagrant安装
- virtualBox和vagrant 的区别
- vagrant 虚拟机怎么设置磁盘大小
- 使用Vagrant和直接使用虚拟机的区别
- vagrant up 启动虚拟机报错;请教是什么问题
- 使用vagrant与直接使用虚拟机有什么区别
- Vagrant使用(多个虚拟机)
- vagrant本地和虚拟机同步目录数据报错
oraclevm怎么用vagrant安装
Vagrant使用与入门技巧详解 Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境了,安装方法是非常的简单的,下面一起来看看Vagrant使用与入门技巧. 1.1 项目初始化 Vagrant使用Vagrant文件作为配置文件,该文件中定义了项目的根目录,Vagrant的很多配置都是基于这个配置的根目录进行的,同时,该文件也描述了项目运行所需要的机器类型以及其它资源(比如安装哪些软件等)。 要初始化一个Vagrant项目,使用命令vagrant init命令,使用该命令后,会在当前目录创建一个名为Vagrantfile的配置文件,修改该文件改变Vagrant项目的行为。 $ mkdir vagrant_getting_started $ cd vagrant_getting_started $ vagrant init Vagrant使用盒子(box)创建开发环境,所谓的盒子就是一个已经配置好的基础的虚拟机镜像,Vagrant避免了每次创建项目都去重新创建虚拟机,而是按照Vagrantfile文件的配置从基础镜像创建这个Box。 可以在已经存在的项目上使用vagrant init命令,该命令只会创建配置文件,并不会对原有项目造成影响。如果需要,可以将该配置文件Vagrantfile加入到项目的版本控制中,这样团队中的其它开发者就可以快速的建立起开发环境已进行运行调试了。 在创建Vagrant项目的时候,首先需要做的是添加一个Box,通过使用命令vagrant box add添加一个盒子,Vagrant网站上提供了很多其它开发者共享的Box,我们可以直接复用,在Vagrant Cloud上可以查找你需要的Box并且添加到本地。 $ vagrant box add chef/centos-6.5 添加的盒子是可以被多个项目同时使用的,项目在初始化Box的时候并不会修改添加的基础Box,而是克隆一份Box的副本,在副本上进行配置。 添加盒子之后,我们需要配置项目使用这个盒子作为基础,修改Vagrantfile文件: Vagrant.configure("2") do |config| config.vm.box = "chef/centos-6.5" end 注意: 如果这里指定的box没有添加过,则Vagrant会自动去下载该Box。 1.2 启动并运行项目 在配置完成后,就可以启动该虚拟环境了,使用命令vagrant up启动开发环境。 $ vagrant up 启动之后,我们可以使用ssh连接到该虚拟机上: $ vagrant ssh 现在你已经连接到该虚拟机上了,你可以像操作普通Linux系统一样做你希望做的事情。 注意的是,在该虚拟机上进行rm -fr /操作的时候请谨慎一些,因为在该虚拟机中,挂载了/vagrant目录,该目录是与你主机的项目共享的,删除的话会将项目删除掉。 在该虚拟机使用完成后,如果不再需要了,可以使用vagrant destroy命令移除该虚拟机。 提示: 默认配置下,虚拟机中的/vagrant目录与主机上的项目目录是同一个目录,该目录中的所有操作都会自动同步。 1.3 创建项目初始化脚本 每次初始化系统的时候都需要重新安装软件是一件非常麻烦的事,因此,Vagrant提供了一种简单的方式来帮我们完成这个过程,在建立虚拟机的时候可以指定自动执行脚本。 在项目目录下创建一个bootstrap.sh的脚本文件: #!/usr/bin/env bash apt-get update apt-get install -y apache2 rm -rf /var/www ln -fs /vagrant /var/www 该脚本是在Ubuntu环境下使用的,如果你是用的Box是CentOS,则不能使用apt-get命令了,而应该使用yum命令完成程序的安装。 接下来,我们需要配置Vagrantfile文件,让其在建立环境的时候自动执行该脚本。 Vagrant.configure("2") do |config| config.vm.box = "hashicorp/precise32" config.vm.provision :shell, path: "bootstrap.sh"end 这样配置之后,使用命令vagrant up启动虚拟机的时候,该脚本就会自动执行,完成虚拟机的初始化了。 如果你的虚拟机已经处于运行状态了,可以通过使用命令vagrant reload --provision快速的重新启动虚拟机,命令中的--provision告诉Vagrant在重启的时候运行provisioners的配置,通常情况下,provisioners的配置只在执行vagrant up命令的时候才会执行。 1.4 网络配置 Vagrant提供了端口转发功能,通过将虚拟机中的端口映射到主机的不同端口,我们可以在主机中使用映射后的端口访问虚拟机中的服务。 例如: Vagrant.configure("2") do |config| config.vm.box = "hashicorp/precise32" config.vm.provision :shell, path: "bootstrap.sh"config.vm.network :forwarded_port, host: 4567, guest: 80end***隐藏网址*** 1.5 Teardown(虚拟机卸载) 当你希望切换到其它项目上开发或者是当你要出去吃午饭,你下班了的情况下,你需要清理一下你的开发环境,这个时候,Vagrant提供了三种方式,它们各有各自的优缺点,因此,你需要自己去权衡你希望采用哪种方式。 Suspending (挂起) 执行命令vagrant suspend将会保存当前虚拟机的运行状态并且停止它,跟主机挂起是一样的,当你需要再次启动的时候,使用vagrant up命令将会恢复之前的运行状态。这种方式的优点是,启动很迅速,可以很快进入开发环境中,缺点是会占用比较多的磁盘空间,因为虚拟机将内存中的数据都存储到了磁盘上。 Halting(停止) 这种方式是正常的停止虚拟机,使用虚拟机的关闭命令完成,当需要重新使用的时候使用命令vagrant up重新启动虚拟机,该方法与计算机冷启动一样,缺点是启动的时候耗时比较多,依然占用部分磁盘空间。 Destroying(销毁) 该方式将会销毁虚拟机,不会再占用磁盘空间,下次启动的时候将会重新建立开发环境,包括下载软件等等。 Vagrant使用技巧 1.1 如何调试 在使用Vagrant过程中,难免会出现一些不稳定的因素而造成一些使用上的bug,因此,Vagrant提供了Debug日志的方式用于调试,可以方便的查找错误的原因,以便快速解决问题。 要允许启用日志功能,需要在主机上设置环境变量VAGRANT_LOG为需要的日志级别,包含debug, info, warn, error。当你需要查找错误产生的原因的时候,通常使用日志级别info,这种情况下你可以得到包含重要信息的比较干净的日志。 在Linux和Mac系统上,你可以通过下面的方式设置: $ VAGRANT_LOG=info vagrant up 在Windows下,你需分开写: $ set VAGRANT_LOG=info $ vagrant up 当然,你也可以不用这种方式,只需要在启动的时候增加参数--debug即可。 $ vagrant up --debug 1.2 如何使用插件 Vagrant中提供了很多可以直接使用的插件,使用这些插件,可以极大的减少配置开发环境的工作量,Vagrant的大部分核心功能都是基于插件实现的。 Vagrant使用命令vagrant plugin install安装插件。 $ vagrant plugin install vagrant-example-plugin插件安装完成后,将会在Vagrant启动的时候自动加载,如果插件加载过程中出现错误,不会影响Vagrant的启动,而是会输出插件加载失败的错误信息。 插件安装完成后,你应该查看插件开发文档获取如何使用该插件,一般可以通过vagrant命令使用插件的命令,如果插件提供了provision的话,可以通过config.vm.provision进行配置。 插件的更新比较简单,使用命令vagrant plugin update即可更新全部插件,使用vagrant plugin update NAME可以更新指定插件。 插件卸载使用命令vagrant plugin uninstall。 $ vagrant plugin uninstall vagrant-example-plugin查看安装了哪些插件: vagrant plugin list 1.3 如何配置网络 在Vagrant中,所有的网络配置都在Vagrantfile中的config.vm.network方法中。 Vagrant.configure("2") do |config| # other config here config.vm.network "forwarded_port", guest: 80, host: 8080end 每一种网络类型都有一个标识符如:forwarded_port,它后面跟着一串配置选项。在端口跳转的例子中,提供了两个参数,虚拟机中的端口号和主机中映射的端口号。 如果需要多个网络配置,使用多个config.vm.network即可。 如何进行端口跳转 端口跳转功能允许你通过TCP或者是UDP直接访问主机上的指定端口,该端口的请求会被转发到虚拟机上的指定端口。 Vagrant.configure("2") do |config| config.vm.network "forwarded_port", guest: 80, host: 8080end 上面的配置将会主机上对8080端口的访问转发到虚拟机上的80端口。 下面是该配置(forwarded_port)支持的参数: guest (int) 希望暴漏给主机的虚拟机端口 guest_ip(string) 希望绑定的IP,该IP与guest指定的端口暴漏给主机,默认为空,所有网卡接口。 host(int) 希望使用来访问虚拟机的guest端口的主机端口号host_ip(string) 主机的IP地址,用于绑定到跳转的端口,如果不指定,则使用所有IP。 protocol(string) 可选tcp或者udp,默认为tcp. Vagrant.configure("2") do |config| config.vm.network "forwarded_port", guest: 2003, host: 12003, protocol: ’tcp’ config.vm.network "forwarded_port", guest: 2003, host: 12003, protocol: ’udp’ end 1.4 如何配置同步目录 使用config.vm.synced_folder方法配置同步目录。 Vagrant.configure("2") do |config| # other config here config.vm.synced_folder "src/", "/srv/website"end 以上配置中,synced_folder方法的第一个参数为主机上要跟虚拟机同步的目录,第二个参数为要挂载到虚拟机上的路径。 可以配置参数disabled: true禁止目录同步。 Vagrant.configure("2") do |config| config.vm.synced_folder "src/", "/srv/website", disabled: trueend 默认情况下,Vagrant设置同步文件夹的属主/组为SSH用户,如果需要修改的话,使用下面配置: config.vm.synced_folder "src/", "/srv/website",owner: "root", group: "root"
virtualBox和vagrant 的区别
命令行的全部价值就在于 “自动化”-》“可重复”手工点点点半天方便还是直接 "vagrant init precise32; vagrant up; vagrant ssh" 方便?把左边引号里面的东西粘贴到命令行里一回车,执行完毕你已经有一个运行起来的标准机器了,什么手工操作能比? 赞同2反对,不会显示你的姓名为了些许的便利,装了一个大坨在机器上,持续占用浪费大量CPU资源,简直是给自己添堵。另外,配置开发环境简直不叫事,分分钟搞定。vagrant适合大型的且菜鸟较多的团队。 赞同1反对,不会显示你的姓vagrant 比 virtualbox 等虚拟机软件高阶vagrant 会呼叫 virtualbox 等为其服务若要更深入了解差异,可将 vagrant 与 vboxmanage (by virtualbox)命令的参数与功能做一比较对于服务器,没有图形界面,virtualbox 怎么点?使用 virtualbox headless 启动,你试试配置端口转发和文件夹挂载,那参数表的长度。vagrant 本身是 DSL 语言。对 virtualbox headless 进行操作,让配置更人性化,把冗长的命令简化了,把大部分参数配置在可读性很强的配置文件中,使用简单的命令就可以完成操作。因为今天刚刚接触vagrant,我来试着描诉一下,不对之处还请指正。我们开发的时候,面临的一个大问题是,环境不同意,最常见的就是:哎呀,在我机器上没问题,怎么在你这就不能跑了。可能配置不一样,或者缺少某个依赖。多人合作或者跨平台开发很可能遇到这些问题。那么有没有办法统一开发环境呢?vagrant就是做这个的,配置好了开发环境,打包到一个.box 文件(或者直接使用别人打包好到.box 文件),这就是一个虚拟机,下次换环境的时候,直接使用这个虚拟机开发就可以了。这就是vagrant的方便之处。所以vagrant 依赖于virtualbox 或者 vmware等虚拟机软件。还有更多的功能我还没很深的体会,所以先说这么多:)- Vagrantfile 可以清楚描述你希望这台 VM 做的事情(内存数,IP 地址,第一次启动时的 Puppet 部署,端口转发) - Vagrantfile 的变化可以用 git 追踪 - 同时启动 N 台搭建模拟集群非常方便一般折腾用virtualbox,频繁折腾用vagrant1. virtualbox的共享目录/端口映射单独配置很麻烦,用vagrant极为方便,没有用vagrant之前,我甚至不知道vb有这两个功能 2. vagrant 提供了一堆 mini ubuntu iso,这个在前2年非常稀有 3. 而且这些iso里面的virtualbox tools都帮你安装好了,很方便vagrant还包括OS起来之后的provision,比如我用git维护自己的vagrant配置,无论用公司pc还是自己的mac,通过vagrant up就能把自己的开发环境全部搭好。尤其涉及到你的开发平台为了跑特定程序需要起各种服务的时候,vagrant简直太有用了。 而且用vagrant管理的时候,还可以把对应的配置share给测试,这样别人帮你做测试的时候就能省掉很多环境搭建的工作,而且不用担心测试环境跟你开发环境有差别。Vagrant 是一个可创建轻量级、高复用性和便于移植的开发环境的工具。在非专业人士眼里,这意味着Vagrant抛弃开发环境中所有让人头痛的设置代之为了一个单一的配置文件,你可以选择你的服务器所需要的特性予以保留。你将不会再被XAMMP,手动配置虚拟环境,或者使用FTP远程所卡住。实际上使用 Vagrant也需要虚拟机,当即使用Vagrant打包系统后会发现系统里面有一个Vagrant的进程,只是说你可以使用Vagrant的一些命令简单的操作虚拟系统,Vagrant的目的在于有一个统一的环境,不会出现“在我的电脑上没有问题,怎么你那里不行”这样的问题。实际上还是建议直接使用虚拟机,我用过vagrant搭建环境,但最后还是不如直接使用虚拟机爽
vagrant 虚拟机怎么设置磁盘大小
通过图形界面。打开virtualbox。然后在设置 》存储 控制器点击添加磁盘。就可以了
vb.customize createhd 然后 storageattach
调大磁盘的方式可以通过vagrant modifyhd指令实现,但是貌似只支持vdi格式的,必要的话找一下转化格式的方法
如果要使用多一些磁盘空间,映射一个路径进去挂载就可以了
使用Vagrant和直接使用虚拟机的区别
vagrant 是一个非常好用的工具,可以用它来在单台物理机器编程管理多个虚拟机(vms)。其支持原生VirtualBox,并同时提供了对VMware Fusion、Amazon EC2虚拟机集群的插件支持。vagrant提供了极易使用、基于Ruby的内部DSL,允许用户使用它们的配置参数定义一个或多个虚拟机。另外,对于自动部署,vagrant支持多种机制:可以使用puppet,chef或者用于在vagrant配置文件中定义的所有虚拟机上自动安装软件程序和配置的shell脚本等。所以,使用vagrant可以在运行着多台vm的系统上定义复杂的虚拟框架,是不是很酷?vagrant的典型使用案例是以简单并且一致的方式构建工作或者开发环境。在Eligotech(原作者公司)公司里,开发人员正在开发一个产品,目标是让用户简单的使用Apache Hadoop、CDH(Cloudera的开源版本)。开发人员经常是为了测试需要在机器上安装hadoop环境。他们发现vagrant在这方面是一个非常便利的工具。
vagrant up 启动虚拟机报错;请教是什么问题
1.是否开启UAC了?尝试使用右键-使用管理员身份运行,试试。 2.如果还出问题,可以尝试修改vmx文件中的vmci0.present = "TRUE"行改为vmci0.present = "false"。 3.在VMWare虚拟机的软件界面上,虚拟机设置。在 虚拟机设置 -》 选项 -》 客户...
使用vagrant与直接使用虚拟机有什么区别
vagrant 是一个非常好用的工具,可以用它来在单台物理机器编程管理多个虚拟机(vms)。 其支持原生VirtualBox,并同时提供了对VMware Fusion、Amazon EC2虚拟机集群的插件支持。 vagrant提供了极易使用、基于Ruby的内部DSL,允许用户使用它们的配置。
Vagrant使用(多个虚拟机)
进去就能看到大大的download,像安装普通软件一样安装即可,如果还不懂可以参考下面网址的安装说明***隐藏网址*** 在命令行进入该目录,输入 vagrant up 安装路径下会有如下的文件 其中.vagrant里面有用ssh链接密钥 使用MobaXterm链接 左上角新建session 输入前面配置文件配置的ip
vagrant本地和虚拟机同步目录数据报错
上次写了一篇 windows下VirtualBox vagrant的安装配置 之前因为要赶项目没继续往下操作,今继续操作时碰到了以下问题,记录如下。
在本地和虚拟机同步时,修改了配置文件
config.vm.synced_folder “E:/apiweb/git/viphper”, “/home/wwwroot/default/viphper”
但是用 vagrant reload 重启时,总是在报错,数据没办法同步,错误如下:
Vagrant was unable to mount VirtualBox shared folders. This is usually because the filesystem “vboxsf” is not available . This filesystem is made available via the VirtualBox Guest Additions and kernel module. Please verify that these guest additions are properly installed in the guest. This is not a bug in Vagrant and is usually caused by a faulty Vagrant box. For context, the command attempted was:
标红的是重点,说明不支持 vboxsf,需要安装相应的插件。
在window下的cmd中执行
vagrant plugin install vagrant-vbguest
然后重启:vagrant reload
看看具体效果是不是可以啦!
更多文章:
javascript数组 元素个数(js 判断 数组 元素 多少个)
2024年3月24日 09:20
python中未定义怎么解决(用vs2017写python总是出现未定义的问题)
2024年7月10日 02:22
unicode转中文在线(如何将Unicode码转换成汉字显示)
2024年7月18日 02:43
指针c语言简单程序(C语言指针简单习题(刚学的指针,程序别太复杂))
2024年5月23日 07:37
免费logo素材网(有什么网站可以在线设计LOGO的吗_logo免费设计网站有哪些)
2024年6月28日 05:20
deprecated declaration(如何在eclipse 中设置自动添加Javadoc注释)
2024年7月21日 20:20
selected是什么意思(select和selected作为形容词时意思有区别吗)
2024年6月22日 11:10
notification翻译(notifications是什么意思)
2024年6月20日 05:25
汇编程序员可见的寄存器(汇编程序中,程序员可以访问的寄存器 A程序计数器(PC) B指令寄存器(IR) C存储器数据寄存器(MDR))
2024年5月25日 22:50
我申请了免费CDN流量包,怎么还会扣费?百度cdn免费的好用吗
2023年10月16日 04:20