From 9da86d3ed2b21c7df4bcf2dcd0110f788cded996 Mon Sep 17 00:00:00 2001
From: liuhai
Date: Thu, 14 Sep 2023 23:28:36 +0800
Subject: [PATCH] [Improvement][datasophon-init] readme.md module optimization
(#415)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* [Improvement][datasophon-init] 流程完善
* [Improvement][datasophon-init] 流程完善
* [Improvement][datasophon-init] readme.md module optimization
---
datasophon-init/README.md | 92 +++++++++++++++++++++++++--------------
1 file changed, 60 insertions(+), 32 deletions(-)
diff --git a/datasophon-init/README.md b/datasophon-init/README.md
index a9a453c1..66e53f16 100644
--- a/datasophon-init/README.md
+++ b/datasophon-init/README.md
@@ -18,6 +18,14 @@
觉得不错的话,star fork下,欢迎社区开发者共建DataSophon
+# datasophon-init模块特性
+
+* 简化集群部署过程中服务器操作系统的准备和配置环节;
+* 自动安装配置所需依赖减少集群运维人员的工作量;
+* 自动化配置减少因人为的疏忽而遗漏配置导致的安装失败;
+* 支持一次性全量服务器集群节点环境的自动初始化配置和后续新增扩展节点服务器环境的初始化;
+* 方便友好,支持自定义扩展二次开发来兼容不同类型的操作系统;
+
# dataSophon-init模块使用说明
## 一、使用前须知
@@ -82,64 +90,84 @@ drwxr-xr-x 2 root root 70 8月 7 10:54 sql
* dataSophon.ssh.port.i=22 #预备新增安装dataSophon集群的节点的SSH端口默认22;
* dataSophon.ssh.port.hostname.i=dataSophon05 #预备新增安装dataSophon集群的节点的主机名;
-## 三、组件使用说明(以下为针对首次使用)
-
-1、将datasophon-init整个目录的内容放到规划的集群主节点的/data目录下(mkdir /data);
-2、将packages.tar.gz 离线依赖库移到主节点的 /data/datasophon-init下并解压;下载链接:https://pan.baidu.com/s/1iqudVwDgg2x_OO35VLkkSg 提取码:6zrz
-3、准备服务器操作系统对应的iso镜像文件,建议使用everything版本的,这样包含的依赖包更全一点;
-4、离线YUM源配置:在未连接互联网的情况下预备安装datasophon的服务器已经配置好离线yum源,能够通过yum命令安装依赖包(此步骤为必须,因为初始化脚本中使用了"yum -y install xxxx"的方式安装依赖,如果没有yum源会导致安装失败 );
-离线YUM源配置方法(Ps:能连公网的用户就不用配置离线yum源了,直接配置为公共的源此时需要配置“yum.repo.need=false",该步骤都是在主节点上操作):
- 详情可查看配置脚本:init-private-yum-library-${initOS}.sh
- ①首先创建目录 'mkdir -p /data/private-yum-library_temp'然后将和操作系统匹配的操作系统iso文件移动到/data/目录下;
- ②在/data目录下创建private-yum-library目录:'mkdir -p /data/private-yum-library';
- ③执行挂载操作系统命令:mount -o loop /data/openEuler-22.03-LTS-SP2-everything-x86_64-dvd.iso /data/private-yum-library_temp,这种挂载重启服务器之后会失效,所以我们挂载完成后将ios内的文件全部拷贝出来做离线yum源用;
- ④在private-yum-library目录下创建两个子目录 repo 和 epel;
- ⑤将private-yum-library_temp目录下的文件全部拷贝到/data/private-yum-library/repo目录下:cp -r /data/private-yum-library_temp/* /data/private-yum-library/repo,另外不同操作系统挂载后所产生的目录不同,比如centos8的repo有两个BaseOS和AppStream;
- ⑥将原本的yum源的配置文件进行备份 :mkdir -p /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak;
- ⑦剩下的工作就交给脚本工具自己去处理了,epel目录是为了给需要自行配置离线eprl源的用户准备的,如果能配置epel建议进行配置,因为很多操作系统额外的很多工具包都在对应的epel中,配置之后在未来集群需要安装额外的扩展时会很方便;
-
-5、集群时钟源配置:集群NTP时钟默认使用Chrony,如使用其它的方式请自行安装配置,并将sbin/init.sh 脚本中的 initALL() 方法中的‘initAllNtpChronyService’ 和 ‘checkNtpChronyService’方法注释掉避免重复安装;
-6、脚本的初始化需要用到python环境,主要用到pssh进行集群间的命令执行控制,目前packages目录中pssh.tar.gz中已经内置了三个安装包:
- pssh-2.3.1-5.el7.noarch.rpm 需要python2.7的支持;
- pssh-2.3.1-29.el8.noarch.rpm 需要python3.6的支持;
- pssh-2.3.4-1.el9.noarch.rpm 需要python3.9的支持;
- Centos8中的repo中已经存在对应的rpm格式的pssh包了,目前openEuler22.03中还没有pssh相关的安装包,
- 其它版本pssh的rpm包下载工具地址:http://rpmfind.net/linux/rpm2html/search.php?query=pssh,可以根据操作系统和python版本进行适配 ;
-7、修改config 目录下的配置文件,根据自己需要配置的节点实际情况进行修改,如果配置文件配置错误会导致初始化失败;
+## 三、组件使用前的配置步骤说明(以下为针对首次使用以openEuler为例)
+
+### 1、主节点创建所需目录(以下操作都在主节点进行)
+ ```
+ mkdir /data
+ mkdir -p /data/private-yum-library_temp
+ mkdir -p /data/private-yum-library
+ mkdir -p /data/private-yum-library/repo
+ mkdir -p /data/private-yum-library/epel
+ ```
+### 2、准备资源包
+* 将datasophon-init整个目录拷贝到 “/data” 目录下;
+* 下载packages.tar.gz 离线依赖库并移到主节点的 “/data/datasophon-init”下并解压 ```tar -xzf packages.tar.gz -C /data/datasophon-init/```,下载链接:https://pan.baidu.com/s/1iqudVwDgg2x_OO35VLkkSg 提取码:6zrz
+* 将服务器操作系统对应的iso镜像文件,建议使用everything版本的这样包含的依赖包更全一点如:```openEuler-22.03-LTS-SP2-everything-x86_64-dvd.iso``` 拷贝到“/data/”目录下;
+### 3、制备离线YUM源(离线rpm库)
+#### PS:服务器未联网的情况需要配置离线YUM源,能连公网的话就不用配置离线yum源,但是需要将服务器的YUM源配置为国内阿里的或者华为的这样安装依赖会比较快
+* 修改init.properties参数
+```
+yum.repo.need=true
+init.os=openEuler
+其它参数根据实际情况修改
+```
+* 执行挂载操作系统命令:``` mount -o loop /data/openEuler-22.03-LTS-SP2-everything-x86_64-dvd.iso /data/private-yum-library_temp```,这种挂载重启服务器之后会失效,所以我们挂载完成后将ios内的文件全部拷贝出来做离线yum源用;
+* 将private-yum-library_temp目录下的文件全部拷贝到/data/private-yum-library/repo目录下:```cp -r /data/private-yum-library_temp/* /data/private-yum-library/repo```,另外不同操作系统挂载后所产生的目录不同,比如centos8的repo有两个BaseOS和AppStream;
+* 将原本的yum源的配置文件进行备份 :```mkdir -p /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak```;
+* 其它说明:epel目录是为了给需要自行配置离线eprl源的用户准备的,如果能配置epel建议进行配置,因为很多操作系统额外的很多工具包都在对应的epel中,配置之后在未来集群需要安装额外的扩展时会很方便;
+### 4、根据实际集群规划修改配置文件
+* 修改config 目录下的配置文件,根据自己需要配置的节点实际情况进行修改,如果配置文件配置错误会导致初始化失败;
+
+### 5、其它注意事项
+* 集群时钟源配置:集群NTP时钟默认使用Chrony,如使用其它的方式请自行安装配置,并将sbin/init.sh 脚本中的 initALL() 方法中的‘initAllNtpChronyService’ 和 ‘checkNtpChronyService’方法注释掉避免重复安装;
+* 脚本的初始化需要用到python环境,核心是使用pssh进行集群间的命令执行控制,目前packages.tar.gz中的pssh.tar.gz文件已经内置了三个版本的安装包:
+ ```
+ pssh-2.3.1-5.el7.noarch.rpm 需要python2.7的支持适用于centos7系列;
+ pssh-2.3.1-29.el8.noarch.rpm 需要python3.6的支持适用于centos8系列;
+ pssh-2.3.4-1.el9.noarch.rpm 需要python3.9的支持适用于openEuler系列;
+
+ Centos7、Centos8操作系统镜像中的repo中已经存在对应的rpm格式的pssh包了,目前openEuler22.03中还没有pssh相关的安装包, 其它版本pssh的rpm包下载工具地址:http://rpmfind.net/linux/rpm2html/search.php?query=pssh,可以根据操作系统和python版本进行适配 ;
+ ```
## 四、首次全量初始化操作
### 全量初始化脚本的流程
-![img](website/static/img/initall-process.png)
+![img](../website/static/img/initall-process.png)
### 执行初始化脚本
完成上述步骤后,执行如下命令即可开始一键初始化任务。
-
+```
cd /data/datasophon-init/sbin
-bash init.sh initAll (等待程序执行完毕,中间需要有一次确认服务器时间的确认项需要选择)
-PS:执行完毕之后如果服务器的终端未关闭,可能会出现一些命令无效的情况,此时需要手动在终端执行 ‘source /etc/profile ’使环境变量生效,或者关闭终端重新打开 ;
+bash init.sh initAll
+等待程序执行完毕,中间需要有一次确认服务器时间的确认项需要选择
+```
+PS:执行完毕之后如果服务器的终端未关闭,可能会出现一些命令无效的情况,此时需要手动在终端执行 ```source /etc/profile```使环境变量生效,或者关闭终端重新打开 ;
当执行完 bash init.sh initAll 之后,会看到有下面输出很多的日志,因为需要配置本地离线yum源以及安装mysql8等整个过程需要一定的时间,可以查看log目录下的安装日志
其中mysql初始化的数据库默认为datasophon,初始化过程中会自动创建用户"datasophon"密码为"datasophon"
#### 当前初始化模块支持的操作系统版本为:CentOS-8.5.2111-x86_64、openEuler-22.03
-#### 当前初始化模块支持的mysql为:mysql-community-8.0.28
+#### 当前初始化模块自动安装配置的mysql为:mysql-community-8.0.28
## 五、集群新增节点初始化操作
### 新增节点初始化流程
-![img](website/static/img/initadd-process.png)
+![img](../website/static/img/initadd-process.png)
### 执行初始化脚本
将config/init.properties文件中的'init.add.host.num'参数修改为即将新增加的节点的实际数量(init.host.num参数为当前已有的节点数量),只支持整数;
编辑config/init-host-info-add.properties,将文件中的指定信息按照既定格式进行修改,主要包括新增节点的ip、password、sshport、hostname;
完成上述步骤后,执行如下命令即可开始一键初始化任务。
+```
cd /data/datasophon-init/sbin
-bash init.sh initSingleNode (等待程序执行完毕,中间需要有一次确认服务器时间的确认项需要选择)
-PS:执行完毕之后如果服务器的终端未关闭,可能会出现一些命令无效的情况,此时需要手动在终端执行 ‘source /etc/profile ’使环境变量生效,或者关闭终端重新打开
+bash init.sh initSingleNode
+等待程序执行完毕,中间需要有一次确认服务器时间的确认项需要选择
+```
+PS:执行完毕之后如果服务器的终端未关闭,可能会出现一些命令无效的情况,此时需要手动在终端执行```source /etc/profile```使环境变量生效,或者关闭终端重新打开