一、Vagrant是什么?
    vagrant是一个操作虚拟机的工具.是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。    通过命令和配置文件来管理虚拟机,很快就能完成一套开发环境的部署,并可以打包传播,统一了开发环境,也解决了重复配置环境的麻烦.
二、Vargant的好处
1. Vagrant会创建共享文件夹,用来在主机和虚拟机之间进行资源共享; 
2. Vagrant通过添加box镜像进行快速部署,部署完毕后可以通过package进行打包分发,避免二次重建环境; 
3. Vagrant可以使用puppet、chref等管理工具进行自动化配置部署;
 4. Vagrant支持单机模拟多台机器,且支持一个配置文件Vagrantfile就可以跑分布式系统。
三、准备工作
win7下建议安装版本
1.vagrant_1.8.6.msi  
2.VirtualBox-5.1.24-117012-Win.exe
win10下建议安装版本
我这里是Win10系统,刚开始不清楚,装的是最新的VirtualBox-5.2.8-121009-Win.exe+Vagrant 2.1.1启动就报错,后来上网一搜说是版本不兼容造成的。我这里有两台电脑都是win10的有台电脑上死活装不上,有台电脑却能装上。。跟win10系统版本也有关系?我这系统版本是:
四、进行安装
1.安装VirtualBox
VirtualBox安装就不多说了,一直下一步下一步就行了。
2.安装Vagrant
Vargrant下载win版的,然后一直下一步下一步就行了。
3.下载package.box
去vagrant官网下载一个package.box 文件,box文件就是一个系统的镜像文件 :http://www.vagrantbox.es/
4.把虚拟机加载到box容器中
下载好之后,在该目录下执行命令加载镜像文件到Vagrant中去:
vagrant box add centos7 xxxx.box
centos7是给虚拟机起的名字 ,随意写。然后可以通过以下命令查看,当前vagrant下有那些可用
1
C:\Users\fendo>vagrant box list
2
centos7 (virtualbox, 0)
5.初始化虚拟机
在你想要创建虚拟机的目录下,执行以下命令进行初始化
vagrant init centos7
会生成一个Vagrantfile文件,该文件就是Vagrant的配置文件。
6.启动虚拟机
在该目录下输入:
vagrant up
启动报错:
1
E:\OS_WORK\Node1>vagrant up
2
Bringing machine 'default' up with 'virtualbox' provider...
3
==> default: Importing base box 'centos7'...
4
==> default: Matching MAC address for NAT networking...
5
==> default: Setting the name of the VM: Node1_default_1525964151077_64147
6
"rsync" could not be found on your PATH. Make sure that rsync
7
is properly installed on your system and available on the PATH.
修改:
C:\Users\{your_username}\.vagrant.d\boxes\centos7\0\virtualbox\Vagrantfile
原配置:
1
Vagrant.configure("2") do |config|
2
config.vm.base_mac = "525400cae48b"
3
config.vm.synced_folder ".", "/vagrant", type: "rsync"
4
end
改为:
1
Vagrant.configure("2") do |config|
2
config.vm.base_mac = "525400cae48b"
3
config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
4
end
然后启动,报如下错误:
1
E:\OS_WORK\Node1>vagrant up
2
Bringing machine 'default' up with 'virtualbox' provider...
3
==> default: Clearing any previously set network interfaces...
4
==> default: Preparing network interfaces based on configuration...
5
default: Adapter 1: nat
6
==> default: Forwarding ports...
7
default: 22 (guest) => 2222 (host) (adapter 1)
8
==> default: Booting VM...
9
==> default: Waiting for machine to boot. This may take a few minutes...
10
default: SSH address: 127.0.0.1:2222
11
default: SSH username: vagrant
12
default: SSH auth method: private key
13
default:
14
default: Vagrant insecure key detected. Vagrant will automatically replace
15
default: this with a newly generated keypair for better security.
16
default:
17
default: Inserting generated public key within guest...
18
default: Removing insecure key from the guest if it's present...
19
default: Key inserted! Disconnecting and reconnecting using new SSH key...
20
==> default: Machine booted and ready!
21
==> default: Checking for guest additions in VM...
22
default: No guest additions were detected on the base box for this VM! Guest
23
default: additions are required for forwarded ports, shared folders, host only
24
default: networking, and more. If SSH fails on this machine, please install
25
default: the guest additions and repackage the box to continue.
26
default:
27
default: This is not an error message; everything may continue to work properly,
28
default: in which case you may ignore this message.
29
==> default: Mounting shared folders...
30
default: /vagrant => E:/OS_WORK/Node1
31
Vagrant was unable to mount VirtualBox shared folders. This is usually
32
because the filesystem "vboxsf" is not available. This filesystem is
33
made available via the VirtualBox Guest Additions and kernel module.
34
Please verify that these guest additions are properly installed in the
35
guest. This is not a bug in Vagrant and is usually caused by a faulty
36
Vagrant box. For context, the command attempted was:
37
 
38
mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant
39
 
40
The error output from the command was:
41
 
42
mount: unknown filesystem type 'vboxsf'
中文意思就是:
1
vagrant 无法装载VirtualBox的共享文件夹,因为文件系统"vboxsf"无法使用.
2
这个文件系统通过VirtualBox客户添加内核模块获得,请确认是否被正确安装.
3
这不是vagrant的问题,而是VirtualBox引起的问题.
4
请尝试执行,以下命令:
5
mount -t vboxsf -o uid=1001,gid=1001 work_ /work
6
命令输出的错误信息为:
7
sbin/mount.vboxsf:挂载失败:找不到这个文件或目录
网上说的是,是Vagrant没有安装VBoxGuestAdditions,下面来手工安装VitrualBox的这个增强功能:
 
●使用命令
1
E:\OS_WORK\Node1>vagrant halt
2
==> default: Attempting graceful shutdown of VM...
停止已在运行的虚拟机
●启动VirtualBox中的虚拟机
直接在VirtualBox中启动虚拟机,如下所示进行登录:
输入默认用户名 : vagrant , 登录密码 : vagrant 
●挂载并安装VBoxGuestAdditions
挂载办法如下所示:设备->安装增强功能
提示以下错误
手动安装下,在VirtualBox安装目录下找到VBoxGuestAdditions.iso
加载进来,之后重启下,使用以下命令安装VBoxGuestAdditions
1
sudo mount /dev/cdrom /media/cdrom
2
cd /media/cdrom/
3
sudo ./VBoxLinuxAddtions.run
发现还是不行,然后又执行以下命令更新了下系统
1
sudo yum update
2
sudo yum install gcc
3
sudo yum install kernel-devel
4
 
5
exit #退出虚拟机
6
vagrant halt # 关闭虚拟机
后面还是不行。然后使用vagrant命令进行安装
1
E:\OS_WORK\Node1>vagrant plugin install vagrant-vbguest
2
Installing the 'vagrant-vbguest' plugin. This can take a few minutes...
3
Installed the plugin 'vagrant-vbguest (0.15.1)'!
之后重启
1
E:\OS_WORK\Node1>vagrant reload --provision
2
==> default: Clearing any previously set forwarded ports...
3
==> default: Clearing any previously set network interfaces...
4
==> default: Preparing network interfaces based on configuration...
5
default: Adapter 1: nat
6
==> default: Forwarding ports...
7
default: 22 (guest) => 2222 (host) (adapter 1)
8
==> default: Booting VM...
9
==> default: Waiting for machine to boot. This may take a few minutes...
10
default: SSH address: 127.0.0.1:2222
11
default: SSH username: vagrant
12
default: SSH auth method: private key
13
==> default: Machine booted and ready!
14
[default] No installation found.
15
Loaded plugins: fastestmirror
16
Loading mirror speeds from cached hostfile
17
* base: mirrors.shu.edu.cn
18
* extras: mirrors.shu.edu.cn
19
* updates: mirrors.shu.edu.cn
20
Package kernel-devel-3.10.0-862.2.3.el7.x86_64 already installed and latest version
21
Package gcc-4.8.5-28.el7.x86_64 already installed and latest version
22
Package binutils-2.27-27.base.el7.x86_64 already installed and latest version
23
Package 1:make-3.82-23.el7.x86_64 already installed and latest version
24
Package 4:perl-5.16.3-292.el7.x86_64 already installed and latest version
25
Package bzip2-1.0.6-13.el7.x86_64 already installed and latest version
26
Nothing to do
27
Copy iso file C:\Program Files\Oracle\VirtualBox/VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso
28
Mounting Virtualbox Guest Additions ISO to: /mnt
29
mount: /dev/loop0 is write-protected, mounting read-only
30
Installing Virtualbox Guest Additions 5.1.24 - guest version is unknown
31
Verifying archive integrity... All good.
32
Uncompressing VirtualBox 5.1.24 Guest Additions for Linux...........
33
VirtualBox Guest Additions installer
34
Copying additional installer modules ...
35
Installing additional modules ...
36
vboxadd.sh: Starting the VirtualBox Guest Additions.
37
 
38
Could not find the X.Org or XFree86 Window System, skipping.
39
Redirecting to /bin/systemctl start vboxadd.service
40
Redirecting to /bin/systemctl start vboxadd-service.service
41
Unmounting Virtualbox Guest Additions ISO from: /mnt
42
 
43
==> default: Checking for guest additions in VM...
44
==> default: Mounting shared folders...
45
default: /vagrant => E:/OS_WORK/Node1
复制
然后启动:
1
E:\OS_WORK\Node1>vagrant up
2
Bringing machine 'default' up with 'virtualbox' provider...
3
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
4
==> default: flag to force provisioning. Provisioners marked to run always will still run.
五、Vagrant连接
1.虚拟机相关登录信息
1
E:\OS_WORK\Node1>vagrant ssh
2
`ssh` executable not found in any directories in the %PATH% variable. Is an
3
SSH client installed? Try installing Cygwin, MinGW or Git, all of which
4
contain an SSH client. Or use your favorite SSH client with the following
5
authentication information shown below:
6
 
7
Host: 127.0.0.1
8
Port: 2222
9
Username: vagrant
10
Private key: E:/OS_WORK/Node1/.vagrant/machines/default/virtualbox/private_key
这样我们就可以像连接到一台服务器一样进行操作了。
2.ssh登录
window机器不支持这样的命令,必须使用第三方客户端来进行连接,例如xmoba、putty、Xshell等.
1
ssh: 127.0.0.1
2
端口: 2222
3
用户名: vagrant
4
密码: vagrant
这里使用Xshell来登录
找到刚刚上面生成的秘钥: 
E:/OS_WORK/Node1/.vagrant/machines/default/virtualbox/private_key
然后点击确定,进行连接
注意事项:
注意关机之前都要关闭下虚拟机。如果不关闭的话 明天早上起来就发现启动不了
在.Vagrantfile文件中设置:
设置用户名以及密码:
    config.ssh.username = "vagrant"
    config.ssh.password = "vagrant"
设置虚拟网络
    config.vm.network "private_network", ip: "192.168.33.10"
六、Vagrant常用命令
1. 添加box
 
提前下载好的box文件,~/box/centos.box,我们给这个box命名为centos vagrant box add centos ~/box/centos.box#box文件也可以是远程地址 base 为默认名称#vagrant box add base http://files.vagrantup.com/lucid64.box
2. 初始化
打开目录#cd ~/vagrant/work#初始化vagrant init#如果你添加的box名称不是base,那么需要在初始化的时候指定名称,例如vagrant init centos
3. 启动虚拟机
vagrant up
4. 打包分发
vagrant package
5. 帮助命令
vagrant help
6. 查看vagrant版本信息
vagrant -v
Vagrant命令详解
 
命令 作用
vagrant box add 添加box的操作
vagrant init 初始化box的操作,会生成vagrant的配置文件Vagrantfile
vagrant up 启动本地环境
vagrant ssh 通过 ssh 登录本地环境所在虚拟机
vagrant halt 关闭本地环境
vagrant suspend 暂停本地环境
vagrant resume 恢复本地环境
vagrant reload 修改了 Vagrantfile 后,使之生效(相当于先 halt,再 up)
vagrant destroy 彻底移除本地环境
vagrant box list 显示当前已经添加的box列表
vagrant box remove 删除相应的box
vagrant package 打包命令,可以把当前的运行的虚拟机环境进行打包
vagrant plugin 用于安装卸载插件
vagrant status 获取当前虚拟机的状态
vagrant global-status 显示当前用户Vagrant的所有环境状态
 
 
 
 

Vagrant系列(一)----win10搭建Vagrant+VirtualBox环境_的更多相关文章

  1. vagrant系列教程(一):vagrant的安装与初识(转)

    [参考]https://github.com/astaxie/go-best-practice/blob/master/ebook/zh/01.1.md 阅读目录 下载一个合适的box 完成一个box ...

  2. vagrant系列教程(二):vagrant的配置文件vagrantfile详解(转)

    原文:http://blog.csdn.net/hel12he/article/details/51089774 上一篇文章完整的讲叙了如何安装一个vagrant的环境.这里主要说一说vagrant的 ...

  3. vagrant系列教程(三):vagrant搭建的php7环境(转)

    原文:http://blog.csdn.net/hel12he/article/details/51107236 前面已经把vagrant的基础知识已经基本过了一遍 了,相信只要按着教程来,你已经搭建 ...

  4. vagrant系列教程(四):vagrant搭建redis与redis的监控程序redis-stat(转)

    上一篇php7环境的搭建 真是火爆,仅仅两天时间,就破了我之前swagger系列的一片文章,看来,大家对搭建环境真是情有独钟. 为了访问量,我今天再来一篇Redis的搭建.当然不能仅仅是redis的搭 ...

  5. win10 搭建react-native开发环境

    本文地址:http://www.cnblogs.com/jying/p/7992130.html 系统:win10 系统内存:8G java-jdk:1.8.144 开发工具:vs code 首先是网 ...

  6. Win10搭建Linux开发环境之网络连接设定

    一直想在家自己搭建一个LINUX服务器,好在上面安装个ORACLE数据库玩玩. 上次用了Ubuntu,结果ORACLE没装成功,现在换个思路,采用CentOS 7作为Linux服务器, 之后再进行构建 ...

  7. win10搭建selendroid测试环境

    官网对于搭建selendroid列出如下要求: 就如 Junit 一样,Selendroid 可以在 Mac,Linux 和 Windows 上使用.Java 主打的就是跨平台. Java SDK ( ...

  8. 【大数据系列】windows搭建hadoop开发环境

    一.安装JDK配置环境变量 已经安装略过 二.安装eclipse 已经安装略过 三.安装Ant 1.下载http://ant.apache.org/bindownload.cgi 2.解压 3.配置A ...

  9. 10分钟学会搭建Android开发环境 Eclipse: The import android.support cannot be resolved

    10分钟学会搭建Android开发环境_隋雨辰 http://v.youku.com/v_show/id_XNTE2OTI5Njg0.html?from=s1.8-1-1.2 The import a ...

随机推荐

  1. Matrix Power Series(POJ 3233)

    原题如下: Matrix Power Series Time Limit: 3000MS   Memory Limit: 131072K Total Submissions: 28044   Acce ...

  2. oracle之二表的几种类型

    Oracle中表的几种类型 1.表的功能:存储.管理数据的基本单元(二维表:有行和列组成)2.表的类型: 1)堆表:heap table :数据存储时,行是无序的,对它的访问采用全表扫描. 2)分区表 ...

  3. 第2课 - 初识makefile的结构

    第2课 - 初识makefile的结构 1. makefile 的意义 (1)makefile 用于定义源文件之间的依赖关系 (在阅读开源软件源码时,可通过Makefile掌握源码中各个文件之间的关系 ...

  4. [LeetCode]230. 二叉搜索树中第K小的元素(BST)(中序遍历)、530. 二叉搜索树的最小绝对差(BST)(中序遍历)

    题目230. 二叉搜索树中第K小的元素 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 题解 中序遍历BST,得到有序序列,返回有序序列的k-1号元素. 代 ...

  5. 向你的C语言项目中加入多线程

    C语言在标准库<pthread.h>中为程序员提供了多线程操作接口. 先从简单操作入手 int pthread_create(pthread_t *thread, pthread_attr ...

  6. Linux幽灵漏洞修复

    1. 漏洞说明 1.1 漏洞原理 glibc是GNU发布的libc库,即c运行库,在glibc库中的__nss_hostname_digits_dots()函数存在一个缓冲区溢出的漏洞,这个漏洞可以经 ...

  7. 基本的PID算法整理(水缸的例子有问题!!)

    一,先谈关于水缸漏水的问题 谈到PID原理入门的时候,大家经常会举的一个例子就是水缸漏水的例子.这里把一个解释水缸漏水的帖子放在这里:https://blog.csdn.net/qq_41736609 ...

  8. pwnable.kr-blackjack-witeup

    这是个人对程序逻辑的分析总结. 真的很巧很神奇,理解完程序的逻辑,不知道怎么破解.看了一眼题解,忽然懂了,好神奇哦. 题目说,要获得1000000才能获得flag.经过多次试玩和在分析程序的逻辑,知道 ...

  9. pwnable.kr-coin1-witeup

    是一个小游戏,会给100堆小硬币,在每堆硬币中找到假币(重量为9,其他重量为10),其中每堆硬币都设置了金币数和固定的尝试次数. 思路是:在每堆硬币中,在有限的尝试次数中对硬币通过二分法计算硬币重量不 ...

  10. Codeforces Round #672 (Div. 2) A - C1题解

    [Codeforces Round #672 (Div. 2) A - C1 ] 题目链接# A. Cubes Sorting 思路: " If Wheatley needs more th ...