vagrant安装
安装VirtualBox(win)
去官网https://www.virtualbox.org/wiki/Downloads下载最新版的Virtualbox,然后双击安装,一直点击确认完成.
其实,并不推荐使用最新版的VB,有些依赖程序不支持最新版本,一般使用最新版本的前一个版本最好
安装Vagrant
去官网https://www.vagrantup.com/downloads.html下载最新版本的Vagrant,然后双击安装,一直点击确认完成.在windows下安装vagrant,为了写入相应配置到环境变量,系统可能会要求重新启动.在命令行中,输入vagrant,查看程序是不是已经运行了,如果不行,请检查一下$PATH里面是否已经包含vagrant所在的路径
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安装配置虚拟机
box是什么?
接下来,我们需要选择使用何种操作系统,这里以centos7.2为例。以前基于虚拟机的工作流,我们需要下载ISO镜像,安装系统,设置系统等操作。而Vagrant开源社区提供了许多已经打包好的操作系统,我们称之为box。你可以从box下载地址(下文列出),找到你想要的box,当然你也可以自己制作一个。
– 官方仓库:https://atlas.hashicorp.com/boxes/search
– 官方镜像:https://vagrantcloud.com/boxes/search
– 第三方仓库:http://www.vagrantbox.es/
如何安装一个box?
首先创构建一个自己的开发目录:
$ mkdir -p /Users/vagrant/centos7
$ cd /Users/vagrant/centos7
由于众所周知的原因,国内使用这些box镜非常缓慢,缓慢,缓慢,推荐使用本地box,即下载box到本地
以下是导入安装说明:
$ vagrant box add {title} {url}
$ vagrant init {title}
$ vagrant up
vagrant box add是添加box的命令,{title}是以后创建虚拟机的别名,{url}是下载到本地box的路径,也可以是服务器端的URL。
说明:将box镜像添加到本地仓库,有三种方式
- 使用http绝对地址
> vagrant box add precises64 http://files.vagrantup.com/precise64.box - 使用本地文件(从协议来说,和上面一样,相当于file:///协议的地址)
vagrant box add precises64 ./precise64.box
- 使用仓库名称
vagrant box add precises64 ubuntu/precise64
这种方式,vagrant会自动在中央仓库查找镜像,并下载到本地镜像库中
vagrant box add ubuntu/precise64
省略本地镜像名称,则直接用中央仓库中的镜像名作为本地镜像名,这样做的好处是可以跟仓库中的镜像对应。
安装centos7 box
$ cd /Users//vagrant/centos7 //找到一个目录,作为初始化目录
$ vagrant box add centos7 /Users/vagrant/centos/centos-7.0-x86_64.box //建议采取离线安装,这样有利于放置虚拟机文件到指定路径
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos7' (v0) for provider:
box: Unpacking necessary files from: file:///Users/jackyue/data/vagrant/vagrant-centos-7.2.box
==> box: Successfully added box 'centos7' (v0) for 'virtualbox'!
box中的镜像文件被放到了/Users/vagrant/.vagrant/machines/之下
初始化镜像
$ vagrant init centos7
//如果是新添加的box,必须执行本步骤,初始化一次之后,就不需要再执行本步骤
A `Vagrantfile` has been placed in this directory.
You are now ready to `vagrant up` your first virtual environment!
Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant.
启动系统
$ vagrant up
// 第一次开启的时候,建议一台一台地开启,这样的话方便记录映射的本地端口号
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos7'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: centos7_default_1493108555390_12825
==> default: Clearing any previously set network interfaces...
SSH连接安装的虚拟机
经过以上操作后,我们完成了centos7虚拟机的安装,现在需要登录虚拟机,进行操作,有以下三种方式:
- 在开发环境的目录(有Vagrantfile的地方),登录虚拟机
$ vagrant ssh
- 使用第三方工具,如secureCRT)或系统ssh命令进行登录,IP为Vagrantfile中指定的hostonly地址,用户名与密码默认都是vagrant
- 在宿主机的命令行,ssh到本地端口的方式登录。观察客户机的22端口映射到宿主机的是多少,一般是2200或者2222,用户名与密码默认都是vagrant
$ ssh -p 2222 127.0.0.1
打包分发
当你配置好开发环境后,退出并关闭虚拟机。在终端里,对虚拟机打包
# vagrant halt // 在开发环境的目录,关闭centos7
# vagrant status // 确认centos7关机
# vagrant package centos7 --output centos7.box --vagrantfile Vagrantfile
// --output NAME:(可选)设置通过NAME来指定输出的文件名;--vagrantfile FILE:(可选)将Vagrantfile直接封进box中
注:如果网络模式中使用private_network的话,在打包之前需要清除一下private_network的设置,避免不必要的错误:rm -f /etc/udev/rule.d/70-persistent-net.rules
打包完成后会在当前目录生成一个centos7.box的文件,将这个文件分发给其他用户(开发者)。
其他用户只要添加这个 box ,并用其初始化自己的开发目录,就能得到一个一模一样的开发环境了
# vagrant box add centos7 centos7.box
//添加package.box,镜像命名为centos7
$ vagrant init centos7
// 初始化centos7镜像
$ vagrant up