如何在个人 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、检查虚拟机环境配置
  1. 打开 VMware,选择 “编辑” 中的 “虚拟网络编辑器”。
  2. 选择对应的虚拟网络(如VMnet8),确保未勾选 “使用本地 DHCP 服务将 IP 分配给虚拟机”。
  3. 配置子网 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!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。