vagrant 安装使用 win7
第一步、安装VirtualBox和vagrant
下载地址:
https://www.virtualbox.org/wiki/Downloads
http://downloads.vagrantup.com/
下载相应的版本安装即可,win下一路next即可(其他os安装方法请自行百度)
在网络环境不是很好的情况下,也需要下载需要的box镜像:http://www.vagrantbox.es/
第二步、添加vagrant虚拟机
1.创建box存放目录E:\vagrant-box并切换进来,将下载好的box文件复制进来
添加box到vagrant,使用命令: vagrant box add your-box-name ./centos-7.0-x86_64.box
2.创建开发目录E:\vagrant-box\centos7-puppet381并切换到目录 cd E:\vagrant-box\centos7-puppet381
初始化:vagrant init [your-box-name] #不写box名称时是初始化默认的box
启动:vagrant up
第三步、SSH到虚拟机中
Windows 终端并不支持 ssh,所以需要安装第三方 SSH 客户端,比如:Putty、Cygwin、xshell、secureCRT等(默认帐号密码都是vagrant)



Vagrant 初始化成功后,会在初始化的目录里生成一个 Vagrantfile 的配置文件,可以修改配置文件进行个性化的定制。 Vagrant 默认是使用端口映射方式将虚拟机的端口映射本地从而实现类似 http://127.0.0.1:80 这种访问方式,这种方式比较麻烦,新开和修改端口的时候都得编辑。
相比较而言,host-only 模式显得方便多了。
打开 Vagrantfile,将下面这行的注释去掉(移除 #)并保存:
config.vm.network :private_network, ip: "192.168.30.177"
config.vm.network "public_network" #,:bridge=>'en1: Wi-Fi (xxx)'多个网络可选时可以使用红色背景部分免去 vagrant up时的网络选择部分
重启虚拟机,这样我们就能用 192.168.30.177 访问这台机器了,你可以把 IP 改成其他地址,只要不产生冲突就行。 当你配置好开发环境后,退出并关闭虚拟机。在终端里对开发环境进行打包:
$ vagrant package
打包完成后会在当前目录生成一个 package.box 的文件,将这个文件传给其他用户,其他用户只要添加这个 box 并用其初始化自己的开发目录就能得到一个一模一样的开发环境了。 常用命令:
$ vagrant init # 初始化
$ vagrant up # 启动虚拟机
$ vagrant halt # 关闭虚拟机
$ vagrant reload # 重启虚拟机
$ vagrant ssh # SSH 至虚拟机
$ vagrant status # 查看虚拟机运行状态
$ vagrant destroy # 销毁当前虚拟机 使用 Apache/Nginx 时会出现诸如图片修改后但页面刷新仍然是旧文件的情况,是由于静态文件缓存造成的。需要对虚拟机里的 Apache/Nginx 配置文件进行修改:
# Apache 配置添加:
EnableSendfile off
# Nginx 配置添加:
sendfile off;
更多内容请查阅官方文档 http://docs.vagrantup.com/v2/cli/index.html
以下内容引自:http://blog.smdcn.net/article/1308.html
设置好box之后,在当前工作目录运行
1 |
vagrant init |
生成对应的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 |
2 |
3 |
可选参数: |
4 |
5 |
--output NAME : (可选)设置通过NAME来指定输出的文件名 |
6 |
7 |
--vagrantfile FILE:(可选)可以将Vagrantfile直接封进box中 |
注:如果网络模式中使用 private_network 的话,在打包之前需要清除一下private_network的设置,避免不必要的错误:
1 |
sudo rm -f /etc/udev/rule.d/70-persistent-net.rules |
制作完成之后直接将box文件拿到其他计算机上配置即可使用。
vagrant 安装使用 win7的更多相关文章
- Vagrant安装配置
转载自:https://my.oschina.net/u/3424381/blog/888205 Vagrant安装配置 实际上Vagrant只是一个让你可以方便设置你想要的虚拟机的便携式工具,它底层 ...
- Vagrant安装Docker
======方法1=========== 一.vagrant安装centos 1.1 什么是vagrant: Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境.它 使用Oracle ...
- Virtualbox/Vagrant安装
它们分别是什么? VirtualBox: 号称是最强的免费虚拟机软件和VM类似. 不仅具有丰富的特色,而且性能也很优异. Vagrant: 是一个基于Ruby的工具,用于创建和部署虚拟化开发环境. 使 ...
- vagrant安装centos7
1. 安装VirtualBox 去官网https://www.virtualbox.org/wiki/Downloads下载最新版的Virtualbox,然后双击安装,一直点击确认完成. 2. 安装V ...
- 【重装系统】老毛桃U盘工具V2013超级装机版-安装原版Win7/Win8
老毛桃U盘工具V2013超级装机版-程序下载和运行 老毛桃U盘工具V2013超级装机版-安装原版XP的方法 老毛桃U盘工具V2013超级装机版-安装原版Win7/Win8
- 联想M4600 (110主板),安装正版win7 ,进入桌面后鼠标无法使用
问题:联想M4600 (110主板),安装正版win7 ,进入桌面后鼠标无法使用 原因: 110主板和win7系统问题,具体网上查询 处理: 修改bios 中 “USB Virtual KBS Sup ...
- Vagrant 安装Oracle19c RAC测试环境的简单学习
1. 学习自网站: https://xiaoyu.blog.csdn.net/article/details/103135158 简单学习了下 能够将oracle RAC开起来了 但是 对后期的维护和 ...
- Vagrant安装步骤
Vagrant安装步骤 下载添加box镜像 vagrant box add base 远端的box地址或者本地的box文件名 建立box镜像关联 vagrant box add centos72 va ...
- 环境篇:Virtualbox+Vagrant安装Centos7
环境篇:Virtualbox+Vagrant安装Centos7 1 安装Vagrant Vagrant下载地址:https://www.vagrantup.com/ Vagrant百度网盘:https ...
随机推荐
- 利用Code128字体将文本转换为code128条形码
利用Code128字体将文本转换为code128条形码[转] 最近在做仓储的项目,许多的打印文件都包含条形码,之前一直使用C39P24DhTt字体直接转换为39码,但是最近要求使用code128编 ...
- RabbitMQ、ActiveMQ和ZeroMQ
消息中间件的技术选型心得-RabbitMQ.ActiveMQ和ZeroMQ 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs RabbitMQ.Active ...
- Spring 学习总结 使用静态工厂创建Bean
创建Bean时,class属性必须指定,此时为静态工厂类. factory-method指定静态工厂方法名. 接口: public interface Being { public void test ...
- Django缓存使用方法
Django缓存分为Session和Cookie:Session为放在服务器端的缓存:Cookie为放在客户端(浏览器)的缓存. Session一般用来保存登录会话:Cookie一般用来保存一些个性化 ...
- android学习笔记50——SQLiteOpenHelper、android实现系统自带样式
SQLiteOpenHelper SQLiteOpenHelper是android提供的一个管理数据库的工具类,可用于管理数据库的创建和版本更新. 一般的用法是创建SQLiteOpenHelper的子 ...
- java 网络编程复习(转)
好久没有看过Java网络编程了,现在刚好公司有机会接触,顺便的拾起以前的东西 参照原博客:http://www.cnblogs.com/linzheng/archive/2011/01/23/1942 ...
- C# using 三种使用方式
http://www.cnblogs.com/fashui/archive/2011/09/29/2195061.html 1.using指令. using 命名空间名字.例如: using Syst ...
- UVA 1395 苗条的生成树(最小生成树+并查集)
苗条的生成树 紫书P358 这题最后坑了我20分钟,怎么想都对了啊,为什么就wa了呢,最后才发现,是并查集的编号搞错了. 题目编号从1开始,我并查集编号从0开始 = = 图论这种题真的要记住啊!!题目 ...
- 自制公众平台Web Api(微信)
最近一段时间感觉没什么东西可以分享给大家,又由于手上项目比较赶,不太更新博客了,今天趁着生病闲下来的时间分享一些项目中的东西给大家. 公众平台 提起公众平台当下最流行的莫过于腾讯的微信了,当然还有易信 ...
- iBeacon知识1
iBeacon的数据主要由四种资讯构成,分别是UUID(通用唯一标识符).Major.Minor.Measured Power. UUID是规定为ISO/IEC11578:1996标准的128位标识符 ...