Vagrant批量生成虚拟机

本文介绍了如何利用Vagrant批量生成虚拟机来搭建CAAS环境。首先,需要下载VirtualBox和Vagrant的特定版本。接着,通过Vagrant初始化一个包含多个服务器配置的box。然后,配置Vagrantfile以定义集群中的虚拟机数量和参数。执行`vagrant up`即可创建和启动所有虚拟机,每个虚拟机分配2核2G内存。最后,通过SSH连接到各虚拟机进行使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发CAAS需要一堆机器,有时候还需要一堆干净的机器用来测试初始化集群和基础服务,如果每次都手工安装虚拟机,很显然效率太低,于是就开始使用vagrant。

一、下载

需要下载:

  • virtualbox https://www.virtualbox.org/
  • vagrant https://www.vagrantup.com/ 比较坑的是下载最新版后不能正常使用,告诉我最新的vagrant1.8.5不能创建linux虚拟机,要退回到1.8.4。好吧,我使用1.8.4,然后一堆错,告诉我不支持最新的virtualbox,要退回到5.0.x...

二、下载box

好不容易装好了,下载一个box开始测试,测试之前最好设置一下VAGRANT_HOME系统变量,否则会将box文件什么的都放到用户目录。新建一个目录G:/caas/,进入命令行切换到此目录,执行

vagrant init puppetlabs/centos-7.2-64-nocm

这时会下载一个centos7.2的box,并在目录下生成一个名为Vagrantfile的文件。 所谓box是一个打包好的虚拟机,和docker的镜像有点类似。

三、配置集群

参考如下:

# -*- mode: ruby -*-# vi: set ft=ruby : servers = { :hadoop1 => '192.168.1.11', :hadoop2 => '192.168.1.12', :hadoop3 => '192.168.1.13', :hadoop4 => '192.168.1.14', :hadoop5 => '192.168.1.15', :hadoop6 => '192.168.1.16', :hadoop7 => '192.168.1.17' } Vagrant.configure("2") do |config| config.vm.box = "puppetlabs/centos-7.2-64-nocm" config.vm.box_check_update = false servers.each do |server_name, server_ip| config.vm.define server_name do |server_config| server_config.vm.hostname = "#{server_name.to_s}" server_config.vm.network :private_network, ip: server_ip server_config.vm.provider "virtualbox"do |vb| vb.name = server_name.to_s vb.memory = "2048" vb.cpus = 2endendendend

可以看到配置了7台机器,每个2核2G内存。

四、生成虚拟机并启动

1、首先可以迅雷手动去下载centos7.2版本的virtualbox(非必须)

https://atlas.hashicorp.com/puppetlabs/boxes/centos-7.2-64-nocm/versions/1.0.1/providers/virtualbox.box

2、用varant box 添加box,名字要和上一步init的名字保持一致(非必须)

vagrant box add --name puppetlabs/centos-7.2-64-nocm G:\caas\virtualbox.box

3、输入

vagrant up

可以看到依次生成了虚拟机并启动(如果中途下载速度特别慢的话,可以中断然后执行完上两步之后再执行up命令),控制台输出类似于:

G:\Vagrant\caas>vagrant up Bringing machine 'caas1' up with 'virtualbox' provider... Bringing machine 'caas2' up with 'virtualbox' provider... Bringing machine 'caas3' up with 'virtualbox' provider... Bringing machine 'caas4' up with 'virtualbox' provider... Bringing machine 'caas5' up with 'virtualbox' provider... Bringing machine 'caas6' up with 'virtualbox' provider... Bringing machine 'caas7' up with 'virtualbox' provider... ==>caas1:Importing base box 'puppetlabs/centos-7.2-64-nocm'... ==>caas1:MatchingMAC address for NAT networking... ==>caas1:Setting the name of the VM: caas1 ==>caas1:Clearing any previously set network interfaces... There was an error while executing `VBoxManage`, a CLI used by Vagrant for controlling VirtualBox. The command and stder

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值