准备工作:
下载安装 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 上使用 Vagrant 和 VirtualBox 创建三个 Ubuntu Linux 服务器来探索 ansible。 然后我使用 Ansible playbook 安装具有外部和内部网络的多服务器 LEMP 堆栈 要运行它,首先根据以下说明...
vagrant 在mac上通过命令行工具可以管理统一的镜像(BOX)所以vagrant还需要依赖VirtualBox等提供系统(支持linux,windows,OS X等)环境。这篇文章主要介绍下个人在mac上的配置过程。后面一篇会介绍vagrant上搭建...
Vagrant是一个开源工具,允许您通过易于使用的命令界面创建,配置和管理虚拟机盒。从本质上讲,它是安装在虚拟化工具(如VirtualBox,Docker,Hyper-V)和VM之间的软件层。 它通常用于软件开发中,以确保所有团队...
Ubuntu是一个可将PC和物联网设备连接到服务器和云的平台。包含了一整套用于开发,配置,管理和服务编排的企业级工具。自Ubuntu第一个版本Ubuntu 4.10 (代号Warty Warthog)...支持Linux、Windows、Mac OS等系统环境。
系统要求流浪汉虚拟盒子用法由于这是一个git仓库,所以最好通过git将其下拉: git clone https://github.com/jelyman2/vagrant-jira-mysql && vagrant up 我已经在Windows和OS X上测试了此部署。我希望Linux是相同的...
流浪汉我们喜欢在工作站上运行okd,但是每个人都使用不同的操作系统(Linux / MacOS / Windows)。 为了减轻操作系统中各种细微差别的痛苦,我们将okd放在可以通过Vagrant进行配置的vm中。 将okd放入虚拟机可以为...
下面的说明将让您下载并安装虚拟化工具 (Virtual Box)、VM Provisioner (Vagrant),它将为您下载 Linux 操作系统 (280MB),并下载几个 Chef 说明书(脚本)以在已配置的 VM 上运行以安装运行 Meteor 所需的服务器...
所有的东西都在盒子里处理,所以它真的独立于主机操作系统,适用于 linux、windows 和 mac。安装(在主机系统上) 安装最新的版本安装最新的版本测试下载这个项目并在Vagrantfile文件所在的解压文件夹中运行vagrant...
OSX/Linux/Windows 下载并安装 下载并安装 下载并打开/安装适当的确保主机上的 git CLI /// 对于 WINDOWS,如果使用 OSX,请直接跳到 VAGRANT BOX 部分 /// 下载并安装 下载并安装 Git 在任何你想要机器的地方克隆 ...
要求/得到你需要的东西从任何本地操作系统开始,例如 Mac OS X、Linux 或 Windows。 安装 安装 vagrant现在可以作为终端中的命令使用了,试试吧。 注意:如果已经安装了 Vagrant,使用vagrant -v查看版本。 如果正在...
我希望Linux和Windows相同。进入Craft.ioVagrant完成预配后,浏览至 。成分表此仓库中包含的Vagrantfile将: 运行apt-get update 安装: -- vim-- curl-- python-software-properties-- mysql-server-- nginx-- ...
总之,这创建了一个 Ubuntu LAMP 网络服务器,可以在您当前的计算机上运行,无论是 Windows、Apple OSX 还是 Linux 本身。 许多开发人员更喜欢这种类型的环境,而不是安装 WAMP、XAMPP 或 MAMP 之类的东西。 一...
java8 看不到源码自述文件: ...使用安装 Ansible、Vagrant 和 Cygwin 在 Mac 上 虚拟盒,流浪者, 在 RedHat/Fedora/Centos Linux 上: yum install ansible 下载并安装 下载并安装 快速开始 您需要访
目前仅在 OSX 上工作和测试,但在 Linux/BSD 系统甚至 Windows 上应该可以正常工作。 副本 如何? 1.安装要求 虚拟盒子 你可以得到它。 流浪汉 你可以在这里得到它。 确认Vagrant适合与$ which vagrant搭配使用$ ...
流浪汉 网站: : ... 但是,Vagrant可以与几乎所有系统一起使用,例如 , , 等。 首先,请确保您的开发计算机已安装 。 之后,。 要构建第一个虚拟环境: vagrant init hashicorp/bionic64 vagrant
Homestead 可以运行在任何 Windows,Mac,或 Linux 系统,它包括了 Nginx web 服务器, PHP 7.2,PHP 7.1,PHP 7.0,PHP 5.6, MySQL,PostgreSQL,Redis,Memcached, Node,以及开发 Laravel 应
使用 vagrant ( ),可以自动化虚拟系统的安装和配置; 所有必需的文件都使用 Puppet ( ) 配置系统从 Internet 下载。 一个 vagrant-package 不包含虚拟机和安装,而是包含构建它们的规则。 因此,它是一个小下载,...
上一节我们介绍了在ubuntu和centos下的安装,当然都是基于64位系统的,在学习过程中,你可能没有这些东西,当然你可以用virtualbox或者Vmware虚拟化出来,今天我们介绍的是官网给我们提供的using vagrant!...
3des java源码流浪者 使用 和 为开发目的引导本地 ...最初将全面更新操作系统,并安装“开发工具”。 Zip/Unzip、Java、MLCP、Nodejs、Bower、Gulp、Forever、Ruby、Git 和 Tomcat 将被安装和配置。 将在 /s
vagrant-docker-daemon:带有Docker守护程序的Vagrant框,可从远程主机访问。 对于基于Windows操作系统的Docker映像构建非常有用