配置多台Linux虚拟机——集群化环境前置准备

  • 创建多台虚拟机
  • 配置主机名映射
  • 配置SSH免密登录
  • 配置JDK环境
  • 关闭防火墙和SELinux
  • 添加快照
  • 补充命令 `- scp`


创建多台虚拟机

安装集群化软件,首要条件就是要有多台Linux服务器可用。

我们可以使用VMware提供的克隆功能,将我们的虚拟机额外克隆出3台来使用。

  1. 首先,关机当前CentOS系统虚拟机(可以使用root用户执行init 0来快速关机)
  2. 右键我的计算机->新建文件夹, 文件夹起名为:虚拟机集群

虚拟化HA集群 linux 虚拟化集群管理_服务器


3. 克隆

右键要克隆的虚拟机 -> 管理 -> 克隆

虚拟化HA集群 linux 虚拟化集群管理_服务器_02


虚拟化HA集群 linux 虚拟化集群管理_linux_03


虚拟化HA集群 linux 虚拟化集群管理_服务器_04


虚拟化HA集群 linux 虚拟化集群管理_服务器_05


虚拟化HA集群 linux 虚拟化集群管理_服务器_06


虚拟化HA集群 linux 虚拟化集群管理_主机名_07


虚拟化HA集群 linux 虚拟化集群管理_虚拟化HA集群_08

鼠标左键拖拽虚拟机集群文件夹

虚拟化HA集群 linux 虚拟化集群管理_linux_09

  1. 同样的操作克隆出:node2node3

虚拟化HA集群 linux 虚拟化集群管理_linux_10

  1. 开启node1,修改主机名为node1,并修改固定ip为:192.168.216.131

5.1、开启node1 ,鼠标右键,点击Open Terminal

虚拟化HA集群 linux 虚拟化集群管理_服务器_11

5.2、输入su - 并输入密码切换到root用户,修改主机名:

# 修改主机名
hostnamectl set-hostname node1

虚拟化HA集群 linux 虚拟化集群管理_主机名_12

5.3、进入网卡配置文件,修改IP地址

vim /etc/sysconfig/network-scripts/ifcfg-ens33
#键盘点击 i ,进入输入模式进行修改
IPADDR="192.168.216.131"

虚拟化HA集群 linux 虚拟化集群管理_运维_13

5.4、修改完成后按Esc键进入命令模式,然后输入:wq保存退出,重启网卡,最后输入ifconfig查看IP是否修改成功

# 重启网卡
systemctl stop network
systemctl start network
# 或者直接
systemctl restart network
# 查看ip
ifconfig

虚拟化HA集群 linux 虚拟化集群管理_虚拟化HA集群_14

  1. 同样的操作启动 node2node3,
    修改node2主机名为node2,设置ip192.168.216.132 修改node2主机名为node3,设置ip192.168.216.133
  • node2node3修改IP的时候,UUID可以随意修改一位,和第一台不同!

全部修改完成后,可以互相ping以下,如果能ping通,则修改成功!

ping 192.168.216.131
ping 192.168.216.132
  1. 配置FinalShell,配置连接到node1node2node3的连接

选择SSH连接(Linux),为了简单起见,建议配置root用户登录

虚拟化HA集群 linux 虚拟化集群管理_服务器_15

全部配置好后:

虚拟化HA集群 linux 虚拟化集群管理_虚拟化HA集群_16


FinalShell中分别双击node1node2node3建立连接

配置主机名映射

  1. 在Windows系统中修改hosts文件,填入如下内容:

在window系统中以管理员身份打开记事本,点击文件 -> 打开

路径C:\Windows\System32\drivers\etc ,选择所有文件,选择hosts

虚拟化HA集群 linux 虚拟化集群管理_虚拟化HA集群_17

在最后加入:

192.168.216.131 node1
192.168.216.132 node2
192.168.216.133 node3

虚拟化HA集群 linux 虚拟化集群管理_服务器_18


在windows中可以直接ping 主机名

虚拟化HA集群 linux 虚拟化集群管理_主机名_19

  1. 在3台Linux的 /etc/hosts 文件中,填入如下内容

( 3台都要添加)

vim /etc/hosts
# 最下面添加
192.168.216.131 node1
192.168.216.132 node2
192.168.216.133 node3

虚拟化HA集群 linux 虚拟化集群管理_虚拟化HA集群_20

配置好后,可以直接ping 主机名

虚拟化HA集群 linux 虚拟化集群管理_linux_21

配置SSH免密登录

简介

  • SSH服务是一种用于远程登录安全认证协议
  • 我们通过FinalShell远程连接到Linux,就是使用的SSH服务。

SSH服务支持:

  1. 通过账户+密码的认证方式来做用户认证
  2. 通过账户+秘钥文件的方式做用户认证

SSH可以让我们通过SSH命令,远程的登陆到其它的主机上,比如:

  • node1执行:ssh root@node2,将以root用户登录node2服务器,输入密码即可成功登陆
  • 或者ssh node2,将以当前用户直接登陆到node2服务器。

虚拟化HA集群 linux 虚拟化集群管理_主机名_22


退出到上一个用户,输入:

exit

SSH免密配置

后续安装的集群化软件,多数需要远程登录以及远程执行命令,我们可以简单起见,配置三台Linux服务器之间的免密码互相SSH登陆
1、在每一台机器都执行:ssh-keygen -t rsa -b 4096一路回车到底即可;(设置锁和钥匙

虚拟化HA集群 linux 虚拟化集群管理_linux_23

2、 在每一台机器都执行:(共享钥匙

ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

虚拟化HA集群 linux 虚拟化集群管理_服务器_24

3、执行完毕后,node1node2node3之间将完成root用户之间的免密互通

虚拟化HA集群 linux 虚拟化集群管理_linux_25

配置JDK环境

后续的大数据集群软件,多数是需要Java运行环境的,所以我们为每一台机器都配置JDK环境。

JDK配置参阅:Linux系统安装部署Tomcat(超详细操作演示)

关闭防火墙和SELinux

集群化软件之间需要通过端口互相通讯,为了避免出现网络不通的问题,我们可以简单的在集群内部关闭防火墙。

在每一台机器都执行

systemctl stop firewalld
systemctl disable firewalld

虚拟化HA集群 linux 虚拟化集群管理_主机名_26

  • Linux有一个安全模块:SELinux,用以限制用户和程序的相关权限,来确保系统的安全稳定。
  • SELinux的配置同防火墙一样,非常复杂。

在当前,我们只需要关闭SELinux功能,避免导致后面的软件运行出现问题即可,

在每一台机器都执行

vim /etc/sysconfig/selinux
# 将第七行,SELINUX=enforcing 改为
SELINUX=disabled
# 保存退出后,重启虚拟机即可,千万要注意disabled单词不要写错,不然无法启动系统

虚拟化HA集群 linux 虚拟化集群管理_虚拟化HA集群_27

添加快照

为了避免后续出现问题,在完成上述设置后,为 每一台虚拟机 都制作快照,留待使用,要先关机。

关机,输入:

init 0
# 如果重启,输入
init 6

右键虚拟机 -> 快照 -> 拍摄快照

虚拟化HA集群 linux 虚拟化集群管理_虚拟化HA集群_28

补充命令 - scp

后续的安装部署操作,我们将会频繁的在多台服务器之间相互传输数据。
为了更加方面的互相传输,我们补充一个命令:scp

scp命令是cp命令的升级版,即:ssh cp,通过SSH协议完成文件的复制。

  • 其主要的功能就是:在不同的Linux服务器之间,通过SSH协议互相传输文件。
  • 只要知晓服务器的账户和密码(或密钥),即可通过SCP互传文件。

语法:

scp [-r] 参数1 参数2 (把参数1 复制到参数2)

  • -r选项用于复制文件夹使用,如果复制文件夹,必须使用-r
  • 参数1本机路径远程目标路径
  • 参数2:远程目标路径本机路径

如:

scp -r /export/server/jdk root@node2:/export/server/
  • 将本机上的jdk文件夹, 以root的身份 复制到node2/export/server/
  • 同SSH登陆一样,账户名可以省略(使用本机当前的同名账户登陆)

如:

scp -r node2:/export/server/jdk /export/server/

将远程node2jdk文件夹复制到 本机的/export/server/

scp命令的高级用法

cd /export/server
scp -r jdk node2:`pwd`/
  • pwd == /export/server ,被飘号 包围的字符串会当作命令去执行,pwd变量记录当前路径
  • 将本机当前路径的jdk文件夹,复制node2服务器的 同名路径
    scp -r jdk node2:$PWD
  • 将本机当前路径的jdk文件夹,复制到node2服务器的 同名路径

一个点 .表示当前路径,两个点..表示上一层路径!

注:仅供学习参考,如有不足,欢迎指正!