vagrant新手入门

简介
Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。
下面的安装基于VirtualBox,开始之前需要先安装VirtualBox。
一、安装并初始化
1.下载vagrant安装程序,并运行安装。
2.重启电脑之后,在dos命令行就可以运行vagrant命令了。
3.新建项目目录。

$ mkdir vagrant_getting_started
$ cd vagrant_getting_started
$ vagrant init                     //初始化目录,生成vagrantfile配置文件

二、添加box
1.盒子下载网站:
https://vagrantcloud.com/boxes/search
网站上有很多已经做好的虚拟机环境,可以提前下载放到本地。当然也可以不提前下载,直接使用下面的命令来在线下载。
2.盒子下载命令
$ vagrant box add hashicorp/precise64 //从HashiCorp's Vagrant Cloud
box catalog下载名为”hashicorp/precise64”的box,并存储在”用户目录/.vagrant.d/boxes”.
3.盒子的命名空间
上例中用户名是 “hashicorp”, 盒子是 “precise64”。也可以使用URL或者本地路径。
三.使用盒子
1.修改配置文件使用下载的盒子

Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/precise64"
end

2.也可以添加盒子的版本号

Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/precise64"
  config.vm.box_version = "1.1.0"
end

3.也可以添加盒子的URL描述

Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/precise64"
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"
end

四、启动盒子并连接
1.启动vagrant环境

$ vagrant up

2.使用ssh连接

$ vagrant ssh

3.断开ssh连接

vagrant@precise64:~$ logout
Connection to 127.0.0.1 closed.

或者使用键盘ctrl+D
五、同步目录
1.同步目录
本地的项目根目录即为虚拟环境中/vagrant目录。

六、自动配置
1.自动配置脚本,安装apache。在vagrant目录新建bootstrap.sh文件

#!/usr/bin/env bash

apt-get update
apt-get install -y apache2
if ! [ -L /var/www ]; then
  rm -rf /var/www
  ln -fs /vagrant /var/www
fi

2.在配置文件添加

Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/precise64"
  config.vm.provision :shell, path: "bootstrap.sh"
end

3.备注:添加bootstrap.sh脚本之后,重启虚拟机自动脚本也没有生效,使用destroy命令之后,重新使用vagrant up之后,bootstrap脚本生效了。
4.验证是否成功
在项目根目录添加index.html,并在ssh验证:

$ vagrant ssh
...
vagrant@precise64:~$ wget -qO- 127.0.0.1

七、配置网络
网络配置有三种方式:端口转发、似有网络、桥接网络。
1.使用端口转发

Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/precise64"
  config.vm.provision :shell, path: "bootstrap.sh"
  config.vm.network :forwarded_port, guest: 80, host: 4567
end

2.使用内部网络(私有网络)

Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/precise64"
  config.vm.provision :shell, path: "bootstrap.sh"
  config.vm.network "private_network", ip: "192.168.33.10" #注意不要产生IP冲突
end

八、共享(对外访问)
1.虚拟环境共享需要先下载ngrok:https://ngrok.com/download 并放到环境变量路径下,我这里放到了vagrant的bin目录下。
2.其他用户访问虚拟环境的服务

$ vagrant share
...
==> default: Creating Vagrant Share session...
==> default: HTTP URL: http://b1fb1f3f.ngrok.io
...

九、多虚拟化应用支持
vagrant支持多种虚拟化环境, VirtualBox、VMware、AWS。可以使用参数选择虚拟化软件:

$ vagrant up --provider=vmware_fusion

十、打包分发
当你配置好开发环境后,退出并关闭虚拟机。在终端里对开发环境进行打包:

$ vagrant package

打包完成后会在当前目录生成一个 package.box 的文件,将这个文件传给其他用户,其他用户只要添加这个 box 并用其初始化自己的开发目录就能得到一个一模一样的开发环境了。
添加方法:
假设我们拿到的 box 存放路径是 D:/box/package.box,在终端里输入:

$ vagrant box add test D:/box/package.box  # 添加 package.box 镜像并命名为 test
$ cd D:/vagrant/dev  # 切换到项目目录
$ vagrant init test  # 用 test 镜像初始化。
发布了15 篇原创文章 · 获赞 2 · 访问量 7930

猜你喜欢

转载自blog.csdn.net/c1h2cy/article/details/78963841