如果不熟悉Linux命令行就不要看了
1.互联互通
在哥们(hhh)的帮助下,搞到四台阿里云服务器,不过挺寒碜的配置:
编号 | IP | 用户名 | 密码 | 系统配置 | 备注 |
---|---|---|---|---|---|
1 | 8.219.xx0.46 | root | —- | Ubuntu 22.04 | 2vCPU/4GiB | 主节点 |
2 | 4x.236.2x.161 | root | —- | Ubuntu 22.04 | 2vCPU/1GiB | 从节点 |
3 | 4x.236.15x.1x2 | root | —- | Ubuntu 22.04 | 2vCPU/2GiB | 从节点 |
4 | 47.2x6.x15.x57 | root | —- | Ubuntu 22.04 | 2vCPU/1GiB | 客户端 |
1.1 创建用户
写了一个shell脚本,在四台服务器上创建用户dase-dis
(注意确保四台服务器的用户名和密码一致才可以使用):
先sudo apt install sshpass
,在Linux下执行脚本:
1 |
|
执行结果:
1.2 服务器之间免密登录
实现四台服务器之间ssh免密登录
1.2.1 安装openssh
在四台服务器上执行
sudo apt-get install openssh-server
安装openssh
1.2.2 更改主机名
在1号机(主节点,在文章开头编号1)执行:
sudo hostnamectl set-hostname ecnu01
更改主机名
在2号机(从节点,在文章开头编号2)执行:
sudo hostnamectl set-hostname ecnu02
…以此类推
sudo hostnamectl set-hostname ecnu03
sudo hostnamectl set-hostname ecnu04
四台服务器都执行完毕后,断开ssh重新连接,观察到主机名字已经成功更改
1.2.3 更改hosts
原理:
Hosts
文件是本地计算机上的文本文件,用于将主机名与IP
地址关联起来,绕过DNS
解析。Linux hosts
文件的格式通常是:
IP地址 主机名 [别名...]
在
/etc/hosts
路径下,每行代表一个主机名到IP
地址的映射。例如:
1
2
3 127.0.0.1 localhost
::1 localhost
192.168.1.2 example.com其中,127.0.0.1 和 ::1 映射到 localhost,192.168.1.2 映射到 example.com。hosts 文件允许手动指定主机名与 IP 地址的对应关系,用于特定网络配置和测试。
开始修改:
在四台机上执行以下操作:
sudo vim /etc/hosts
在hosts
文件后追加(ip需要改成自己的哇):
1 | # IP地址 主机名 |
!!!!!!!注意!!!!!!!!!
!!!!!!!注意!!!!!!!!!
!!!!!!!注意!!!!!!!!!
在云服务器配置时, 本机使用内网IP, 其余为公网IP
查看内网IP:
hosts数值示例:
1.2.4 拷贝ssh公钥
在所有机器依次执行下面命令:
作用是将除主机外的三台机的ssh公钥拷贝到主中,实现其余三台机器到主机的ssh免密登录
ssh-keygen -t rsa
生成ssh密钥ssh dase-dis@ecnu01 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub
发送公钥到主机sudo service ssh restart && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
重启本机ssh服务+解决ssh文件夹的权限问题
主机执行:
作用是将主机的ssh认证拷贝到其余三台机中,实现其余三台机器之间的ssh免密登录
scp ~/.ssh/authorized_keys dase-dis@ecnu02:/home/dase-dis/.ssh/authorized_keys
scp ~/.ssh/authorized_keys dase-dis@ecnu03:/home/dase-dis/.ssh/authorized_keys
scp ~/.ssh/authorized_keys dase-dis@ecnu04:/home/dase-dis/.ssh/authorized_keys
上面的三条命令等价于命令:for host in ecnu02 ecnu03 ecnu04; do scp ~/.ssh/authorized_keys dase-dis@$host:/home/dase-dis/.ssh/; done
然后主机执行:
sudo service ssh restart && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
运行结果:
验证:
互相ssh过去看看要不要输入密码
1 | ssh dase-dis@ecnu01 |
1.3 关闭防火墙
如果你是本地虚拟机:
systemctl stop firewalld.service
systemctl disable firewalld.service
如果你是云服务器:
请确保你知道自己在干什么, 关闭防火墙(开放所有端口)可能导致服务器被入侵
2.配置Java环境
在四台机器上配置:
可能你需要在上面oracle网站登陆后上手动找到下载地址,然后使用wget下载
下载:
wget https://download.oracle.com/otn/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jdk-8u202-linux-x64.tar.gz
解压:
tar -zxvf jdk-8u202-linux-x64.tar.gz
环境变量配置:
sudo vi /etc/profile
添加以下内容:
1 | 路径自己配自己的 |
刷新:
source /etc/profile
验证:
java -version