1、下载安装
官网:https://www.vagrantup.com/downloads.html
download
最新版本是2.0.3,我用的是2.0.1
Virtualbox版本是5.2.8
download virtualbox
2、基本概念和命令
What is Vagrant
Vagrant是用来建立、管理虚拟机环境。
Vagrant is a tool for building and managing virtual machine environments in a single workflow. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases production parity, and makes the "works on my machine" excuse a relic of the past.
Provider
Vagrant并不是从零做起,而是借助了很多现有的虚拟机软件,如VMware,AWS,Virtualbox等。
因为Virtualbox是免费的,所以用这个进行练习比较合适。
Vagrantfile初始化
作为一名开发者,vagrant可以帮助我们搭建开发环境,在这个环境里安装我们需要的各种软件、配置各种服务。而这些软件、服务都会记录在一种配置文件 - Vagrantfile里,以方便复用。
- 新建一个文件夹,或者进入某个项目的文件夹下
mkdir vagrant_practice
cd vagrant_practice
- 初始化一个box
vagrant init
会在当前文件夹下生成一个Vagrantfile文件,去掉注释后为:
Vagrant.configure("2") do |config|
config.vm.box = "base"
end
然后把“base”修改为“hashicorp/precise64”,这是一个“Ubuntu 12.04 LTS 64-bit”的虚拟机。
注意:
- Vagrant的命名空间是:hashicorp称为username,precise64称为box name
- 除了直接修改Vagrantfile,还可以通过下面的方式达到同样的效果:
vagrant init
vagrant box add hashicorp/precise64
或者
vagrant init hashicorp/precise64
- 运行
vagrant up
注意:
- 第一次运行时,vagrant会去下载这个hashicorp/precise64镜像,但是会报错
➜ vagrant_practice vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'hashicorp/precise64' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Loading metadata for box 'hashicorp/precise64'
default: URL: https://vagrantcloud.com/hashicorp/precise64
==> default: Adding box 'hashicorp/precise64' (v1.1.0) for provider: virtualbox
default: Downloading: https://vagrantcloud.com/hashicorp/boxes/precise64/versions/1.1.0/providers/virtualbox.box
An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.
OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to hashicorp-files.hashicorp.com:443
这是因为网络问题:
https://stackoverflow.com/questions/45912076/error-openssl-ssl-read-ssl-error-syscall-errno-10054
解决办法是直接下载上面那个链接,另存为也好、迅雷也好,然后放在当前目录下,然后:
➜ vagrant_practice ls
virtualbox.box
➜ vagrant_practice vagrant box add hashicorp/precise64 virtualbox.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'hashicorp/precise64' (v0) for provider:
box: Unpacking necessary files from: file:///Users/zsun/workspace/github/vagrant_practice/virtualbox.box
==> box: Successfully added box 'hashicorp/precise64' (v0) for 'virtualbox'!
➜ vagrant_practice vagrant init hashicorp/precise64
➜ vagrant_practice vagrant up
成功
- 进入虚拟机
vagrant ssh
注意:
- 这时候在Virtualbox那里也能看见一个虚拟机实例在运行,名字为vagrant_practice,即文件夹名。
- 退出命令:
exit
或logout
同步文件夹
虚拟的环境为了和外面的环境共享数据,在内部有一个路径为:
/vagrant
,即外面环境的当前文件夹./vagrant_practice
小结
以上即是初次使用vagrant需要了解的知识,包括基本概念、基本命令等。Vagrant更强大的功能介绍,请参考官方文档。
网友评论