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
- 手动添加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进行处理,非常感谢!