Centos7虚拟机集群配置

三台虚拟机的网络信息预设

centos701(hostname) 192.168.2.123(IP) 192.168.2.1(网关)
centos702(hostname) 192.168.2.124(IP) 192.168.2.1(网关)
centos703(hostname) 192.168.2.125(IP) 192.168.2.1(网关)

虚拟机集群网络环境配置

1、在windows中配置VMware Network Adapter VMnet8的网关

2、编辑虚拟机网络编辑器

设置网关、子网、起始IP和结束IP地址

image-20200721130418119

image-20200721130506276

3、配置CentOS网卡信息

# 查看网卡信息
[root@centos701 ~]# ifconfig

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.123  netmask 255.255.255.0  broadcast 192.168.2.255
        inet6 fe80::20c:29ff:fe86:5f95  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:86:5f:95  txqueuelen 1000  (Ethernet)
        
        ...
        
# 配置网卡ens33
[root@centos701 ~]# vi /etc/sysconfig/network-scripts/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=68163d8e-06e4-43dc-9992-c4476a0febb3
DEVICE=ens33
ONBOOT=yes				# 修改
IPADDR=192.168.2.123	# 修改
NETMASK=255.255.255.0	# 修改
GATEWAY=192.168.2.1		# 修改
DNS1=114.114.114.114	# 修改
DNS2=8.8.8.8			# 修改

# 重启网络服务
[root@centos701 ~]# systemctl restart network

4、配置主机名

[root@centos701 ~]# vi /etc/hostname
centos701

# 查看主机名
[root@centos701 ~]# hostname

5、配置主机名映射IP地址

windows中也要添加地址映射 ( IP地址前空一格生效)

C:WindowsSystem32driversetchosts

[root@centos701 ~]# vi /etc/hosts

192.168.2.123 centos701
192.168.2.124 centos702
192.168.2.125 centos703

6、配置网络服务

[root@centos701 ~]# vi /etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8

# 重启网络服务
[root@centos701 ~]# systemctl restart network

7、关闭防火墙 (windows防火墙也要关闭,不然不能从windows访问虚拟机)

# 查看防火墙状态
[root@centos701 ~]# firewall-cmd --state

# 停止防火墙
[root@centos701 ~]# systemctl stop firewalld.service

# 禁止firewall开机启动
[root@centos701 ~]# systemctl disable firewalld.service 

8、安装JDK

# 新建目录
 mkdir /usr/java

# 上传tar压缩包至 /usr/java中并解压
 tar zxvf jdk-8u152-linux-x64.tar.gz

# 编辑配置文件,并添加一下配置信息
 vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_152
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

# 使配置文件生效
source /etc/profile

# 查看java版本
java -version

9、克隆两个完整的虚拟机 centos702和 centos703

克隆完成后做以下事情

  • 适当降低两个虚拟机的内存
  • 修改两台虚拟的 IP 并删除UUID(硬件地址ID删除后自动生成且唯一)
    • vi /etc/sysconfig/network-scripts/ifcfg-ens33
  • 修改主机名
    • vi /etc/hostname

SSH免秘钥登录

生成公钥和私钥,私钥留给本机,公钥发给其他主机

centos701(其他两台按照此方法操作)

  • 生成密钥:ssh-keygen -t rsa (一直回车)

    • 密钥存放位置:/root/.ssh
    • id_rsa:私钥
    • id_rsa.pub:公钥
  • 发送私钥(本机): ssh-copy-id localhost , 需要输入centos701节点(root)的密码

  • 发送公钥(702/703):ssh-copy-id centos702/centos703, 需要输入centos702节点(root)的密码

测试免秘钥登录centos702

ssh centos702

scp的使用

img

rsync的使用

img

推文件:

rsync -av /tmp/test.txt  192.168.2.123:/tmp/test.txt

拉文件

rsync -av  192.168.2.123:/tmp/test.txt  /tmp/test.txt

指定ssh端口

rsync -av -e "ssh -p 22" 192.168.2.123:/tmp/a.txt  /tmp/a.txt

xsync集群分发脚本

basename:获取路径下文件名称

[root@CentOS01 bin]# basename /opt/module/kafka/config/consumer.properties  consumer.properties

dirname:获取绝对路径信息

[root@CentOS01 bin]# dirname /opt/module/kafka/config/consumer.properties      /opt/module/kafka/config

1、创建群发脚本文件xsync

touch /usr/local/bin/xsync

2、配置群发脚本

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi

#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 获取当前用户名称
user=`whoami`

#5 循环
for((host=2; host<4; host++)); do
        echo ------------------- centos70$host --------------
        rsync -rvl $pdir/$fname $user@centos70$host:$pdir
done

修改脚本 xsync 具有执行权限

chmod a+x xsync

使用群发

# 直接发送此文件到centos702和centos03对应的目录中
xsync xxx.x 
原文地址:https://www.cnblogs.com/code-duck/p/13354709.html