三台虛擬機的網絡信息預設
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地址
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:\Windows\System32\drivers\etc\hosts
[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的使用
rsync的使用
推文件:
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