vagrant 入门案例 - 快速创建 Centos7

中文文档:http://tangbaoping.github.io/vagrant_doc_zh/v2/

参考:

https://blog.csdn.net/yjk13703623757/article/details/70040797

https://www.linuxidc.com/Linux/2017-05/144101.htm

vagrant 入门案例 - 快速创建 Centos7

Vagrant是一款用来构建虚拟开发环境的外挂工具,可以简化虚拟机配置和管理。它底层支持VirtualBox、VMware、AWS等,非常适合使用php/python/ruby/java语言开发web应用,“代码在我机子上运行没有问题”这种说辞将成为历史。

安装VirtualBox

去官网 https://www.virtualbox.org/wiki/Downloads 下载最新版的Virtualbox,然后双击安装,一直点击确认完成。

安装Vagrant

去官网 https://www.vagrantup.com/downloads.html 下载最新版的Vagrant,然后双击安装,一直点击确认完成。在windows下安装vagrant,为了写入相应配置到环境变量,系统可能会要求重新启动。在命令行中,输入vagrant,查看程序是不是已经运行了。如果不行,请检查一下$PATH里面是否包含vagrant所在的路径

准备box

接下来,我们需要选择使用何种操作系统,这里以centos7.2为例。以前基于虚拟机的工作流,我们需要下载ISO镜像,安装系统,设置系统等操作。而Vagrant开源社区提供了许多已经打包好的操作系统,我们称之为box。你可以从box下载地址(下文列出),找到你想要的box,当然你也可以自己制作一个。

官方仓库:https://atlas.hashicorp.com/boxes/search

官方镜像:https://vagrantcloud.com/boxes/search

第三方仓库:http://www.vagrantbox.es/(国内)

使用案例

  • 安装virtualbox,vagrant直接按照平常安装软件一样即可。

  • 安装好后,进入磁盘目录,任意磁盘都行,创建一个管理目录。这里以vagrant目录为例。同时推荐终端工具不适用windows自带的dos,这里推荐xshell工具。 
    vagrant 入门案例 - 快速创建 Centos7

  • 我们添加一个虚拟机,vagrant box add 。我这里把镜像文件放在wamp64下面的。
    https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box
    vagrant 入门案例 - 快速创建 Centos7

  • 添加完之后,我们在查看当前的虚拟机,即可看到我们方才添加的虚拟机 vagrant box list
    vagrant 入门案例 - 快速创建 Centos7

  • 初始化虚拟机 vagrant init centos7。
    vagrant 入门案例 - 快速创建 Centos7

  • 此时我们查看vagrant目录下面就会多一个名为Vagrantfile的配置文件。
    (这个配置文件主要后期我们在对虚拟做修改时,直接修改该文件。)
    vagrant 入门案例 - 快速创建 Centos7

  • 开启虚拟机 vagrant up
    vagrant 入门案例 - 快速创建 Centos7

  • 这时候看 VirtualBox,就能发现多了一台虚拟机(并且在运行中)
    vagrant 入门案例 - 快速创建 Centos7

命令详解

命令作用
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的所有环境状态