主要目标:
1.创建3个虚拟机, centos7系统
2.虚拟机之间互相访问
3.物理机访问各虚拟机, 通过xshell建立ssh连接
4.物理机网络变化时,仍能访问
用途:
NoSQL课程使用, 课前环境搭建,个人备忘
基本信息:
物理机: windows 11 操作系统
虚拟机软件:VMware Workstation Pro 16.2.4 (之前安装,非最新版本)
虚拟机安装系统: Cent OS 7-2009
1.基础环境搭建
Windows 系统通过 VMware 搭建 CentOS 7
系统的首台虚拟机
该首台虚拟机可自定义命名, 以下用NoSQL_1
代指.
windows物理机当前环境
物理机: Windows 11 , 准备60G以上空余磁盘空间
网络: 连接Wifi, 家用无线路由器, 路由器设置IP与MAC绑定,用于环境搭建期间物理机的IP固定,方便测试; 全部搭建完成后物理机ip地址可变.
1.1 下载centos7安装文件
阿里云centos镜像站
https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.78c11b11B5M2K7
CentOS-7-x86_64-2009.iso下载地址
https://mirrors.aliyun.com/centos/7/isos/x86_64/?spm=a2c6h.25603864.0.0.5ad64511utjqH4
选择dvd或everything均可
1.2 Windows物理机准备
1.2.1 安装 VMware Workstation 16 Pro
下载地址:
https://customerconnect.vmware.com/cn/downloads/info/slug/desktop_end_user_computing/vmware_workstation_pro/16_0
下载后安装,使用超过一个月则需填写许可证秘钥
安装成功的标志有两项:
(1) win + r -> ncpa.cpl
打开控制面板网络适配器页面,出现两个虚拟接口: VMnet1
、VMnet8
(2) win + r -> services.msc
打开windows本地服务, 确认出现四个服务.
根据VMware版本不同,服务数量可能不同,本文使用vmware版本为16.2.4
将vmware的相关服务的启动类型
均设置为自动
问题解决:
如果上述两项成功标志不满足, 可以在vmware的“编辑
”下的“虚拟网络编辑器
”中点击“更改设置
“、”还原默认设置
”,可重新将虚拟网卡还原,并需要重启物理机
,然后查看是否恢复。
由于本物理机此前使用vmware安装过虚拟机,长期禁用适配器vmnet8后网络出现故障,因此进行了还原默认设置.
1.2.2 Windows防火墙设置
以下设置允许虚拟机ping
物理机
Windows Defender 防火墙 -> 高级设置 -> 入站规则
找到
文件和打印机共享(回显请求-ICMPv4-In)
文件和打印机共享(回显请求-ICMPv6-In)
四项状态均调整为已启用
,允许
windows设置中,防火墙和网络保护
, 如果以后将防火墙还原为模式设置
,或更改了域、专用、公用网络
的防火墙状态,入站规则
也会发生变化,出现问题时可检查此处。
1.3 VMware配置NAT模式
-
配置过程可参考:
https://blog.csdn.net/YeMaZhi/article/details/105043073
-
NAT模式原理:
NAT(地址转换模式)
NAT模式借助虚拟NAT设备和虚拟DHCP服务器,使得虚拟机可以联网。
在NAT模式中,主机网卡与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟网关VMnet8上,主机的虚拟网卡与虚拟网关VMnet8相连,
实现虚拟机的联网、主机与虚拟机的连接。物理机上的VMware Network Adapter VMnet8虚拟网卡主要是为了实现主机与虚拟机之间的通信。
-
配置思路:
adpter vmnet8、各centos7虚拟机、vmnet8交换机,三方保持在同一个网段,且ip不重复
例如:
VMware Network Adapter VMnet8:
IPADDR:
192.168.108
.201NETMASK:255.255.255.0
GATEWAY:
192.168.108.1
DNS1: 8.8.8.8
虚拟机1: nosql01
IPADDR:
192.168.108
.11NETMASK:255.255.255.0
GATEWAY:
192.168.108.1
DNS1: 8.8.8.8
DNS2: 114.114.114.114
虚拟机2: nosql02
IPADDR:
192.168.108.x
…
此处的x
不能与网关、其他虚拟机、Adapter VMnet8的ip地址冲突,且不能为0或255
NETMASK,GATEWAY,DNS1,DNS2 设置相同
注意:
(1)虚拟机的网络设置可采用三种网络模式Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。三种模式的区别可参考: https://blog.csdn.net/zhang33565417/article/details/97779579
(2)vmware中的虚拟网络编辑器,可针对三种网络模式分别配置各自对应的虚拟交换机VMnet0(桥接模式)、VMnet1(仅主机模式)、VMnet8(NAT模式)
(3)本次搭建采用NAT网络模式,VMware Network Adapter VMnet8的作用是主机与虚拟机之间的通信,用于远程连接虚拟机.
(4)虚拟机的子网段不应和物理机网段相同.
本次搭建的网络结构:
如已经成功安装了1个虚拟机, 并熟悉vmware的设置、linux常用命令,可按照上图配置, 然后克隆虚拟机完成网络配置.
下文为详细步骤.
1.3.1 设置vmnet8虚拟交换机
vmware 编辑->虚拟网络编辑器->选中 vmnet8 ->更改设置
修改:
子网IP: 192.168.108.0, 该网段与物理机不在同一网段
子网掩码:255.255.255.0
继续点击->NAT设置
修改
网关IP: 192.168.108.1 此处与刚才设置的vmnet8的子网段处于同一网段(108),末尾设置为1
记住这个网关IP: 192.168.108.1,作为vmnet8虚拟网关的IP,用于虚拟机与外部通信
修改完成后->确定->返回虚拟网络编辑器窗口->应用->确定
1.3.2 固定adpter vmnet8虚拟网卡的IP
win + r -> ncpa.cpl
选择 VMware Virtual Ethernet Adapter for VMnet8 -> 右键->属性->选中 Internet协议版本4(TCP/IPv4)
填写固定ip地址
IPADDR: 192.168.108.201
ip地址不能冲突,与vmnet8虚拟网关在一个网段
NETMASK:255.255.255.0
GATEWAY:192.168.108.1
网关为vmnet8虚拟网关的ip地址
DNS1: 8.8.8.8
至此VMware端的网络配置完成, 完成后再安装CentOS7
1.4 VMwareWorkstation安装CentOS7
1.4.1 新建空的虚拟机
VMware新建虚拟机
自定义(高级)
选择稍后安装操作系统
虚拟机名称
可自定义虚拟机名称, 此处命名为 NoSQL_1
选择虚拟机保存的位置
1核
1024MB内存
使用NAT
创建新磁盘
最大磁盘大小:建议20G, 但本机的剩余空间不多,此处选择10G
虚拟磁盘拆分成多个文件
创建空的虚拟机完成
下一步安装CentOS7
1.4.2 安装CentOS7
虚拟机NoSQL_1
-> 编辑虚拟机设置
cd/dvd -> 使用ISO映像文件 -> 浏览 -> 选择已下载好的centos7 iso安装文件
确定 -> 开启此虚拟机
开始安装centos7
语言: english 或 chinese
时区:Asia/Shanghai
安装位置: 默认自动分区
网络和主机名:
打开网络连接, 设置主机名为 nosql01
,应用, 作为首台虚拟机的主机名, Done
(完成)
开始安装
安装期间, 可设置root密码
设置用户名密码, 并熟记密码
按两次 Done
等待安装完成, 重启
重启后默认进入第一个系统
输入登录的用户名:root
输入密码: 输入的密码屏幕不显示,请确保输入正确
备注:
软件选择的是最小安装 minimal install, 包含的软件包少
用户:root
密码:刚才输入的密码
1.5 CentOS7虚拟机设置固定IP
进入到网卡编辑目录 可通过
tab
键补全cd /etc/sysconfig/network-scripts/
查看文件列表
ls
不同的centos,网卡文件名会有不同,但开头都是ifcfg-
,此处显示ifcfg-ens33
.
ifcfg-lo
是本地回环接口,不是实际的网卡
编辑网卡
vi ifcfg-ens33
输入 i 进入编辑模式
编辑完成后
按ESC键 进入命令模式
输入 :wq 保存并退出
注意以上红框部分
ipaddr需在vmnet8虚拟网关的同一网段108
gateway设置成vmnet8虚拟网关的IP
dns设置两个
此时网卡配置完成, 但未生效
重启网卡使其生效
systemctl restart network.service
查看各网卡的ip地址
ip addr
ip已固定,ping测试外网和物理机
测试ping外网
ping www.baidu.com
看到有正常的输出则ctrl + c 终止
测试ping物理机
ping 192.168.0.102
这个192.168.0.102是物理机的ip地址
看到有正常的输出则ctrl + c 中断
[!note]
注意:windows物理机的ip地址查看方式
win + r -> cmd
如果物理机连接的是有线网,则看以太网适配器
如果物理机连接的是无线网,则看无线局域网适配器WLAN
1.6 关闭虚拟机防火墙
查看防火墙状态:
systemctl status firewalld
关闭正在运行的防火墙:
systemctl stop firewalld
禁止防火墙服务, 重启后不再自动开启:
systemctl disable firewalld
如果成功禁止则显示
removed ....
等信息
关闭selinux安全子系统
vi /etc/selinux/config
修改SELINUX=disabled
重启使修改生效
reboot
1.7 修改虚拟机主机名
在安装centos时已经修改了hostname
若想再次修改, 可使用如下命令
查看当前主机名:
hostname
设置即使重启后也生效的主机名:
格式为hostnamectl set-hostname 主机名
此处设置为:
hostnamectl set-hostname nosql01
该虚拟机作为nosql集群的第一台机器
1.8 保存快照
虚拟机 右键->快照->拍摄快照
[!warning]
网络配置完成,测试ping命令成功后,一定要保存快照,用于保存虚拟机状态, 出现问题时快速恢复
1.9 SSH远程连接虚拟机
安装XShell7
安装完成后, 解决数字小键盘不能输入数字的问题
文件->默认会话属性
初始数字键盘模式->设置为普通
连接虚拟机
文件->新建
用户名和密码填写虚拟机root用户的信息
成功连接后,可执行命令,效果:
当虚拟机开启后, 就可通过远程连接工具连接使用
测试成功后, vmware的客户机(虚拟机)以后可挂起
,保持当前状态, 不要轻易关闭
如果虚拟机挂起后还要关机, 则开启虚拟机后,在centos系统内部进行关机
, 不要在vmware中进行外部关机
2.虚拟机克隆生成NoSQL_2
2.1 克隆虚拟机NoSQL_1
关闭首台虚拟机NoSQL_1
NoSQL_1 右键->管理->克隆
通过克隆NoSQL_1
,生成NoSQL_2
, 开启NoSQL_2
,进行其他配置
2.2 配置NoSQL_2
更改主机名
hostnamectl set-hostname nosql02
重启生效
reboot
分别查看NoSQL_1和NoSQL_2网卡的uuid
nmcli con show
发现两台虚拟机的uuid相同
接下来使用uuidgen命令,为NoSQL_2
生成uuid并写入网卡文件
先查看网卡名称
cd /etc/sysconfig/network-scripts/
ls
确认网卡名称是ifcfg-ens33
使用uuidgen命令生成uuid并写入网卡文件ifcfg-ens33
sed -i '/UUID=/c\UUID='`uuidgen`'' /etc/sysconfig/network-scripts/ifcfg-ens33
重启生效
reboot
重启后查看ifcfg-ens33网卡文件中uuid是否已被修改
先查看网卡名称
cd /etc/sysconfig/network-scripts/
ls
修改该网卡文件
vi ifcfg-ens33
uuid已发生变化,但ip地址仍是nosql01
主机的ip,接下来继续修改IP地址IPADDR
按 i 进入编辑模式
修改
IPADDR
字段, 与NoSQL_1
的ip地址不能重复完成修改后, 按
ESC
进入命令模式输入 :wq 保存并退出
重启网卡使其生效
systemctl restart network
查看各网卡的ip地址
ip addr
测试连接公网
ping baidu.com
测试连接物理机
ping 192.168.0.102
此时xshell已经可以远程连接
其他命令
ctrl + l
清屏
rpm -qa | grep ssh 查看是否已安装ssh服务
ps -e | grep sshd 查看是否已开启sshd服务
windows远程连接工具:
SecureCRT
XShell
2.3 配置hosts
配置IP映射
vi /etc/hosts
按 i 进入编辑模式
添加两行:
192.168.108.11 nosql01
192.168.108.12 nosql02按 ESC 进入命令模式, 输入 :wq 保存并退出
重启网络使修改生效
systemctl restart network
[!note]
添加其他虚拟机节点后,可修改每一台虚拟机的host文件,添加各个节点的ip地址
虚拟机保存快照
克隆其他虚拟机过程与上述步骤同理
3.创建系统目录结构
以NoSQL_2为例, 创建系统目录结构
在/opt目录下创建software目录存放软件,servers目录存放数据库
cd /opt
mkdir /software
mkdir /servers
列出当前文件或目录的详细信息, 查看是否创建成功
ll
继续创建存放不同数据库的目录
mkdir /opt/servers/mongodb_demo
mkdir /opt/servers/hbase_demo
mkdir /opt/servers/redis_demo
mkdir /opt/servers/neo4j_demo列出当前文件或目录的详细信息, 查看是否创建成功
ll
虚拟机保存快照
4.虚拟机克隆生成NoSQL_3
NoSQL_2 -> 管理 -> 克隆-> 完整克隆 -> 命名: NoSQL_3
更改主机名
hostnamectl set-hostname nosql03
reboot
生成并更新uuid
查看当前uuid, 记忆尾号, 网卡名称
nmcli con show
核实网卡名称
cd /etc/sysconfig/network-scripts/
ls
生成uuid并更新到网卡配置文件中
sed -i '/UUID=/c\UUID='`uuidgen`'' /etc/sysconfig/network-scripts/ifcfg-ens33
reboot
修改网卡配置:
cd /etc/sysconfig/network-scripts/
lsvi ifcfg-ens33
核实uuid已经更新
修改IPADDR
为192.168.108.13
, 保持唯一性
systemctl restart network
ip addr
核实网卡地址已经更新
测试网络:
分别连接外网, 连接物理机, 物理机ip使用宿主机的实际ip
ping baidu.com
ping 192.168.0.102
xshell连接NoSQL_3的ip:192.168.108.13
配置hosts文件的IP映射:
添加现有的3个虚拟机节点, 更新hosts
vi /etc/hosts
末尾添加为:
192.168.108.11 nosql01
192.168.108.12 nosql02
192.168.108.13 nosql03
systemctl restart network
5.其他虚拟机更新hosts
修改hosts文件
vi /etc/hosts
末尾更新为:
192.168.108.11 nosql01
192.168.108.12 nosql02
192.168.108.13 nosql03
systemctl restart network
至此虚拟机之间可实现便捷的互相访问
ping nosql01
ping nosql02
ping nosql03
各虚拟机保存快照
6.其他问题
物理机重启后,xshell无法远程登录
确认以下项目:
(1)services.msc中vmware相关服务已启动
(2)ncpa.cpl中vmnet8的ip使用的是配置的固定ip\子网掩码\网关\dns
(3)防火墙高级设置的入栈规则 ICMP允许\已启用
(4)物理机能正常访问网络
以上均无问题,可依次采取下列不同方案:
(1)虚拟机已经启动后,再等1-2分钟,xshell能正常连接,问题解决
(2)仍未解决,则将虚拟机恢复到上一个快照(该快照需确保当时远程连接成功),问题解决
注意事项:
(1)虚拟机关机采用centos系统内部关闭, 例如init 0
,减少问题发生概率
(2)虚拟机挂起后,不要通过vmware再去关闭, 需要虚拟机开机后, 在其centos系统内部进行关机