需求
为了满足日益增长的学习需要,跟上新时代技术的脚步,需要在本地部署多节点服务器环境,最基础的要求就是每个虚拟机和宿主机之间都能互相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
需要修改的地方有:将BOOTPROTO
的dhcp
改成static
,ONBOOT
的no
改为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地址
- 如有更优的解决方案或看法,可以在留言区留言交流~