oracle vm virtualbox 虚拟光盘_Vagrant-虚拟机管理利器

工作中,经常需要使用虚拟机来测试各类软件的配置使用,原来一直使用virt-install来安装虚拟机,采用这种方式,首先要创建虚拟硬盘,接下来要下载合适的操作系统镜像,仅完成这两步,差不多一个小时就过去了。后面发现了Vagrant,感觉方便了不少。

Vagrant是什么

Vagrant可以通过代码方式快速、可重复创建针对不同虚拟环境的虚拟机。可以一次性地、自动创建多个环境相同的虚拟机,对于软件开发和测试尤其有用。简单理解Vagrant就是操作虚拟机的一个wrapper,使用它可以方便的管理VirturlBox、VMWare、HyperV和Libvirt创建的虚拟机。

软件安装

测试使用的宿主机操作系统为:Debian GNU/Linux 10 (buster)

本文使用VirturlBox作为provider(实现虚拟化的软件Vagrant称为provider)演示

1,安装VirtualBox 6.1

# 更新仓库sudo apt update# 导入VirtualBox GPG keysudo apt -y install wget gnupg2wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -# 添加VirtualBox 仓库echo "deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian buster contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list# 安装VirtualBoxsudo apt updatesudo apt install linux-headers-$(uname -r) dkmssudo apt install virtualbox-6.1

2,安装Vagrant

# 下载Vagrant包,太低版本的vagrant不支持virtualbox-6.1curl -O https://releases.hashicorp.com/vagrant/2.2.10/vagrant_2.2.10_x86_64.deb# 安装sudo apt updatesudo apt install ./vagrant_2.2.10_x86_64.deb

基本使用

完成环境的配置和软件的安装,现在演示如何使用

1,创建一个目录,比如/home/aneirin/vagrant-project1

2,在该目录里执行命令“vagrant init debian/buster64”,生成文件“Vagrantfile”,该文件是虚拟机的配置文件,里面每条指令都有详细的解释。这里选择“debian/buster64” Box(可以理解为操作系统镜像,Vagrant官网有很多现成的Box供你选择)

3,启动虚拟机,仅需一条命令:vagrant up,它会下载debian/buster64 Box,因为笔者已经下载过了,所以很快操作系统为debian,版本为buster64的虚拟机就运行起来了

仅仅三步,一台虚拟机就搞定了。玩转这台虚拟机,简单记住下面命令就够用了,

vagrant ssh //连接虚拟机,公钥认证vagrant已经给你配置好了vagrant halt //关闭虚拟机vagrant destroy //销毁虚拟机

真的,不能再简单了。

高级篇

当然,有时候会有些特殊需求,比如多加块硬盘,多配置一个网口,实现这些就需要对Vagrantfile进行修改,笔者最近需要测试Ceph集群的一些特性,刚好有个现成的Vagrantfile文件,如下:

# -*- mode: ruby -*-# vi: set ft=ruby :# All Vagrant configuration is done below. The "2" in Vagrant.configure# configures the configuration version (we support older styles for# backwards compatibility). Please don't change it unless you know what# you're doing.Vagrant.configure("2") do |config|  config.vm.network "private_network", type: "dhcp"  config.vm.define "ceph1" do |ceph1|    ceph1.vm.box = "debian/buster64"    ceph1.vm.hostname = "ceph-1.example.com"    ceph1.vm.provider "virtualbox" do |vb|      unless File.exist?('/tmp/secondDisk.vdi')        vb.customize ['createhd', '--filename', '/tmp/secondDisk.vdi', '--variant', 'Fixed', '--size', 10 * 1024]      end      vb.memory = "2048"      vb.customize ['storageattach', :id,  '--storagectl', 'SATA Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', '/tmp/secondDisk.vdi']    end  endend

也没有增加太多内容,就为虚拟机加多了一个网口和硬盘,顺便把主机名和内存大小都给定义了。

注意:

  • 增加硬盘属于实验性的功能,需要配置环境变量:
export VAGRANT_EXPERIMENTAL="disks"
  • 默认Vagrant会使用rsync将当前目录的内容同步到虚拟机“/vagrant”目录下,利用这一特性,可以方便地实现宿主机和虚拟机之间的文件共享

以后开发同学搞测试,再也不用麻烦运维了,都自己搞定。

希望这篇文章能帮到你!

fc12f4514e18e47bdb905c843b9d0aec.png
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值