作者:sdfasdfqg | 来源:互联网 | 2023-06-22 16:14
工作当中碰到需求要使用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机器如下:
同理克隆其他需要的虚拟机。即可以创建多台虚拟机组建集群实验环境。