vagrant初识
Posted slang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vagrant初识相关的知识,希望对你有一定的参考价值。
vagrant是部署虚拟开发环境的工具,他可以简化虚拟机配置,为我们搭建和配置轻量级可重用,可移植的开发环境。他能帮助开发人员迅速的构建一个开发环境,帮助测试人员构建测试环境。
vagrant支持VirtualBox,VMware,AWS等虚拟机。
vagrant关键字
host——宿主机,安装虚拟机软件和vagrant的系统
guest/vm——虚拟机
安装Vagrant
ubuntu下载安装vagrant,官方下载地址:https://www.vagrantup.com/downloads.html
安装虚拟机管理软件:virtualbox ; virtualbox官方下载地址:https://www.virtualbox.org/
vagrant的基本原理:
1.首先,读取配置文件,获取需要的环境,网络配置。基础软件等信息。
2.调用虚拟化软件API(VMWare Fusion, Oracle VirtualBox, AWS,OpenStack等),根据用户提供的配置文件为用户构建基础环境。
3.调用用户的配置脚本(shell, puppet, chef) 安装好相应的服务和软件包;
Vagrant概念
- Provider
Provider指的是为Vagrant提供虚拟化支持的具体软件,比如vmware或virtual box。
- Box
Box代表虚拟机镜像。Vagrant根据Porvider的不同提供了很多的基础镜像(通过url从s3上获取),用户可以根据自己的需求使用vagrant package制作属于自己的box。
- Project
一个目录和目录中的Vagrantfile就组成了vagrant的一个项目,项目下可以有子项目,子项目中的Vagrantfile配置将继承和重写父项目的配置。项目的虚拟机实例并不会存储在这个目录(存储在~/.vagrant.d/box下),所以可以通过git等版本管理工具来管理项目。 - Vagrantfile
Vagrant的配置文件,使用Ruby的语法描述。里面定义了项目所使用的box,网络,共享目录,provision脚本等。当vagrant up命令运行时,将读取当前目录的Vagrantfile。 - Provisioning
Provisioning指的是虚拟机实例启动后,所需要完成的基础配置工作,比如说安装LAMP服务等。Vagrant支持使用shell,puppet,chef来完成provisioning工作。 - Plugin
Vagrant提供了插件机制,可以很好的扩展对宿主机OS, GuestOS,Provider,Provisioner的支持,比如vagrant的aws和openstack支持都是通过plugin来实现的。
vagrant配置
下载box
box的第三方下载地址: http://www.vagrantbox.es/
box的安装
创建vagrant开发环境
$ mkdir ~/vagrant
$ cd ~/vagrant
agrant提供的在线安装,非常便利,但是无奈我国有非常NB的gfw,为了速度,就先FQ出去把box下载到本地,然后再进行安装。
$ vagrant box add {title} {url}
$ vagrant init {title}
$ vagrant up
vagrant box add 是添加box的命令
其中{title}可以自行设置,我这里使用的是 centos7 ,{url}是下载到本地box路径。我的路径是:/home/slang/downloads/centos-7.0-x86_64.box
安装box
$ vagrant box add CentOs7 /home/slang/downloads/centos-7.0-x86_64.box
box的镜像默认被存放到~/.vagrant.d/boxes/下,
# 如果是才add 的box,就必须执行本步骤,初始化一次后,以后启动系统,就不需要执行本步骤。此步骤主要是创建Vagrantfile配置文件。
$ vagrant init CentOs7
# 启动系统
$ vagrant up
ssh远程连接到虚拟机
$ vagrant ssh
如果是官方的box,那么用户名和密码默认都是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初识的主要内容,如果未能解决你的问题,请参考以下文章