您现在的位置是:首页 >学无止境 >基于Oracle VM VirtualBax搭建CentOS7集群网站首页学无止境

基于Oracle VM VirtualBax搭建CentOS7集群

tzc_xyh 2024-06-17 10:19:56
简介基于Oracle VM VirtualBax搭建CentOS7集群

模板机搭建教程参见:
https://blog.csdn.net/qq_37316272/article/details/87691835

一、配置模板机

在根据上面的教程安装好模板机之后,还需要进行一些必要的配置

1.设置网卡默认启动

如果安装的是精简版,默认网卡不随操作系统启动,需要修改为默认随操作系统启动

进入网络设置相关文件夹cd /etc/sysconfig/network-scripts
image.png
编辑ifcfg-enp0s3文件,vi ifcfg-enp0s3。修改ONBOOT=yes,重启虚拟机reboot
image.png

2.安装必要软件

#软件仓库
yum install -y epel-release
#如果是精简版系统,需要安装一下软件
yum install -y net-tools  #网络工具,又ifconfig等命令
yum install -y vim    #编辑器
yum install -y rsync  #远程同步工具

3.修改ip地址

在集群中,必定希望ip是稳定的,如果重启后会变动,会带来不必要的麻烦

进入网络设置相关文件夹cd /etc/sysconfig/network-scripts
image.png
编辑ifcfg-enp0s3文件,vi ifcfg-enp0s3。修改BOOTPROTO=dhcp(动态分配)为static,添加下图三个配置项修改后需重启生效。
image.png

4.修改主机名

vim /etc/hostname,修改后需重启
image.png

5.添加主机名映射

vim /etc/hosts,修改后需重启
image.png

二、复制模板机

首先需要关闭需要复制的虚拟机,然后右键,选择复制

image.png

设置新虚拟机的名称,点击复制

image.png

复制完成后,只需要修改IP地址hostname即可

三、xsync脚本

给集群中每一台机器,都安装jdk。如果一台台安装过去是很慢的,而且还需要进行环境变量的配置

1.配置SSH免密登录到其他服务器

cd ~ 进入根目录,ls -al查看隐藏文件,如果使用过ssh命令,就会有一个.ssh的文件夹。(如果没有,ssh一次就会有)
image.png
进入.ssh文件夹,生成密钥ssh-keygen -t rsa(输入命令后按3下回车),会生成公钥+私钥
image.png
将公钥转发到其他服务器上,ssh-copy-id hadoop103,就可以实现ssh hadoop103免密登录
image.png

2.rsync(远程同步工具)

#本台主机同步数据给其他主机
rsync -av $pdir/$fname $user@$host:$pdir/$fname
#从其他主机同步数据
rsync -av $user@$host:$pdir/$fname $pdir/$fname
#在C主机上操作:A主机同步数据给B主机
rsync -av $Auser@$Ahost:$pdir/$fname $Buser@$Bhost:$pdir/$fname

需要两台服务上都安装远程这个工具,否则会提示如下错误

image.png

3.基于上述两个操作为基础,编写xsync脚本

如果希望脚本可以在任意目录执行,需要将脚本写在echo $PATH输出的文件夹下

/root/bin目录下,执行vim xsync

#!/bin/bash
#判断参数个数
if [ $# -lt 1 ]
then
   echo NOT Enough Arguement!
   exit;
fi
#遍历集群
for host in hadoop102 hadoop103 hadoop104
do
   echo =============== $host ============
   #遍历参数,要同步的多个文件
   for file in $@
   do
     #判断文件是否存在
     if [ -e $file ]
         then
            #获取父目录
            pdir=$(cd -P $(dirname $file); pwd)
            #获取文件名
            fname=$(basename $file)
            #在目标服务器上,新建目录(如果不存在)
            ssh $host "mkdir -p $pdir"
            #同步文件
            rsync -av $pdir/$fname $host:$pdir
         else
            echo $file does not exists!
      fi
    done
done

赋予权限chmod 777 xsync,在任意目录下可以免密同步文件。
image.png

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。