热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

virtualbox快速搭建多个虚拟机集群环境

工作当中碰到需求要使用virtualbox搭建多个linux虚拟机。将搭建的过程做一个记录。软件配置:virtualbox5.1.38+vagrant1.8.6+win10一.制作

工作当中碰到需求要使用virtual box搭建多个linux虚拟机。将搭建的过程做一个记录。

软件配置:

virtual box 5.1.38+vagrant 1.8.6+win10


一.制作虚拟机镜像

制作虚拟机的镜像有两种方式,一种是通过virtual box中新建虚拟机,采用iso镜像执行常规的安装流程制作一个镜像,还有一个种方式就是利用virtual box+vagrant的组合,通过导入现有的box文件快速生成一个可以运行的虚拟机,然后再对虚拟机进行修改制作镜像。本文采用的是vagrant+virtual box组合的方式。

1.分别安装virtual box和vagrant软件,启动virtual box ,然后打开命令行,切换到工作目录,这里使用的是c:/vagrant/test。

输入vagrant -v,输出版本号,则表示vagrant安装成功。


2.准备现有的box镜像,下载box镜像,本文采用的是ubuntu16的镜像

资源地址:https://c4ys.com/archives/1230

导入镜像


vagrant box add ubuntu16 D:/data/ubuntu16.box


其中 ubuntu16为导入后镜像的name,D:/data/ubuntu16.box为本地镜像的路径。导入后可查看导入的镜像。


在添加了box之后,系统中会生成镜像文件,查看目录C:\Users\Carter\.vagrant.d\boxes(本次安装环境的存放box镜像的目录)

会出现一个ubuntu16的文件夹,进入文件夹里层,可以发现一个Vagrantfile的文件,里面有记录了登录系统的初始账号密码。

3.根据镜像生成虚机实例。

执行 vagrant init 命令,会在当前目录下生成一个虚机的配置文件,Vagrantfile。


打开目录下的配置文件可以看到只有一个配置项config.vm.box=“base”

这个配置项表示虚机实例引用镜像名称。,修改配置项的值与box列表中的镜像名称,即config.vm.box=“ubuntu16”。


然后执行vagrant up启动虚机实例,如果采用默认的配置启动,会报错,提示找不到base镜像,启动成功后如下图:


同时,在virtual的界面上也可以看到一个出现了一个正在运行的虚拟机实例。


重点来关注一下虚拟机实例的网络情况,点击设置->网络,可以看到虚机默认是有一张网卡,网卡的连接方式是NAT,但是界面上面没法看到虚拟机IP网段和虚拟机IP,这里我们配置自定义的NAT类型网络,然后让虚拟机加入该网络,同时为虚拟机设置静态的IP。


系统初始登录的账号密码比较复杂,比避免直接输入密码错误,可以采用粘贴密码的方式,virtual box自带了共享复制粘贴功能,但本次试验没有成功,采用xshell方式远程连接虚拟机登录,修改密码或者设置root账号密码,方便后续的登录操作。

点击网卡的高级->端口转发,可以看到主机的2222端口映射到虚拟机的22端口(ssh登录端口)。


打开xshell工具,配置ssh登录的IP为本机IP,端口为2222,连接,账号密码使用前述Vagrantfile文件中的账号密码,使用xshell登录主要是密码可以方便的复制粘贴,不需要手动输入。登录进去后,设置root账号的密码为简单密码,如123456。即账号密码

root/123456,方便后面登录。然后退出。


点击管理->全局设定,打开全局设定界面,同时切换到网络配置项如下图,可以看到默认是没有预定义的NAT网络,现在手动添加NAT网络。


点击右侧的添加按钮,会添加一条网络记录,再点击编辑弹出网络设置界面,修改网络名称为 vmnet1,默认是采用DHCP自动分配IP的,我们要设置静态IP,取消支持DHCP勾选项,然后点击OK保存。


然后设置虚机实例添加到vmnet1网络,点击设置,再设置界面中选择网络,然后在网络配置中选择连接方式为NAT网络,由于只配置了一个NAT类型的网络,在下册的界面名称会自动出现vmnet1。点击OK保存,就设置了虚拟机网络,但是这时虚拟机还没有IP地址,要启动后,在虚拟机里面配置IP地址。


关闭运行中的虚拟机,在设置->常规设置中将虚拟机重新命名为node1。然后启动虚拟机,让设置生效。这里启动会需要点时间。

启动后,以root账号登录,输入ifconfig,可以看到虚机有一个网口,网口上面还没有配置IP地址


编辑/etc/network/interfaces文件,添加网口enps03的配置如下。


保存退出,然后重启网络:/etc/init.d/networking restart

查看网络:ifconfig,可以看到配置已经生效。


virtual box中的NAT下的虚机不能直接通过IP的22端口做SSH连接,还得通过端口转发的方式连接虚拟机。

点击管理->全局设定,选择网络设置,编辑vmnet1网络。


点击端口转发,配置本机的2222端口映射到当前虚拟机(10.0.2.5)的22端口。


然后利用远程连接工具xshell连接虚拟机,连接配置如下:


登录后查看IP验证下:


以上就完成了一个镜像的制作。


二.由镜像制作虚拟机

由虚拟机镜像制作虚拟机就容易很多,先将制作好的虚拟机镜像关机。

1.右键点击虚拟机,复制,弹出复制配置页面,


选择完全复制虚拟机,同时勾选初始化所有网卡MAC地址,复制。


启动node2虚拟机,登录后修改/etc/network/interfaces,修改enp0s3网口的IP地址为10.0.2.6。保存,然后重启。


然后配置SSH连接,管理->全局设定->网络。在vmnet1中添加端口转发。本机的3333端口映射到10.0.2.6虚拟机。


xshell连接配置主机 127.0.0.1,端口3333,登录以后验证连接的是10.0.2.6机器如下:


同理克隆其他需要的虚拟机。即可以创建多台虚拟机组建集群实验环境。

 

 



推荐阅读
  • 汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 在Win10上安装Centos7
    博主之前是用VMWare安装Centos机器的但是后来发现,还是比较麻烦的.需要各种配置比较繁琐,后来接触了VargrantVirtualBox后发现安装Centos,如此简单1. ... [详细]
  • Vagrantfile介绍
    2019独角兽企业重金招聘Python工程师标准Vagrantfile流浪者的说明书描述需要一个怎样的开发环境:什么类型的虚拟机,怎样配置 ... [详细]
  • C/C++ 应用程序的安装与卸载解决方案
    本文介绍了如何使用Inno Setup来创建C/C++应用程序的安装程序,包括自动检测并安装所需的运行库,确保应用能够顺利安装和卸载。 ... [详细]
  • 2019年独角兽企业招聘Python工程师标准课程概览
    本文详细介绍了2019年独角兽企业在招聘Python工程师时的标准课程内容,包括Shell脚本中的逻辑判断、文件属性判断、if语句的特殊用法及case语句的应用。 ... [详细]
  • 在使用 PyInstaller 将 Python 应用程序打包成独立的可执行文件时,若项目中包含动态加载的库或插件,需要正确配置 --hidden-import 和 --add-binary 参数,以确保所有依赖项均能被正确识别和打包。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
  • 深入解析Unity3D游戏开发中的音频播放技术
    在游戏开发中,音频播放是提升玩家沉浸感的关键因素之一。本文将探讨如何在Unity3D中高效地管理和播放不同类型的游戏音频,包括背景音乐和效果音效,并介绍实现这些功能的具体步骤。 ... [详细]
  • binlog2sql,你该知道的数据恢复工具
    binlog2sql,你该知道的数据恢复工具 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 在Android应用开发过程中,开发者经常遇到诸如CPU使用率过高、内存泄漏等问题。本文将介绍几种常用的命令及其应用场景,帮助开发者有效定位并解决问题。 ... [详细]
  • 本文详细介绍了Linux系统中信号量的相关函数,包括sem_init、sem_wait、sem_post和sem_destroy,解释了它们的功能和使用方法,并提供了示例代码。 ... [详细]
  • 《构建高可用Linux服务器(第4版)》已面市
    首先感谢读者朋友们一路支持和捧场,《构建高可用Linux服务器(第4版)》已面市,在当当、天猫华章和京东、互动出版网及亚马逊 ... [详细]
author-avatar
sdfasdfqg
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有