网站首页 > 编程文章 正文
工作中,经常需要使用虚拟机来测试各类软件的配置使用,原来一直使用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 key
sudo apt -y install wget gnupg2
wget -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
# 安装VirtualBox
sudo apt update
sudo apt install linux-headers-$(uname -r) dkms
sudo apt install virtualbox-6.1
2,安装Vagrant
# 下载Vagrant包,太低版本的vagrant不支持virtualbox-6.1
curl -O https://releases.hashicorp.com/vagrant/2.2.10/vagrant_2.2.10_x86_64.deb
# 安装
sudo apt update
sudo 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
end
end
也没有增加太多内容,就为虚拟机加多了一个网口和硬盘,顺便把主机名和内存大小都给定义了。
注意:
- 增加硬盘属于实验性的功能,需要配置环境变量:
export VAGRANT_EXPERIMENTAL="disks"
- 默认Vagrant会使用rsync将当前目录的内容同步到虚拟机“/vagrant”目录下,利用这一特性,可以方便地实现宿主机和虚拟机之间的文件共享
以后开发同学搞测试,再也不用麻烦运维了,都自己搞定。
希望这篇文章能帮到你!
猜你喜欢
- 2024-10-15 超能课堂(138):硬盘的S.M.A.R.T.是什么?如何看懂它
- 2024-10-15 教你打造网络与存储设备:群晖DS 1618+IT团队老伙伴的新相逢
- 2024-10-15 AHCI SSD和NVMe SSD的区别(ahci和固态硬盘)
- 2024-10-15 网络与存储设备 篇一:Synology DS 1618+ IT团队老伙伴的新相逢
- 2024-10-15 windows系统启动常见报错信息判断电脑故障
- 2024-10-15 工业级2.5寸SATA固态硬盘(SSD)(2.5寸工业主板)
- 2024-10-15 容器跨主机存储入坑指南(容器与主机之间的数据拷贝命令)
- 2024-10-15 SATA固态硬盘性能遇瓶颈,NVMe协议来帮忙
- 2024-10-15 浪潮服务器——板载raid UEFI模式下配置步骤
- 2024-10-15 戴尔7467-Inspiron 灵越 14 7000硬件测评!
你 发表评论:
欢迎- 05-09Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 05-09《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- 05-09MapStruct架构设计(mapstruct @mapping)
- 05-09分布式微服务架构组件(分布式微服务架构设计)
- 05-09Java Swing组件下的JButton实例(java swing 组件)
- 05-09java基础都在这了,小主们拿去吧(java基础是指什么)
- 05-09AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 05-09【Spring Boot】WebSocket 的 6 种集成方式
- 最近发表
-
- Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- MapStruct架构设计(mapstruct @mapping)
- 分布式微服务架构组件(分布式微服务架构设计)
- Java Swing组件下的JButton实例(java swing 组件)
- java基础都在这了,小主们拿去吧(java基础是指什么)
- AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 【Spring Boot】WebSocket 的 6 种集成方式
- Java 中五种最常见加密算法:原理、应用与代码实现
- 用注解进行参数校验,spring validation介绍、使用、实现原理分析
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)