Vagrant (1) —— 基本安装与配置(上)
Vagrant (1) —— 基本安装与配置(上)
摘要
基本安装与配置
版本
Vagrant版本: 1.8.1
内容
启动运行
$ vagrant init hashicorp/precise64
$ vagrant up
使用的版本是Ubuntu 12.04 LTS 64-bit
可以通过
$ vagrant ssh
登录到vagrant vm
项目设置
创建一个vagrant工作目录,其中vagrant init会在这个目录下创建文件Vagrantfile
$ mkdir vagrant_getting_started
$ cd vagrant_getting_started
$ vagrant init
盒子
不同与虚拟机的创建,Vagrant使用镜像克隆,基础的镜像对于vagrant来说叫做盒子box,为vagrant环境指定一个盒子,通常是在创建文件Vagrantfile之后的第一步
安装盒子
$ vagrant box add hashicorp/precise64
这时我们加入的镜像 hashicorp/precise64 处于全局域可以为当前用户使用,如果两个项目都同时使用这个盒子,在一台客户机上修改文件,不会影响另外一台客户机的内容。
在上面的镜像中hashicorp是用户名,precise64 是盒子的名称。
使用盒子
打开Vagrantfile 编辑
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/precise64"
end
当名称与我们Vagrant盒子的名称一致时,Vagrant会自行下载并运行它。
官方网站上有很多可供下载的镜像盒子。
如果要查看当前环境的所有盒子可以使用命令
⇒ vagrant box list
得到输出的结果:
hashicorp/precise64 (virtualbox, 1.1.0)
mitchellh/boot2docker (virtualbox, 1.2.0)
mitchellh/boot2docker (vmware_desktop, 1.2.0)
name-of-this-box (virtualbox, 0)
启动和使用SSH
我们可以使用命令启动Vagrant
vagrant up
如果碰到提示
Bringing machine 'default' up with 'virtualbox' provider...
==> default: VirtualBox VM is already running.
则说明当前盒子的正在运行。
这是我们可以通过命令查看当前所有在Vagrant下运行的盒子的状态
⇒ vagrant global-status
id name provider state directory
-------------------------------------------------------- ---------------------------------
b48d809 default virtualbox running /Users/Richard/Documents/Dev/vagrant
474492c default virtualbox running /Users/Richard/Documents/Dev/vagrant-docker-elk
9f09758 default virtualbox poweroff /Users/Richard/Documents/Dev/vagrant-default-resume
Vagrant启动的时候会输出相应的提示信息:
==> default: Forwarding ports...
default: 80 (guest) => 4567 (host) (adapter 1)
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
以上信息的内容是说客户端会开放80端口及22端口,对应本地的端口分别为4567和2222。
然后通过命令,可以登录到Vagrant vm中,(默认情况下这个命令会使用端口22)
vagrant ssh
登录后会显示
Welcome to your Vagrant-built virtual machine.
Last login: Tue Jan 26 09:25:17 2016 from 10.0.2.2
vagrant@precise64:~$
以上对应我们之前提到的vagrant是用户名,precise64是vm名。
设置同步目录
默认情况下,在./vagrant目录下,Vagrant客户机会和我们镜像保持同步,尝试命令
touch /vagrant/foo
我们会发现相应的文件同时存在于我们的Vagrant主机上,同样Vagrantfile也是同步的。