环境准备:一个已经安装好的虚拟机
要求:
删除了 /etc/udev/rules.d/70-persistent-net.rules 这个文件后,关机,保存快照,并且在克隆其他机器之前没有开机,否则/etc/udev/rules.d/70-persistent-net.rules会生成两个MAC地址,导致克隆出来的虚拟机的eth0网卡不能使用
我使用的虚拟机的主机名是repo,如何安装一个虚拟机可以参考文章:
在Windows中安装一台Linux虚拟机
远程连接工具:xshell_5.0.0553
1. 克隆4台虚拟机
注意:如果磁盘容量无压力,可以创建完整克隆,创建链接克隆可以节省磁盘,但有时候会出现一些问题!
可以看到,我们用之前的虚拟机 CentOS-6 克隆出来一台新的虚拟机 node001
使用相同的方法,再克隆3台虚拟机:node002、node003、node004
2. 配置克隆出来的4台虚拟机
(1) 修改IP地址
编辑每台虚拟机上的 /etc/sysconfig/network-scripts/ifcfg-eth0
配置文件,只修改IP地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0
- node001的IPADDR修改为:192.168.9.101
- node002的IPADDR修改为:192.168.9.102
- node003的IPADDR修改为:192.168.9.103
- node004的IPADDR修改为:192.168.9.104
(2) 配置主机名
①编辑每台虚拟机上的 /etc/sysconfig/network
配置文件,修改主机名
vi /etc/sysconfig/network
例如在 node001 的 /etc/sysconfig/network 文件中,应该这样修改:
NETWORKING=yes
HOSTNAME=node001
依此类推:
- node002 的主机名修改为 node002
- node003 的主机名修改为 node003
- node004 的主机名修改为 node004
② 编辑每台虚拟机上的 /etc/hosts
配置文件,配置其他机器主机名和IP的映射
vi /etc/hosts
这个配置文件的作用是,使得虚拟机之间可以使用主机名来访问彼此,而不必用IP,这里的配置就是给IP和主机名做映射,如果你之后又添加的新的虚拟机,并且想让所有的机器可以通过主机名访问它,那么你应该在所有虚拟机的hosts
文件中都加入这个新的虚拟机的IP和主机名的映射。
注意:在第一步的修改中,每台虚拟机只修改自己的主机名,而在本步配置中,每台虚拟中的/etc/hosts
文件中都需要配置本机和其他所有机器的主机名和IP地址的映射,即我们的4台虚拟机的/etc/hosts
文件中的内容是一样的,如下:
③ 打开 C:\Windows\System32\drivers\etc\hosts 文件作修改
这样就可以在 Windows 中使用虚拟机的主机名来访问它们
(3) 补充
如果在克隆之前,原来的虚拟机没有删除/etc/udev/rules.d/70-persistent-net.rules
这个文件,那么克隆好的虚拟机在启动之后会在该文件中生成一个MAC地址(每个虚拟机在第一次启动后都会在该文件中生成MAC地址,不论之前该文件中有没有MAC地址),一个虚拟机中有两个MAC地址是会造成冲突的!如果该文件中有两个MAC地址,如下所示:
解决办法:
把第一个红框中的内容删掉,把第二个红框最后的"eth1"改为"eth0"
修改后的效果如下:
3. 测试
(1) 使用每台虚拟机 ping 其他四台虚拟机,ping 外网,看是否成功,如果有错误,检查上面提到的三个配置文件,比如 node001 应该做以下测试:
- ping repo
- ping node002
- ping node003
- ping node004
- ping www.baidu.com
(2) 使用windows ping 5台虚拟机,检查windows 是否可以和虚拟机通信
测试成功后,关机,为每个虚拟机保存快照,一定要养成保存快照这个习惯
4. 使用远程登录工具连接虚拟机
使用XShell作为远程登录的管理工具,XShell的下载和安装不再赘述