需求

为了满足日益增长的学习需要,跟上新时代技术的脚步,需要在本地部署多节点服务器环境,最基础的要求就是每个虚拟机和宿主机之间都能互相ping通,且能够连接外网。

0x01 准备

需要提前下载安装好VirtualBox和Centos7镜像,国内下载的话可以使用清华大学的镜像源,配合IDM等下载工具下载更快。

VirtualBox:https://mirror.tuna.tsinghua.edu.cn/help/virtualbox/

Centos7:https://mirror.tuna.tsinghua.edu.cn/centos/7/isos/x86_64/

Centos7推荐下载完整版,即CentOS-7-x86_64-DVD-1908.iso

安装完成后截图如下

0x02 部署

1.创建虚拟机

选择右侧的新建,填写名称,选择虚拟机文件夹存放的文件夹,类型选择Linux,版本选择Other Linux (64-bit)

我的电脑是16G内存,这里我选择内存为2G,可以视自己电脑配置进行选择,

选择现在创建虚拟硬盘,之后在弹出的 窗口依次选择VDI动态分配

选择虚拟硬盘的大小,按照我的需求20G是够用的,点击创建后虚拟机创建完毕

2.挂载系统镜像

点击新建好的虚拟机,依次选择设置、系统,在主板选项卡中,将光驱的启动顺序拉到第一个。

选择存储,在右侧分配光驱处,点击右侧光盘图标,选择choose a disk file,加载你下载好的Centos7系统镜像,点击OK退出

3.安装系统

点击启动,选择启动盘为刚才选择的镜像文件点击启动,系统会自动执行Centos7安装程序

选择语言然后继续

按照需求选择安装方式,我这里选择最小安装,同时还需要点进去安装介质里面确认一下出来,点击开始安装耐心等待系统安装,这个阶段用的时间可能比较久

在安装过程中,点击上方用户设置root账号的密码,是否创建用户无所谓

安装完成后点击重启

重启后,使用刚才创建的root账号登陆,到这一步,安装完成

0x03 网卡设置

1.关闭防火墙

由于是本地使用,可以把防火墙先关掉,会避免很多奇奇怪怪的问题
使用命令systemctl disable firewall.service关闭防火墙

2.配置虚拟网卡

在虚拟机窗口上方依次选择设备网络,连接方式选择桥接网卡,界面名称选择你的本机网卡,点击OK确认

此时的虚拟机需要为虚拟机分配一个ip,运行dhclient命令让系统为虚拟机分配一个可用的ip,使用最小安装的时候,系统中没有安装ifconfig等命令,需要我们自己使用命令yum install net-tools.x86_64安装net-tools 包。

安装完成之后使用ifconfig命令查看分配到的ip地址,并且记下来,我这里分配到的ip是192.168.1.151,这个ip地址现在还是动态分配的,为了日后使用的方便,需要将他改成固定ip

3.获取宿主机ip信息

在宿主机命令行窗口中运行ipconfig /all,查看ip地址等信息

记录下默认网关(GATEWAY)、DNS服务器(DNS1)、子网掩码(NETMASK)

NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1

4.固定ip设置

进入目录

cd /etc/sysconfig/network-scripts/
vim ifcfg-enp0s3

默认设置如下

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPUA_FAILURE_FATAL=no
IPU6 INIT=yes
IPU6_AUTOCONF=yes
IPU6_DEFROUTE=yes
IPU6_FAILURE_FATAL=no
IPU6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=3ee43c9f-898a-4783-b1b7-xxxxxxx
DEUICE=enp0s3
ONBOOT=no

需要修改的地方有:将BOOTPROTOdhcp改成staticONBOOTno改为yes,在底部添加IPADDR=192.168.1.151,即刚才获取到的ip地址,还有刚才查询的宿主机网卡信息,修改后文件如下

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPUA_FAILURE_FATAL=no
IPU6 INIT=yes
IPU6_AUTOCONF=yes
IPU6_DEFROUTE=yes
IPU6_FAILURE_FATAL=no
IPU6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=3ee43c9f-898a-4783-b1b7-xxxxxxx
DEUICE=enp0s3
ONBOOT=yes
IPADDR=192.168.1.151
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1

保存退出后,使用命令systemctl restart network.service重启网络,到这一步基本配置完成

5.测试

到这里,已经使用桥接的方式部署好了服务器,我的宿主机ip是192.168.1.182,虚拟机ip是192.168.1.151

,现在测试一下是否ping得通

虚拟机可以ping得通宿主机,能够正常连接到外网

宿主机也可以ping通虚拟机,说明搭建成功

ssh服务器连接也正常

0x04 部署多个服务器

1.复制镜像

关闭虚拟机,在virtualBox管理器的刚才创建好的虚拟机上面右键复制,按照如下图设置,选择完全复制

耐心等待即可

2.配置新的ip地址

启动复制后的虚拟机,root账号和刚才设置的是一样的,运行dhclient获取ip地址,使用ifconfig命令查看,获取之后按照上面的方法进行配置固态ip即可

3.测试

同时启动两个部署好的两个虚拟机,可以发现是可以互相ping得通的,多节点服务器部署完成,理论上按照此方法可以一直叠加下去

注意事项

  • 使用最小安装Centos7会比较快,不过会缺少一些常用的包,自行yum解决
  • 复制虚拟机的适合切记选择为所有的网卡重新生成MAC地址
  • 如有更优的解决方案或看法,可以在留言区留言交流~
Last modification:June 3rd, 2020 at 11:40 am