沙滩星空的博客沙滩星空的博客

vagrant安装与使用

什么是Vagrant

Vagrant是一个与虚拟机一起工作的工具。

它围绕一个名为 VagrantFile 的配置文件而工作,这个配置文件告诉 Vagrant 你想要安装的操作系统,以及一些其他选项,如 IP 和目录同步。 你还可以在虚拟机上添加一个命令的配置脚本。

通过共享这个 VagrantFile,项目的所有开发人员全可以使用完全相同的虚拟机。


安装:

1.BIOS 开启CPU虚拟化支持
2.PowerShell版本>=3.0
3.安装virtualBox,vagrant
4.与虚拟机共享文件夹,则需要安装以下插件。

vagrant plugin install vagrant-vbguest


使用:

Box管理命令

查看本地box列表

vagrant box list 

添加box到列表

vagrant box add     

从box列表移除

vagrant box remove  

添加box镜像的方式:
boxurl:
'https://app.vagrantup.com/centos/boxes/7/versions/1804.02'+'/providers/'+'供应商名字/'+'.box'

https://app.vagrantup.com/ubuntu/boxes/trusty64/versions/20190410.0.0/providers/virtualbox.box
https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box

本地添加时,如果出现下面报错,请指定-name参数,给本地box起个名字。

==> box: Box file was not detected as metadata. Adding it directly...
A name is required when adding a box file directly. Please pass
the `--name` parameter to `vagrant box add`. See
`vagrant box add -h` for more help.

1.联网,直接下载添加:

vagrant box add centos/7

和GitHub类似,远程仓库box名为[用户名/镜像名]形式,如centos/7,laravel/homestead

2.本地添加:(本地box文件的路径一定放最后):

vagrant box add -name mycentos-7 D:\Vagrant\mybox\CentOS-7-x86_64-Vagrant-1902_01.VirtualBox.box

vagrant box add centos-7.box

以上本地方式添加的box版本号是0。通常情况影响不大。但使用Laravel Homestead时,会有版本等限制。

配置文件添加:(指定要添加的box的详细信息)
例1:

vim homestead.json

{
"name": "laravel/homestead",
"versions": [{
"version": "6.3.0",
"providers": [{
"name": "virtualbox",
"url": "D:/Users/youname/Downloads/homestead-6.3.0.box"
}]
}]
}

vagrant box add homestead.json

例2:

vim metadata.json
{"name": "laravel/homestead",  # 添加后的box名称
"versions": [{
    "version": "2.1.0", # 版本号
    "providers": [{
        "name": "virtualbox",
        "url": "file://E:/xunlei/Laravel-Homestead.box"  # 下载到本地的box
    }]
}]}
vagrant box add metadata.json

Vagrantfile

config.vm.box = "centos/8"
config.vm.box_url = "http://cloud.centos.org/centos/8/x86_64/images/CentOS-8-Vagrant-8.1.1911-20200113.3.x86_64.vagrant-virtualbox.box"

虚拟机操作命令:
vagrant halt | up | status | reload | ssh | destroy

1.当前目录下,初始化一个虚拟机实例(生成Vagrantfile文件,config.vm.box='boxName')

vagrant init [boxName]

boxName :Vagrantfile文件中的config.vm.box配置项。本地vagrant box list中的Box镜像名。
默认值为base。需修改成实际存在的box镜像名,方可运行vagrnat up命令。
如boxName不在本地box列表中,等启动vagrnat up命令后,将自动联网下载关联的box镜像。

2.根据当前目录的Vagrantfile配置文件启动虚拟机

vagrant up

3.如更改Vagrantfile配置文件后,需重载虚拟机才能生效:

vagrant reload

4.结束所有操作后,请记得关闭虚拟机:

vagrant halt

5.虚拟机不再使用时,可直接销毁。释放磁盘空间。
该命令会直接删除.vagrant/machines/default/virtualbox目录下的所有文件

vagrant destroy

6.当需开启另一台虚拟机时,为避免冲突,可将当前虚拟机挂起,进入休眠状态。

vagrant suspend

更多虚拟机操作管理命令:

$ vagrant ssh       # SSH 至虚拟机
$ vagrant resume    # 唤醒虚拟机
$ vagrant status    # 查看虚拟机运行状态


vagrant 添加带版本号的 box https://segmentfault.com/a/1190000016657185
如何安装并设置Vagrant https://linux.cn/article-9301-1.html

Vagrant仓库: https://app.vagrantup.com/boxes/search

未经允许不得转载:沙滩星空的博客 » vagrant安装与使用

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址