如何在个人 PC 上使用虚拟机软件(VMware)基于 CentOS 7 创建多个虚拟服务器(非集群部署)?
如何在个人 PC 上使用虚拟机软件(VMware)基于 CentOS 7 创建多个虚拟服务器(非集群部署)?
在我们学习 LInux 时需要搭建一定的环境来进行实操,典型的 LNMP 集群就是一个基础环境,即需要在我们的虚拟机软件上创建这样的几个虚拟服务器:Ansible 服务器、web 服务器、MySQL 服务器。其中,Anisble 服务器用于控制服务器节点。
一、搭建环境目标
我们搭建的环境需要实现的目标是:内网互通、SSH连接、随时克隆拓展。
注意: 本文中的所有步骤的实现都是在 VMware 中的 CentOS 7 的默认命令行窗口中的,因此没有安装 SSH 工具( Xshell 等)的小伙伴也可以跟随接下来的操作完成。
二、VMware 网络模式
VMware 提供 3 种网络模式:
| 模式 | 是否推荐 | 说明 |
|---|---|---|
| NAT | ✅ 推荐 | 可以上网 + 内网互通 |
| 桥接 | ✅ 推荐 | 和物理机同网段 |
| Host-Only | ✅ 实验推荐 | 纯内网环境 |
建议:实验环境用 NAT 或 Host-Only
接着查看我们电脑上安装的 VMware 的 NAT 网段,在页面左上角工具栏单机 “Workstation”,选择 “编辑”,单击 “虚拟网络编辑器”,此时会出现一个弹窗,其中 VMnet8 就是我们 VMware 的网络配置信息,我们需要记住的是最后一栏的子网地址,以笔者的为例:192.168.21.0。


三、创建第一台模版服务器(关键)
在个人电脑上使用虚拟机软件搭建 LNMP 学习环境,切忌重复性地给每一个虚拟机服务器安装系统和配置工具。我们只需要安装好一台服务器,并将其做成模版后,进行克隆,就可以批量地创建满足我们需求的虚拟服务器了。
1、新建虚拟机和安装 CentOS 7
使用 VMware 创建一台新的虚拟机并安装 CentOS 7 的详细教程,小伙伴们可以移步到笔者的 GitHub 个人主页 “Cloud_Shy” 进行借鉴:VMware Workstation 安装虚拟机指南。

2、配置网络为静态 IP
输入以下命令编辑网卡信息:
vi /etc/sysconfig/network-scripts/ifcfg-eth0

注意: 有些小伙伴的网卡名称可能是 “ens33”,只需要在对应处修改为 “ens33” 即可。
找到其中这些配置行并进行修改,以笔者的为例:
BOOTPROTO=static # 设置为静态 IP 地址
ONBOOT=yes # 确保在启动时加载此配置。
IPADDR=192.168.21.10
# 设置为所需的IP地址。就是在 VMware 网络模式中查看到的 Vmnet8 的子网地址以及一个有效的后 8 位(1、253、254、255 除外)
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.21.2 # 网关地址
DNS1=8.8.8.8 # 首选 DNS 服务器
DNS2=1.0.0.1 # 备用 DNS 服务器

如上图页面下,键盘上输入 “i” 进行编辑,此时页面左下角会显示 “-- INSERT --” 的提示。同时,光标会在第一行的第一个字符下闪烁用于提醒当前位置。使用键盘上的上下左右方向键可以将光标移动到需要修改的位置。(这里涉及到 Linux 的 vi/vim 编辑器的简单使用,小伙伴们可以自行学习了解)

在确定相关信息修改完成后,按一下键盘上的 “Esc”,然后输入 “:wq ”。

敲击回车键后,会进行保存并退出,并且返回写入成功的提醒。

进行到这一步,按理说我们需要重启网络服务以使得新的 IP 配置生效。但是根据笔者的实际经验,为了避免以下问题的出现,小伙伴们还需要进行以下操作。
参考链接:CentOS7配置静态IP后变动的常见原因及解决方法详解 - 云原生实践
问题: 配置后 IP 地址仍会变动,尤其是在重启系统后,或者间隔一段时间后查看 IP,发现 IP 出现了变化。

解决方案:
a、检查虚拟机环境配置
- 打开 VMware,选择 “编辑” 中的 “虚拟网络编辑器”。
- 选择对应的虚拟网络(如VMnet8),确保未勾选 “使用本地 DHCP 服务将 IP 分配给虚拟机”。
- 配置子网 IP 地址段和子网掩码,确保与宿主机的IP地址段不冲突。

可以看到,笔者的 VMnet8 的配置信息中勾选了 “使用本地 DHCP 服务将 IP 地址分配给虚拟机”,因此需要点击 “更改设置” 进行修改。
在重新弹出的会话窗中取消勾选 “使用本地 DHCP 服务将 IP 地址分配给虚拟机”,然后点击应用,最后确认。

b、禁用NetworkManager服务
首先,检查 NetworkManager 的服务状态,没有安装的话可以使用命令 “yum install -y NetworkManager” 进行安装。输入以下命令:
systemctl status NetworkManager

显示 “active” 就表示正常运行,然后我们需要停止其服务,输入以下命令:
systemctl stop NetworkManager
systemctl disable NetworkManager

接着修改网络配置文件信息,添加配置参数,以防止 NetworkManager 控制该网络接口:
NMCONTROLLED=“no”

c、重启网络服务
接下来,我们需要重启网络服务,输入以下命令:
systemctl restart network
然后输入以下命令查看 IP 信息:
ifconfig
或者
ip addr


再次重启系统,验证是否修改成功。

可以看到,再次重启系统后,查看 IP 信息可以显示修改后的 IP 地址。
d、测试网络可用性
最后,再来测试一下网络是否可用。
ping -c 4 8.8.8.8
ping www.baidu.com

到这里,我们的网络设置就完成了。
3、安装基础工具
我们需要安装一些常用的工具,命令如下:
yum install -y vim net-tools wget lrzsz

提示:这里,无法安装成功的小伙伴可以自行学习了解一下如何更换镜像源。
接着,我们需要关闭防火墙用于实验:
systemctl stop firewalld
systemctl disable firewalld
最后,关闭 SELinux:
setenforce 0
sed -i 's/enforcing/disabled/g' /etc/selinux/config

4、形成模版
关机:
shutdown -h now
回到关机状态后,右键虚拟机 → 管理 → 克隆

选择完整克隆,

然后自定义一个命名,

点击完成,稍等一会儿就成功了。

四、创建多台虚拟服务器
在模版的基础上,我们克隆出几台新的服务器,命名分别为:Ansible、web1、web2、db1,对应的 IP 分别为 192.168.21.20 192.168.21.21 192.168.21.22 192.168.21.23
1、修改每台机器的主机名
使用如下命令修改每台机器的主机名,以便于标识区分。以 Ansible 服务器为例:
hostnamectl set-hostname ansible
重启后生效:

可以看到,重启后的新的主机名。

其他服务器类似,重复操作即可。

2、修改 IP 地址
这里就是重复先前的操作 “配置网络为静态 IP”,根据笔者的经验直接重启网络服务即可。
systemctl restart network

3、验证服务器互通
我们在任意一台服务器测试:
ping 192.168.21.21
ping 192.168.21.22
ping 192.168.21.23
没有特殊情况的话,应该都是可以连通的。

4、为 Ansible 服务器配置 SSH 免密
首先,我们需要在 Ansible 服务器中查看当前目录下是否存在 “.ssh” 文件夹,使用命令:
ls -a

显而易见,笔者这里是没有该文件夹的。因此需要进行创建,使用命令:
mkdir .ssh
再次查看,发现 “.ssh” 存在:

接着输入以下命令生成后 SSH Key:
ssh-keygen
然后一直敲击回车键即可完成。

使用以下命令来查看生成的两个文件是否存在:
tree .ssh

最后将生成 的 SSH Key 复制到其他服务器中,使用命令:
ssh-copy-id root@192.168.21.21
ssh-copy-id root@192.168.21.22
ssh-copy-id root@192.168.21.23
接着输入以下命令访问 web1 服务器:
ssh root@192.168.21.21

其他服务器重复操作即可。
想要退出其他服务器,输入命令:
exit
或者使用快捷键 “ctrl + d”。
总结
至此,如何在个人 PC 上使用虚拟机软件(VMware)基于 CentOS 7 创建多个虚拟服务器(非集群部署)的详细实现步骤已经梳理完毕。小伙伴们如果在实现过程中遇到卡壳之处,可以积极在评论区留言讨论,也可以多多百度一下寻求解决方法。Don’t be shy, dare to share!
所有评论(0)