介绍
Development Environments Made Easy
—官网标题
vagrant是一个命令行的虚拟机管理程序。用于简化搭建开发环境。
vagrant使用ruby语言基于Chef 开发。需要配合其他虚拟机程序进行工作,如vmare、virualbox、hyper-v等。并通过 CLI和VagrantFile(配置文件)管理虚拟机的所有功能。vagrant 使用自己的镜像格式进行环境部署,即box。类似于虚机的iso或者docker中的镜像。
选择vagrant+virualbox这个组合,因为它们都是开源的、跨平台的。vagrant搭建开发环境即简单又强大。
安装
官网下载安装。其中virualbox可选择安装
VirtualBox Extension Pack。使用虚拟机需要BIOS 开启虚拟化。
VirtualBox 官网
Vagrant 官网
BOX查找
https://app.vagrantup.com/boxes/search
几个场景
下面介绍几种vagrant 使用场景。所有步骤在WIN11系统下验证过。
1、一行命令搭建基本的开发环境
在CMD命令行下启动一个包含centos系统的虚拟机。其中"centos/7"是box名,root用户的默认密码是vagrant。真简单。
2、单机开发环境
目标是搭建一个少量定制的单机开发环境。需要使用CLI命令和配置文件来完成。
手动下载BOX
网速慢可以自己下载box文件,并添加到本地box库。
下载地址:
https://app.vagrantup.com/centos/boxes/7/versions/2004.01/providers/virtualbox.box
box添加到本地库的命令
**初始化 **进入命令行,建立一个目录,用centos/7 box 初始化。
基本的配置文件 初始化后会在当前目录生成名为 Vagrantfile 的文件。以Ruby语言为格式。
常用命令
3、集群开发环境
目标是搭建一个运行在局域网中、包含多台物理机和虚拟机的集群环境。
思路是安装好公共box后,对其进行定制。打包成自定义box,分发到不同的物理机上部署。
使用vagrant的公共网络模式,为每个虚拟机在局域网分配固定IP,集群环境里的任意物理机和虚拟机可以直接互通。
初始化一个centos环境
定制环境
允许用户名密码链接SSH
使用vagrant ssh 链接虚拟机
修改配置项、允许密码登陆,并保存。
PasswordAuthentication yes
操作系统设置
设置阿里云Centos镜像源
安装Docker
自定义BOX
打包当前环境,默认名称package.box。加入本地库,取名base。
box本地仓库 默认路径 C:\Users\Administrator.vagrant.d\box
配置文件
部署集群环境
将打包好的自定义box和配置文件,复制到需要部署的各物理机,并且安装vagrant环境。
使用 vagrant box add
将box添加到物理机的本地库中。
使用 vagrant init base
初始化。
调整 Vagrantfile 并通过 vagrant up
进行部署。
结语
扩展阅读vagrant的CLI、VagrantFile、插件、网络配置等可以在官网文档找到。