扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Vagrant使用与入门技巧详解
创新互联专注于企业营销型网站建设、网站重做改版、马鞍山网站定制设计、自适应品牌网站建设、H5页面制作、商城网站建设、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为马鞍山等各大城市提供网站开发制作服务。
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
使用如上配置启动虚拟机之后,就可以在主机上使用http//127.0.0.1:4567访问虚拟机上的Apache提供的Web服务了。
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"
要执行 PXE 安装步骤,需具备以下条件:
必须已完成对网络基础结构的设置以支持 PXE。请参见配置 Linux 服务器以支持 PXE 安装。
PXE 服务器可访问的 CD/DVD 驱动器。
Oracle VM Server 分发介质集。可能是一组 CD 或一张 DVD。
创建用于存放 Oracle VM Server 软件的目录结构。
# mkdir -p /home/pxeboot/ovm_svr_2.2/
输入以下命令,将每个 OVM 分发 CD 的内容复制到相应的 PXE 子目录中:
注 - 仅当卸载 CD/DVD 驱动器后才能弹出 CD 并插入下一张 CD。
# mount dev/cdrom /mnt/cdrom
# cp -r /mnt/cdrom/* /home/pxeboot/ovm_svr_2.2/
# umount /mnt/cdrom
如果是通过 DVD 安装,则仅需插入一次即可。复制完成后,请继续下一步。
将 vmlinuz 和 initrd.img 文件复制到相应的 PXE 目标子目录中:
# cp /home/pxeboot/ovm_svr_2.2/images/pxeboot/vmlinuz /home/pxeboot/ovm_svr_2.2
# cp /home/pxeboot/ovm_svr_2.2/images/pxeboot/initrd.img /home/pxeboot/ovm_svr_2.2
使用文本编辑器,在 PXE 服务器上的以下位置创建 kickstart 文件 (ks.cfg):
/home/pxeboot/ovm_svr_2.2/ks.cfg
添加所需的 kickstart 命令。
如果您知道所需的命令,请键入这些命令。或者,您可以复制并插入以下内容:
lang en_US
#langsupport en_US
keyboard us
#mouse genericusb
timezone --utc America/Los_Angeles
rootpw xxxx
reboot
bootloader --location=mbr
install
nfs --server n.n.n.n --dir /home/pxeboot/ovm_svr_2.2
clearpart --all
part /boot --fstype ext3 --size 512 --ondisk sda
part swap --size 4096 --ondisk sda
part / --fstype ext3 --size 1 --grow --ondisk sda
network --bootproto dhcp
# password : abc123
ovsagent --iscrypted Y2fEjdGT1W6nsLqtJbGUVeUp9e4=
#ovsmgmntif eth0
auth --useshadow --enablemd5
firewall --disabled
#Do not configure the X Window System
skipx
text
%packages
@Everything
%pre
%post --nochroot
%post
其中,n.n.n.n 是 PXE 服务器的 IP 地址。检查并确保 --dir 后指示的位置指向映像的顶层。
保存 kickstart 文件。
使用文本编辑器,创建 PXE 配置文件(将命名为 default)。此文件定义了在网络引导过程中向目标系统显示的菜单。
下面显示了 Oracle VM 菜单的两个示例标签:
注 - 以一个连续字符串的形式在 append 和 ks.cfg 之间键入整个文本块。文本块必须连续,不可按回车键。
label ovm_svr_2.2 sda eth select
kernel ovm_svr_2.2/images/pxeboot/vmlinuz
append initrd=ovm_svr_2.2/images/pxeboot/initrd.img load_ramdisk=1 network
ks=nfs:n.n.n.n:/home/pxeboot/ovm_svr_2.2/ks.cfg mem=32g
label ovm_svr_2.2 sda eth select serial console
kernel ovm_svr_2.2/images/pxeboot/vmlinuz
append initrd=ovm_svr_2.2/images/pxeboot/initrd.img load_ramdisk=1 network
ks=nfs:n.n.n.n:/home/pxeboot/ovm_svr_2.2/ks.cfg mem=32g
console=ttyS0,115200
其中,n.n.n.n 是 PXE 服务器的 IP 地址。
在 PXE 服务器上的以下位置将文件另存为 default:
/home/pxeboot/pxelinux.cfg/default
在VirtualBox虚拟机软件上安装Win7虚拟系统,需要先下载VirtualBox安装;下载Win7 ISO镜像。软件工具:Oracle VM VirtualBox 5.0.20、win7系统镜像。
1、在电脑上下载Oracle VM VirtualBox 5.0.20虚拟机安装。然后下载一个WIN7的系统镜像保存到电脑。打开VMbox,在菜单上点击新建。
2、在名称那里输入一个系统的名字,可以自定义修改。在类型中选择系统类型,选择windows。在版本中选择系统的版本,与下载使用的WIN7镜像一致。这里使用是64位的,就选择WIN7 64。最后在点击下一步。
3、设置内存大小。拉动1那个模块进行调节大小。内存不能超过实际物理内存。建议小于物理内存的一半。内存大小要与4对齐,也就是要大小要是4的倍数。然后点击下一步。
4、选择“现在创建虚拟硬盘”,然后点击“创建”。
5、选择VMDK格式,然后点击下一步。
6、选择固定大小,然后下一步。
7、在标1那里点击一个选择这个WIN7虚拟系统的保存位置。在标2那里输入这个系统的硬盘大小。建议是在25G以上。然后点击创建。
8、然后开始创建这个虚拟WIN7使用的硬件大小。需要一点时间,看进度条走完。
9、进度条走完后就返回VBOX窗口,点击启动。准备开始安装WIN7。
10、在选择启动盘中点击文件夹符号,需要选择ISO系统镜像。
11、在电脑上选择下载的WIN7系统镜像,然后点击打开。
12、选择好后,点击“启动”。
13、然后就开始进行虚拟机中安装系统了。这个跟平常的电脑安装系统一样。按默认的设置,然后点击下一步。然后点击开始安装。
14、点击接受许可条款,然后点击下一步。接下去选择自定义安装,然后就开始复制系统文件进行安装了。期间会多次重启,都不需要去操作的。直到出来设置Windwos,输入用户名,点击下一步。
15、输入密钥,如果有就输入,点击下一步。如果没有就点击跳过。后面在输入或者使用其他工具激活。
16、接下来都是下一步,按提示选择一些升级、网络这些,然后最后就进入到桌面了。
VMware Workstation是VM公司的主打产品,是我认为虚拟机中最好的。Virtual BOX好像是微软的吧,也不错,但是我建议选择主流的VMWARE workstation,主流版本是7.x,最新稳定版本是8。
安装过程是这样的,首先要安装操作系统,这个如果不会的,欢迎楼主单开一贴,我再回答。根据操作系统的不同,安装oracle方法不同。Windows下直接运行oracle university就可以了,然后点击点击下一步,就OK了。Linux比较复杂,如果不明白,也欢迎单开一贴,我给楼主发个教程。
我相信楼主的主要问题在于,不知道如何将oracle安装程序搞进虚拟机里,这里以vm Windows为例,介绍几个方法:
1、在tools菜单下,有个安装vwmare tools,安装以后,可以通过鼠标拖拽(drag and drop),把oracle直接拖进虚拟机,然后就可以安装了。
2、右击虚拟机实例,选择 option,有个开启共享(share files),假设设在d:\share,在虚拟机中,右击我的电脑,映射到d:\share,把oracle安装程序放在共享文件夹下。
3、通过搭建ftp网络,一般我们使用filezilla工具,直接进行FTP传输。
4、将oracle安装程序做成ISO,将虚拟机光驱载入这个ISO(默认是AUTO,改成use iso),虚拟机中就会载入oracle光碟。
您好,当然是这样:
1、首先打开虚拟机,启动已经做好的虚拟系统。
2、进入系统之后,接下来,点击菜单 设备-安装增强功能。点击之后系统没有反应,没有关系,这是正常现象,因为它已经显示在了系统里面的移动存储设备的位置。
3、点击进入这个虚拟存储设备,选择里面的VBoxWindowsAdditions.exe 这个文件包安装,安装的过程就是一直下一步,然后重启电脑(最后一步会自动重启电脑的)。
4、重新进入电脑之后,再次点击菜单栏设备-共享文件夹 或者是右键点击虚拟机下面的共享文件夹图标,进入共享文件夹设置界面。具体设置和下面图片是一样的。可根据具体情况设置可读和完全控制属性。至此,共享文件夹设置完成。效果怎么样呢。下面我们来试试。
5、点击桌面上面的网络图标进入。这里可以看到显示出来的计算机。(就是虚拟的共享电脑)。
6、双击进入之后,就可以看到我们刚刚共享出来的文件夹了。双击进入,在这个文件夹里面,我们从真实物理电脑里面存放的文件,虚拟电脑都是一样可以看到,并且可以使用的。
你说的启动之后是安装完系统之后吗?? 看你的图片 说明你至少已经完成了这几步骤:
1。成功安装了 oracle vm这个软件
2。成功创建了一个虚拟机 并能够启动这个这个虚拟机
但是 我有几点需要你自己确认:
你是否在这个创建好的虚拟机上装上系统了??(点击你虚拟机的小光盘图标 指定到你的可启动的iso镜像文件 启动 虚拟机 就开始安装过程了 )
如果你已经配置好了 iso 镜像文件 但是启动出现了如下错误,那么说明 你的iso镜像文件是不可作为引导盘启动的
如果你已经安装完系统 第一次启动出现这个问题 说明你的系统安装成功 你需要重新在这个虚拟机上装系统
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流