在上一篇blog-【分布式集群搭建 一】虚拟机配置(VMware+Centos7+SecureCRT+AppNode)里讲到了如何创建一个虚拟机,在此基础之上,如果我们在虚拟机里部署了ElasticSearch、Kafka等等并且改了一堆配置之后,我们肯定不希望在其它机器上再搞一遍,所以克隆虚拟机就很有必要了。注意,克隆之前需要先将虚拟机关闭
拍摄快照
在克隆之前我们可以记录下当前虚拟机的状态,之后的克隆就基于当前虚拟机的快照进行复制,右键虚拟机-快照-拍摄快照
克隆虚拟机
拍摄完快照后就可以通过克隆操作克隆对应的快照了,右键虚拟机-管理-克隆,我们可以使用之前复制的快照进行克隆:
然后调整下目录即可:
出现如下信息就表明克隆成功了。
依照这种方法我们连续克隆两台虚拟机,形成一个三虚拟机的集群:
配置克隆虚拟机
因为三台机器使用了同样的IP会让我们产生困惑,所以我们需要修改三台机器的IP地址,分别在TML2和TML3的终端上进行操作:
修改ip地址
在终端里进行如下操作,进入网络配置页【注意,需要在root用户下进入操作】
cd /etc/sysconfig/network-scripts/
然后编辑配置文件:
vi ifcfg-ens33
可以看到如下的配置内容:
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=f76f157d-2d88-4a48-8809-5337ee077084 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.5.101 NETMASK=255.255.255.0 GATEWAY=192.168.5.2
分别在TML2和TML3上
把IPADDR=192.168.5.101修改为192.168.5.102和192.168.5.103
修改完后重启网络设置:
service network restart
修改完后分别查看:
AppNode也默然预置成功,只需要换域名即可访问不同的机器
TML1 http://192.168.5.101:8888/#/agent/1/sysinfo/network TML2 http://192.168.5.102:8888/#/agent/1/sysinfo/network TML3 http://192.168.5.103:8888/#/agent/1/sysinfo/network
修改主机名称
分别进入对应机器的AppNode,将原有主机名修改为ip地址
做完以上操作后,重启这三台虚拟机。
检测是否互通
分别检测三台机器,确认能互相ping通,那么我们的的三个虚拟机就搭建完毕了
通过AppNode可以统一管理:
修复AppNode问题
克隆虚拟机后存在一些问题,例如AppNode的授权序列号和机器ip不再匹配了:
这个时候就需要卸载重装下AppNode,首先进入对应虚拟机终端,完全卸载AppNode,
卸载AppNode
卸载受控端,提示是否确认卸载时,请输入 y 后回车,
appnode agent remove
卸载控制中心,提示是否确认卸载时,请输入 y 后回车。
appnode ccenter remove
清除残留数据和配置,如果要彻底清除卸载后的残留数据和配置文件,删除以下三个目录即可:
/opt/appnode/ccenter/ /opt/appnode/agent/ /opt/appnode/ui/
一个命令搞定:
rm -rf /opt/appnode/{ccenter,agent,ui}/
重装AppNode
因为卸载过,所以会出现域名解析错误,所以直接使用如下命令:
echo -e "nameserver 114.114.114.114\nnameserver 8.8.8.8" >> /etc/resolv.conf
然后再使用安装命令
INSTALL_AGENT=1 INSTALL_APPS=sitemgr INIT_SWAPFILE=1 INSTALL_PKGS='nginx-stable,php56,mysql56' bash -c "$(curl -sS http://dl.appnode.com/install.sh)"
安装完成后再次查看,即可正常显示: