Tool 杂谈——高效配置 Centos 集群环境
公众号:技术小厨师
关注小厨师,烹饪美味的技术餐
⚠ 本文较长,请分期食用,注意实践与理论结合
本文的核心内容是 4、5、6 节
1. 前言
在刚拿到服务器的时候,第一个问题就是环境配置。作为编辑器未包含main类型怎么解决一个 Javaer,给新机器配置 JDK 和搭建中间件集群已经是家常便饭的事情了。配置工作是软件技术是学什么机械的,但是往往因为网络等因素而变得耗时,那有没有一劳永逸的办法呢?本文将为你揭晓答案。
2. 环境与前提条件
本文将会带java面试题读者快操作系统是对什么进行管理的软件速实现对三台机器的基础环境配置,并且留下一个手脚架和编辑器哪个好用实践java环境变量配置方法以供读者配置其他环境使用。
- Windows 11
- VMware Workstation 16
在这里需要读者准备好 Centos 镜像和 JDK linux 压缩包
- cjava是什么意思entos:www.centos.org/download/
- JDK:www.oracle.com/java/techno…
我操作系统有哪些的习惯是更加偏向使用压缩包来进行安装,因为压缩包的好处就是安装位置由自己选择,方便统一管理
3. 配置 Centos 集群
这里我们将选择搭建 3 台虚拟机来模拟真实的服务器集群环境,读者可以选linux必学的60个命令择自己搭建然后直接跳到第 4 节,也可以选择跟着我的节奏来搭建 centos 集群。最终本软件节搭建成功的效果如图所示,
3.1 创建一个 centos 虚拟机
如linux创建文件果你已经创建好了,那么你可以选择跳过本节
-
打开新建虚拟机向导,这里我们选择自定义
-
点击两次下一步后,这里我们选择创建一个空白的虚拟硬盘,下一步
-
这里因为我下载的是 Centos 7 x64 的镜像,所以我的配置如下所示,下一步
-
配置虚拟机名和存放位置,下一步
-
虚拟机配置(处理器和内存配置),如果你不需要使用可视化操作界面的话,可以调低一点。当然,这些配置之后可以修改,所以不用太担心。
-
选择 NAT 网络,这对我们之后配置虚拟网络的非常关键,下一步
-
IO 控制器和磁盘类型我们不需要做变动,直接下一步就行
-
磁盘配置,大linux必学的60个命令家可以参考我的配置
-
后面的配置都无关紧要了,如果没有什么需要自定义的地方读者可以选择一直下一步到完成
-
配置操作系统镜像 到刚创建好的linux删除文件命令虚拟机,为其配置操作系统镜像,如图所示,
-
启动虚拟机,完成操作系统设置 如果读者使用的镜像也是 centos 7 的话,接下来的步骤基本相同。选择好语言和键盘后将会跳转到当前界面,
我们接下来要在这个界面完成几项设置,
-
SOFTlinux重启命令WARE SELECTION:软件设置,我的习惯是只安装一个最小的,只有命令交互界面的 centos,如果读者有使用 GUI 界面的习惯可以选择另外一个选项。
-
NETWORK & HOST NAME:配置网络,我们要让 centos 能够连接上网络
将如图所示开关打开
上述配置完成后我们选择 Begin Installation,之后会跳转到如图java是什么意思界面,
按照它的指引配置 Root 密码和用户即可,这里作者配置 root 账号密码为 123456
-
-
安装完进行一波重启,应该就能进入如图编辑器小说所示的命令交互界面了
3.2 配置虚拟网络
下面我们需要配置虚拟网络,配置的目的主要是为了模拟真实的网络环境,让虚拟机在宿主机上拥有自己的静态 ip,并且虚拟机之间能够成功访问彼此。
如果读者计划使用服务器,而不是本地虚拟机来实践的话,操作系统是什么的接口可以选择跳过这一节和编辑器小说后面的 3.4 节,在这两节我们主要做了这些工作,
- 配置 NAT 网关
- 通过克隆创建了三台虚拟机
- 点开 Vmware Workstation 的虚拟网络编辑器
- 点击更改设置通过 UAC 管理员设置后将软件工程专业会显示如图界面
-
下面我们添加一个虚拟网络 Vmnet8
点击添加网络,选择 Vmnet8,
创建成功后,将会如图显示,我们要做几个配置,
修改后长这样,
现在我们点进去 NAT 设置,看看网关地址,
一般来说如果你和我使用的是相同的配置,我们的网关地址都是 192.168.100.2,至此虚拟网java编译器络就配置好了,别忘了确定保存噢~
3.3 配置模板虚拟机网络
现在让我们进入之前创建的那台 centos 虚拟机,
-
修改网络配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
如果这时候提示 vjava培训im command not found,则读者需要通操作系统是对什么进行管理的软件过以下命令安装 vim
yum install -y vim
我们需要修改配置文件中的几项,编辑器
# 修改为 static BOOTPROTO=static ### 如果没有以下几项则添加 ### # 指定静态 ip IPADDR=192.168.100.100 # 指定前缀长度 PREFIX=24 # 指定网关 GATEWAY=192.168.100.2 # 指定 DNS DNS1=192.168.100.2
保存后重启虚操作系统是什么的接口拟机
-
测试是否已经成功配置网络
我们在宿主机尝试 ping 配置好的虚拟机 192.168.100.100,如下图所示,可以看到结果如下所示。
3.4 克隆虚拟机
上面我们创建了一个模板虚拟机,现在我们要用它来创建两个 ip 分别为 192.168.100.101 和 192.168.100.102 的虚拟机
-
选择克隆菜单
-
接下来的步java模拟器骤通过图示演示
下面配置虚拟机名称和存储位置点击完成即可。
-
通过上面的步骤克隆两个虚拟机编辑器和ide的区别后,我们只需要将之前的网络配置文件中的静态 IP 地址分别修改即可。这里我们java模拟器分别修改为 192.168.100.101 和 192.168.100.102
... # 指定静态 ip IPADDR=192.168.100.101 ...
... # 指定静态 ip IPADDR=192.168.100.102 ...
-
配置完成后,重启虚拟机,这时候应该有三台虚拟机正在运行,现在我linux系统安装们要验证三台虚拟机是否能够互通
这里读者使用了 XShell 来作为 SSH 工具,当然实际上直接使用虚拟机的 Terminal 也是没有问题的
让虚拟机之间互相 ping 一下,看看java语言是否能够联通
-
4. 配置 J编辑器小说DK 环境
本节我们首先会配置其中一台虚拟机的环境,这里我们配置 192.168.100.100 的 JDK 环境
按照操作系统作者习惯,一般软件压缩包会放置在 /opt/software 目录下,而其安装位置选择在 /optlinux删除文件命令/module,
mkdir /opt/software /opt/module
进入 software,然后将 JDK 压缩包上传上去,上传成功后编辑器哪个好用我们通过 ll 查看,
进行解压,linux常用命令
tar -zxvf /opt/software/jdk-8u321-linux-x64.tar.gz -C /opt/module/
进入解压好的 jdk 目录,
cd /opt/module/jdk1.8.0_321/
pwd,然后复制一下路径,配置环境编辑器手机版变量时会用到。
现在我们进入环境变量目录,
cd /etc/profile.d/
创建一个自定义的脚本,
vim my_env.sh
将下面的内容输入到文件中进行保存,
export JAVA_HOME=/opt/module/jdk1.8.0_321/
export PATH=$PATH:$JAVA_HOME/bin
使得环境变量生效,
source /etc/profile
检查 Java 环境是否生效,
java -version
这里可能有读者有疑问,为什么不直接修改 /etc/profile 文件?而是通过在 profile.d 目录下创建一个自己的配置文件。首先,是不推荐大家修改 profile,相较于创建一个专门的文件来管理自定义环境变量,追加式地修改 profile 不容易维护,并编辑器哪个好用且容易修改错误,导致其他系统变量出现问题。
5. Linux 集群分发介绍
5.1操作系统的主要功能是 SCP 命令介绍
scp
是 secure copy 的简写,用于 linux 下远程文件拷贝的命令,功能和 cp 是类似的,只不过强制linux必学的60个命令使用 SSH 连接javaee加密的方式。通常linux必学的60个命令来说如果不配置服务器之间的免密登录,那么每次使用命令都linux系统将需要输入目标服务器的账户密码。
scp
的命令的简单使用格式如下所示:
scp -r local_path remote_username@remote_ip:remote_path
- local_path:本地文件路径
- remote_user软件name:远程服务器的用户名
- remote_ip:远程服务器 ip 地址
- remote_path:要拷贝到的远程路径
下面我们简单使用一下,我们尝试使用这条命令从 192.16java环境变量配置8.100.100 拷贝 JDK 安装目录到 192.168.100.101,
scp -r /opt/module/ root@192.168.100.101:/opt/module/
这时候会提示你非对称加密指纹的警告,我们输入 yes 再继续,
接下来会提示你需要输入密码才能继续,输入密码回车后,你将会看到一大段输入,和 cp 命令的输出是一个道理的,
重新执行
scp
命令之后还是Java需要重新输入密码的,这很麻烦,在第六操作系统节,作者将会介绍如何配置免密登录
我们到 192.168.100.101 的目录下验证是否已经拷贝成功,
细心编辑器哪个好用的读者再重复执行一次拷贝命令,会发现 scp
命令会重复完linux必学的60个命令整地拷贝整个 module 并以覆盖的形式传送到指定服务器,我们编辑器小说将会看到和第一次执行 scp
命令一操作系统的主要功能是样的输出。换言之,scp
命令无论远程服务器指定目录下是否已经存在相同的文件,scp
都会重复地拷贝,这样带来许多无用的拷贝工作,造成了很多额编辑器中用代码高亮有什么好处外的耗时。
事实上,我们希望找到一种类似 SVN 或者 Gi软件商店t 版本控制工具的同步方式,操作系统是一种而不需要每一次都进行完整的拷贝,那么接下来介绍的命令将会以一种镜像同步的方式解决集群分发问题。
5.2 RS软件YNC 命令介绍
rsync
主要用于备份和镜像同步。相较于 scp
,它具备速度更快、避免复制相同内容等优点。
rsyn编辑器c
的命令的简单使用格式如下所示:操作系统的五大功能
rsync -av local_path remote_username@remote_ip:remote_path
现在我们尝试使用 rsync
来将 JDK 同步到 192.168.100.102,
rsync -av /opt/module/ root@192.168.100.102:/opt/module/
读者可能需要先安装一下
rsync
,yum install -y rsync
第操作系统是一种什么软件一次执行的前两步和前面的软件技术专业 scp
一样,都是要保存远程服务器的密钥指纹和输入密码,后续执行就只需要输入密码了。
输入密码回车执行后,由于是第一次同步 module 路径,那么第一次肯编辑器小说定是全量同步的,也就是操作系统有哪些和拷贝是没有什么去别的。当我们重复执行这条命令后,你会发现和 scp
有所不同,
命令会很快执行完毕,因为 rsync
使用的是增量同步的方式,由于文件没有经过修改,那么 rsync
不会产java语言生任何文件拷贝操作。
现在linux常用命令我们尝试同步 /etc/profile.d/my_env.sh 配置文件到其他服务器中,
rsync -av /etc/profile.d/my_env.sh root@192.168.100.101:/etc/profile.d/
rsync -av /etc/profile.d/my_env.sh root@192.168.100.102:/etc/profile.d/
读者将会看到以下输出,
现在我们往linux重启命令配置文件中添加一些注释,
# Java Home
export JAVA_HOME=/opt/module/jdk1.8.0_321/
# add to path
export PATH=$PATH:$JAVA_HOME/bin
再次执行 rsync,只不过这时候我们选择同步整个 profile.d 路径,
rsync -av /etc/profile.d/ root@192.168.100.101:/etc/profile.d/
读者会发现 rsync
只同软件步了被修改的 my_env.sh
文件,我们也就验证了 rsync
增量同步的特性。这个特性非常有用,加入我们在 /opt/module 和 /etc/profile.d 目录下分别放置着非常多的软件目录和配置文件,rsync 能够帮助我们实现修改一处然后同步到多处的需求。
5.3 集群分发脚本
通过上面我们介绍了 rsync 命令的使用,在使用中我们发现一个问题,如果需要同步一个路径到多个服务器时,我们需要执行下面的多条命令,并且如果需要同步的服务器越多,命令执行的次数就越多,
rsync -av local_path root@192.168.100.101:remote_path
rsync -av local_path root@192.168.100.102:remote_path
...
我们能不能有一种一劳永逸的办法,我只需要给命令提供路径,它就自动帮我同步到所有节编辑器中用代码高亮有什么好处点呢?那这就是 shell 脚本的命令了,下面提供一个脚本供读者使用,
#!/bin/bash
# 判断参数是否足够
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
# 遍历集群所有 ip
for host in 192.168.100.100 192.168.100.101 192.168.100.102
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 命令
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
如果读者使用了不同的 ip 地址,则只需要修改linux脚本这一处为你的 ip 列表,
...
for host in ip1 ip2 ip3 ... ipn
...
下面我们来使用这个脚本,
cd
vim syncall
然后将上面的脚本写编辑器软件入文件中并保存。
修改脚本执行权限,使其能够被编辑器中用代码高亮有什么好处执行,
chmod +x syncall
验证脚本是否能够被执行,
./syncall /etc/profile.d/
可以看到除了要处理密钥linux删除文件命令指纹和输入多次密码之外,脚本是正常执行的。
拷贝到 bin 目录以便全局可用,
cp syncall /bin
至此你已经能够在任何地方使linux删除文件命令用这个集群分发脚本了。java培训
6. SSH 免密登录
因为篇幅问题,我们不在本文介绍 SSH 免密登录原理,直接提供步编辑器135骤给大家。
-
生成本机的公私钥
cd .ssh/ ssh-keygen -t rsa
然后直接敲回车,让它做默认选择
-
拷贝公钥到指定服务器
ssh-copy-id 192.168.100.100 ssh-copy-id 192.168.100.101 ssh-copy-id 192.168.100.102
期间会需要输入指定服务器的 root 密码
注意,如果读者希望其他服务器也能互相无软件技术密登录,则需要到 101 和 102 的服务器上重复执行上面的步骤。如果读者希望不适用 root 账号来做无密登录,则需要切换到其他用户账户,并重复上面步骤即可。
-
使用集群分发来验证是否配置成功
一路畅通软件商店~
7. 总结经验
本文核心的内容是 SCP
与 RSYNC
的使用与集群分发脚本。经验linux必学的60个命令之谈,如果想要快速配置一台新购买的服务器,那么我建议本地保存有一些常用的模板机,然后通过在远程服务器安装 rsync
,并通过启动模板机做集群分发即可快操作系统是对什么进行管理的软件速完成模板配置linux系统安装。