0 Vagrant是什么?
使用虚拟机需要配置它使用的iso,CPU内存硬盘网络等,而vagrant可以用脚本来管理这些,而且可以创建一组。相当于是Infracture as Code,使用代码来管理基础架构。
1 在Mac上安装
官网下载,双击安装
2 在Mac上使用vmware_fusion provider
官网购买,得到邮件说明和license文件
在Vagrant官网下载安装VMWareUtility
vagrant plugin install vagrant-vmware-desktop
vagrant plugin license vagrant-vmware-desktop license.lic
3 下载和添加box(供vmware_desktop provider使用)
hashicorp/precise64版本1.1.0的下载地址,官网说明
下载有可能是在墙外,下载地址我是等输入命令后,复制的显示出来的地址,并使用Ctrl+C终止命令
然后把下载的文件添加到本地:
vagrant box add hashicorp/precise64 downloaded.file
它不会给标记版本号,如果想标记:
cd ~/.vagrant.d/boxes/hashicorp-VAGRANTSLASH-precise64/
mv 0 1.1.0
centos/7版本1812.01版本的下载地址,官网说明
vagrant box add centos/7 downloaded.file
cd ~/.vagrant.d/boxes/centos-VAGRANTSLASH-7/
mv 0 1812.01
其实mv只是强制暴力方法,正式方法见下面链接
参考链接,Centos1812.01镜像发布说明
vagrant离线添加后修改版本
4 创建项目文件夹和启动
在新创建的空文件夹中写命令:
vagrant init centos/7
此时产生了Vagrantfile文件,修改它,在config.vm.box这一行后添加:
config.vm.box_version = 1812.01
config.vm.box_check_update = false
这样启动时就不会访问外网检查更新了
5 启动、关闭,在资源库显示
启动后,可以vagrant ssh进去,可以vagrant destroy关机并删除文件
可是,在vmware_fusion的虚拟机资源库中,没有这台虚拟机?要在Vagrantfile中加入:
config.vm.provider "vmware_desktop" do |v|
v.gui = true
end
这时vagrant destroy会删除虚拟机文件,但不会删除资源库中的列表项,需要手工删除