Vagrant入门笔记

Vagrant 介绍

Vagrant是一个虚拟机box管理工具,本身并不能支持虚拟机的运行,需要依赖VirtualBox或VMware、AWS这些虚拟机运行实体软件。

另人疑惑的是,有了VirtualBox,可以自由导入导出镜像,为什么还需要Vagrant来管理虚拟机呢来年看看直接玩VirtualBox是怎么个流程

先创建个新的虚拟机->安装下载好的ISO系统->然后,开始各种软件安装,开始各种配置,开始各种配置的天,麻烦死了。所幸,VirtualBox是可以导入导出的,环境配置好后,可以导出来分发给别的团队成员使用。但是,问题来了,配置环境本身也有可能会经常变,需要更新,然后,更新一次后,之前所有正在使用的旧的配置系统的,全都又要重新导入一次。

使用Vagrant又是怎么个玩法呢/h4>

首先,Vagrant本身拥有一个开放的仓库,这个仓库放有许多预先配置好各种应用的,供开发人员直接用命令下载。有点像ubuntu的包管理,CentOS的,PHP的依赖管理 ,,,所以使用起来就是方便,不需要自已到处去找VirtualBox镜像源。

其次,Vagrant可以直接启动一个临时虚拟机,并通过一个配置文件Vagrantfile中的设置,配置系统环境,安装系统需要的依赖软件,配置与宿主机的端口映射及目录映射,这就非常棒,非常爽了。我们只需要维护Vagrant的配置文件,这个配置文件包含了所有虚拟机需要运行的信息。那么,这个系统配置环境也可放到版本管理平台上进行版本管理了。

当环境需要更新,只需要更新这个配置文件,然后用Vagrant重新再启动一个虚拟机即可。

VirtualBox的玩法,不再是创建个新虚拟机就一直用到死,而是通过Vagrant频繁的删除创建临时虚拟机。

而VirtualBox及初始镜像系统只是做一件事,就是运行提供环境,而Vagrant则做系统环境的配置信息管理者。通过与宿主目录映射,可实现数据及运行程序或配置文件与虚拟机彻底分离。

Win下 Vagrant安装

1)安装VirtualBox

下载地址 https://www.virtualbox.org/wiki/Downloads

2)安装 Vagrant

下载地址 https://www.vagrantup.com/downloads.html

傻瓜式安装,安装完后,测试一下是否安装成功

3) 添加/安装一个Vagrant Box (以laravel/homestead为例)

命令自动添加Box

需经过漫长的等待。 需要手动添加则如下方法

1) 手动下载laravel/homestead

  1. 手动添加vagrant box

查看一下当前所有的Vagrant Box

4) 初始化虚拟机 laravel/homestead

进入一个空的文件夹,然后,如下

5) 启动虚拟机

6) 查看虚拟机状态

7) ssh登录虚拟机

** 注意上面的这些操作,都需要在第一步ini的文件夹下进行,否则无进行 **

也可以指定某个虚拟机的id进行操作,怎么知道id呢。可以查看全局的status

然后就可以在任意目录下指定id进行对虚拟机的操作如:

  • vagrant status 62f16e3 #查看状态
  • vagrant ssh 62f16e3 #ssh登录
  • vagrant suspend #挂起启动的虚拟机
  • vagrant reload 62f16e3 #重启虚拟机
  • vagrant halt 62f16e3 #关闭虚拟机
  • vagrant destroy 62f16e3 #销毁当前虚拟机

8) 实现端口地址映射

  • 第一种方法:直接在VirtualBox软件中,找到那个正常运行虚拟机,选择设置> 网络 > 高级 > 端口转发

设置好后,执行,注意,不是 reload会重置所有的设置,所以这种方法有bug

  • 第二种方法:通过vagrantfile文件进行配置,永久有效

重启虚拟机 就可得到宿主机的8881 -> 虚拟机的80 ,8882 -> 82

9) 打包分发

当里面部署了专属自己的环境后,这时可以打包虚拟机。需要关闭虚拟机后方可打包

默认名为package.box,使用参数 可指定输出名

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的所有环境状态

文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8586 人正在系统学习中

来源:丰色木夕

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月12日
下一篇 2019年7月12日

相关推荐