准备工作:
下载安装 VirtualBox :https://www.virtualbox.org/
下载安装 Vagrant :http://www.vagrantup.com/
下载需要使用的 box :
官方提供的范例:http://files.vagrantup.com/precise32.box
还可以在 http://www.vagrantbox.es/ 这里下载更多不同系统甚至是已经配置好环境直接可以用的box,虽然可以直接在Vagrant直接使用网址,由Vagrant自动下载安装,但是考虑到网络情况,还是建议自行先下载好。
由于习惯用CentOS,于是我就下了CentOS 6.3 x86_64 minimal,这个Box根据个人情况进行选择即可。
设置环境:
安装完成并且重启好系统之后就可以开始设置环境了。
首先在本地创建好工作目录,并在命令行下切换到对应目录
.box
base 表示指定默认的box,也可以为box指定名称,比如 centos63 ,使用base时,之后可以直接使用 vagrant init 进行初始化,如果自行指定名称,则初始化的时候需要指定box的名称。
???.box 是box对应的文件名,这里可以是本地保存box的路径,也可以是可以下载box的网址,如果是网址的话,Vagrant会自动启动下载。
设置好box之后,在当前工作目录运行
生成对应的Vagrantfile。通过文本编辑器打开Vagrantfile可以进行一些进一步的常用配置:
网络配置:
Vagrant的网络有三种模式
1、较为常用是端口映射,就是将虚拟机中的端口映射到宿主机对应的端口直接使用 ,在Vagrantfile中配置:
1 |
config.vm.network "forwarded_port", guest: 80, host: 8080 |
guest: 80 表示虚拟机中的80端口, host: 8080 表示映射到宿主机的8080端口。
2、如果需要自己自由的访问虚拟机,但是别人不需要访问虚拟机,可以使用private_network,并为虚拟机设置IP ,在Vagrantfile中配置:
1 |
config.vm.network :private_network, ip: "192.168.1.104"
|
192.168.1.104 表示虚拟机的IP,多台虚拟机的话需要互相访问的话,设置在相同网段即可
3、如果需要将虚拟机作为当前局域网中的一台计算机,由局域网进行DHCP,那么在Vagrantfile中配置:
1 |
config.vm.network :public_network |
目录映射:
既然是开发环境,那么开发工作肯定还是需要在本地完成,而不是都要进到虚拟机中去完成,虚拟机就好好在后台运行服务就好了,不然就本末倒置了,所以这里就需要使用目录映射功能,将本地的目录映射到虚拟机的对应目录。
默认情况下,当前的工作目录,会被映射到虚拟机的 /vagrant 目录,当前目录下的文件可以直接在 /vagrant 下进行访问,当然也可以在通过 ln 创建软连接,如
1 |
ln -fs /vagrant/wwwroot /var/www
|
来进行目录映射,当然,从自动化配置的角度,能不进系统就不需要进系统,所以在Vagrant也可以进行目录映射的操作:
1 |
config.vm.synced_folder "wwwroot/" , "/var/www"
|
前面的参数 “wwwroot/” 表示的是本地的路径,这里使用对于工作目录的相对路径,这里也可以使用绝对路径,比如: “d:/www/”
后面的参数 “/var/www” 表示虚拟机中对应映射的目录。
运行脚本:
虽然不是必须,但是如果有需要在启动时运行一些脚本(环境的安装或者有些服务的启动需要在完成目录映射之后进行),可以编辑脚本,类似如下(摘自Vagrant Document):
1 |
#!/usr/bin/env bash |
2 |
|
3 |
apt -get update
|
4 |
apt -get install -y apache2
|
5 |
rm -rf /var/www
|
6 |
ln -fs /vagrant /var/www
|
保存在和Vagrantfile相同目录,文件名自取(如 boot.sh),然后在Vagrantfile中添加:
1 |
config.vm.provision :shell, :path => "boot.sh"
|
当初次使用基本的设置都完成则之后,则可以使用 vagrant up 启动虚拟机
01 |
Bringing machine 'default' up with 'virtualbox' provider...
|
02 |
[default] Setting the name of the VM... |
03 |
[default] Clearing any previously set forwarded ports...
|
04 |
[default] Creating shared folders metadata... |
05 |
[default] Clearing any previously set network interfaces...
|
06 |
[default] Preparing network interfaces based on configuration... |
07 |
[default] You are trying to forward to privileged ports (ports < = 1024). Most operating systems restrict this to only privileged process (typicallyprocesses running as an administrative user). This is a warning in case |
08 |
the port forwarding doesn't work. If any problems occur, please try a port higher than 1024. |
09 |
[default] Forwarding ports... |
10 |
[default] -- 22 => <strong>2222</strong> (adapter 1) |
11 |
[default] -- 80 => 8080 (adapter 1) |
12 |
[default] Booting VM... |
13 |
[default] Waiting for VM to boot. This can take a few minutes. |
14 |
[default] VM booted and ready for use! |
15 |
[default] The guest additions on this VM do not match the installed version of VirtualBox! In most cases this is fine, but in rare cases it can cause things such as shared folders to not work properly. If you see shared folder errors, please update the guest additions within the virtual machine and reload your VM. |
16 |
|
17 |
Guest Additions Version: 4.1.18 |
18 |
VirtualBox Version: 4.2 |
19 |
[default] Mounting shared folders... |
20 |
[default] -- /var/www |
21 |
[default] -- /vagrant |
22 |
[default] Running provisioner: shell... |
虚拟机启动之后则可以通过 vagrant ssh 联入虚拟机进行进一步的环境配置,或者软件安装相关的工作,在Windows系统下,并不能直接通过 vagrant ssh 连到虚拟机,需要使用 Putty,Xshell 等第三方工具进行连接
连接的IP和端口根据网络环境配置的不同有所不同,如果是默认使用端口映射的话,一般是连接 本地的2222端口。
登录的帐号密码均为 vagrant ,登录之后如果需要 su root ,密码也是 vagrant
注:使用 vagrant ssh 时,会提示可以使用密钥进行登录,如果需要使用putty进行密钥登录的话,需要下载 puttygen 将 ssh 的密钥转换为 ppk 文件才能使用。
登录ssh完成环境的配置,如果在开发环境中使用webserver(nginx/apache)为了避免一些静态文件处理的问题,可能还需要进行一些额外的配置:Vagrant下共享目录静态文件(js/jpg/png等)“缓存”问题
在不进入虚拟机的情况下,还可以使用下面的命令对 虚拟机进行管理:
vagrant up (启动虚拟机)
vagrant halt (关闭虚拟机——对应就是关机)
vagrant suspend (暂停虚拟机——只是暂停,虚拟机内存等信息将以状态文件的方式保存在本地,可以执行恢复操作后继续使用)
vagrant resume (恢复虚拟机 —— 与前面的暂停相对应)
vagrant destroy (删除虚拟机,删除后在当前虚拟机所做进行的除开Vagrantfile中的配置都不会保留)
当在启动Vagrant后,对于虚拟机有进行过安装环境相关的配置,如果并不希望写在Vagrant的启动shell里面每次都重新安装配置一遍,可以将当前配置好的虚拟机打包成box,
1 |
vagrant package - -output NAME - -vagrantfile FILE
|
3 |
可选参数: |
5 |
- -output NAME : (可选)设置通过NAME来指定输出的文件名
|
7 |
- -vagrantfile FILE:(可选)可以将Vagrantfile直接封进box中
|
注:如果网络模式中使用 private_network 的话,在打包之前需要清除一下private_network的设置,避免不必要的错误:
1 |
sudo rm -f /etc/udev/rule.d/70 -persistent -net .rules
|
制作完成之后直接将box文件拿到其他计算机上配置即可使用。
相关推荐
用户可以直接在Windows环境下运行Linux命令行工具,甚至安装完整的Linux应用程序。 4. **Docker for Windows**: Docker是一种流行的容器化平台,Docker for Windows提供了在Windows上运行Linux Docker容器的能力。...
在这个场景中,"vagrant_2.0.3_x86_64.msi" 是 Vagrant 的安装程序,版本为 2.0.3,适用于64位操作系统。 其次,VirtualBox 是一个跨平台的开源虚拟化软件,由 Oracle 公司维护。"VirtualBox-5.2.8.21009-Win.exe" ...
2. **依赖库**:在Linux系统上,可能需要安装一些额外的依赖库,例如在RPM系统中,可能需要`dkms`包以确保动态内核模块的正确构建。 **安装步骤**: 1. **VirtualBox**:下载提供的`VirtualBox-5.1-5.1.8_111374_...
"vagrant_2.2.5_x86_64.msi" 文件是Vagrant的安装程序,采用Microsoft Installer(MSI)格式,用于在Windows系统上安装该软件。 Vagrant 的关键特性包括: 1. **配置文件**:Vagrant 使用名为`Vagrantfile`的文本...
在这个项目中,我在 Windows 上使用 Vagrant 和 VirtualBox 创建三个 Ubuntu Linux 服务器来探索 ansible。 然后我使用 Ansible playbook 安装具有外部和内部网络的多服务器 LEMP 堆栈 要运行它,首先根据以下说明...
2. **跨平台兼容**: Vagrant 支持多种主机操作系统,如Windows、MacOS和Linux,并且可以运行在不同的虚拟化平台之上,如VirtualBox、VMware、Docker等。 3. **配置自动化**: 使用Vagrantfile,开发者可以编写Ruby...
3. **多平台支持**:Vagrant 可以与多种虚拟化技术配合,如 VirtualBox、VMware、Docker 等,支持Windows、macOS和Linux等操作系统。 4. **自动化部署**:通过Vagrantfile,可以自动化安装软件、配置网络、设置共享...
Vagrant支持多种虚拟化技术,但在这个案例中,它默认使用了Oracle的VirtualBox,这是一个流行的开源虚拟化平台,可以在多个操作系统上运行,包括Windows、Mac OS X和Linux。 Vagrant 与Chef的结合进一步强化了其...
1. 操作系统:Windows、macOS或Linux,根据提供的文件名,这个版本适用于64位操作系统。 2. 虚拟化软件:如VirtualBox,Vagrant会自动安装或要求用户已安装。 3. 确保系统权限允许安装程序执行。 安装过程通常包括...
这些box可以在Vagrant的Box Catalog中找到,包含了各种版本的Linux和Windows系统。Box可以下载后用Vagrant的`vagrant box add`命令添加到本地,然后在Vagrantfile中引用它来创建虚拟机。 使用Vagrant的步骤大致如下...
它可以在多种操作系统上运行,包括Windows、macOS、Linux和Solaris。VirtualBox支持多种虚拟化技术,如硬件虚拟化(Intel VT-x或AMD-V)、Nested Paging、VT-d(I/O虚拟化)等,这使得它能够在虚拟环境中实现高效、...
4. **MSI 安装包**:“vagrant_2.2.7_x86_64 window版.msi”是Windows下的Microsoft Installer文件,它包含了Vagrant的所有组件,用户只需双击运行即可进行安装。 5. **虚拟化**:Vagrant 基于Docker和VirtualBox等...
- 操作系统:支持Windows、macOS和Linux。 - 内存:建议至少2GB RAM。 - 硬盘空间:至少需要500MB可用空间。 #### 安装步骤 1. **下载安装包**:访问Vagrant官网或使用提供的链接下载对应系统的安装包。 2. **执行...
5. **跨平台**:Vagrant 支持多种操作系统,包括Windows、MacOS和Linux,使得开发者可以在不同的平台上保持一致的开发体验。 **Vagrant 的优势:** 1. **一致性**:无论在本地、测试服务器还是生产环境中,Vagrant...
本篇文章将详细阐述如何在本地环境中使用VirtualBox安装CentOS 7,并结合Vagrant进行管理。 首先,让我们了解下VirtualBox。VirtualBox是由德国Oracle公司开发的一款免费且开源的虚拟机软件,支持Windows、macOS、...
8. **跨平台兼容**:Vagrant 不仅支持Mac,还兼容Windows和Linux,这使得开发者能够在不同的操作系统上协作。 9. **云集成**:除了本地虚拟机,Vagrant 还可以创建和管理云提供商上的实例,如Amazon Web Services ...
这意味着你可以在 Windows、MacOS 或 Linux 上使用相同的配置文件来创建和管理虚拟机,确保开发环境的一致性。 4. **版本控制**:Vagrantfile 是一个文本文件,可以纳入版本控制系统(如 Git),使得团队成员可以...
VirtualBox支持多种操作系统作为客户机,包括Linux、Windows、Solaris等,同时也支持多种主机操作系统,如Windows、macOS、Linux和Solaris。 【Vagrant 2.3.7】 vagrant_2.3.7_windows_i686.msi是Vagrant的Windows...
6. **多平台支持**:Vagrant 不仅支持 Windows、macOS 和 Linux,还兼容各种虚拟化技术,如 VirtualBox、VMware 和 Docker,为不同平台和需求提供了灵活的选择。 **Vagrant 2.2.7 版本更新:** 虽然没有具体列出 ...