- Jinja 84.6%
- Shell 15.4%
在 install_hbase 末尾加一道 CompressionTest 验收,用 env -i 模拟守护进程 的空环境,验收 vars/main.yml 里 hbase_compression_algos 列的算法,不通则 直接让部署失败。 动机:native 库缺失在部署当天和之后数月都完全不报错(CompressionTest 结果 是 JVM 进程级缓存,运行中的 RegionServer 已缓存 true),只在某次 RS 重启那 一刻爆发,所有压缩表 region 全部卡 RIT,业务全线查不出数据。 配套: - hbase-env.sh.j2 显式导出 native 库路径 - base.yml 建 lib/native/Linux-amd64-64 -> HADOOP_HOME/lib/native 软链 - README 补验收失败的 5 步排查顺序与老环境免重启的巡检脚本入口 |
||
|---|---|---|
| ansible-install-middleware | ||
| ansible_offline_pkgs/ansible.posix | ||
| it-tools | ||
| offline_pkgs | ||
| scripts | ||
| .gitignore | ||
| meos.center-ssl.yaml | ||
| README.md | ||
| USAGE.md | ||
x-app-offline-install
#本代码主要用于x平台k8s、中间件、HBASE的离线部署,不依赖任何网络环境,在线部署也可以使用。 以下步骤在readme中格式显示可能异常,详细请阅读文档https://www.yuque.com/taigemiu/ulyvq3/qs9nngv5ravdkyz5?singleDoc# 《九院部署》 #先安装基础依赖和ansible
cd /data/x-app-offline-install/offline_pkgs/base
dnf localinstall -y --disablerepo='*' --skip-broken *.rpm
#安装ansible插件
cd /data/x-app-offline-install/ansible_offline_pkgs/ansible.posix
ansible-galaxy collection install -r requirements.yml
#检查版本
ansible --version
初始化ansible配置文件
ansible-config init --disabled > /etc/ansible/ansible.cfg
修改配置
sed -i 's#;host_key_checking=True#host_key_checking = False#g' /etc/ansible/ansible.cfg sed -i 's#;jinja2_extensions=.*#jinja2_extensions = jinja2.ext.do,jinja2.ext.i18n#g' /etc/ansible/ansible.cfg sed -i '/jinja2_extensions/a\callback_whitelist = timer, mail,profile_tasks' /etc/ansible/ansible.cfg
cd /data/x-app-offline-install/ansible-install-middleware/source-software
#修改中间件密码等信息 vim /data/x-app-offline-install/ansible-install-middleware/source-software/config.yaml
#修改host vim /data/x-app-offline-install/ansible-install-middleware/source-software/hosts
#执行安装脚本 ./data/x-app-offline-install/ansible-install-middleware/source-software/install.sh
[root@iZ2zecni1aw6nzyix4ydzwZ source-software]# sh ./install.sh
./install.sh: line 2: $'\r': command not found
./install.sh: line 9: $'\r': command not found
./install.sh: line 18: $'\r': command not found
./install.sh: line 25: $'\r': command not found
./install.sh: line 26: syntax error near unexpected token $'{\r'' '/install.sh: line 26: function generate_app_list(){
[root@iZ2zecni1aw6nzyix4ydzwZ source-software]#
[root@iZ2zecni1aw6nzyix4ydzwZ source-software]#
[root@iZ2zecni1aw6nzyix4ydzwZ source-software]#
[root@iZ2zecni1aw6nzyix4ydzwZ source-software]# vim install.sh
[root@iZ2zecni1aw6nzyix4ydzwZ source-software]#
[root@iZ2zecni1aw6nzyix4ydzwZ source-software]#
#执行这个就好了,Windows编辑过带入了不合规的换行符 [root@iZ2zecni1aw6nzyix4ydzwZ source-software]# sed -i 's/\r$//' install.sh
#安装k8s
ansible-playbook -i local_hosts k8s.yml
#删除k8s污点 kubectl taint nodes master1 node-role.kubernetes.io/control-plane:NoSchedule- kubectl taint nodes master1 node-role.kubernetes.io/master:NoSchedule-
增加coredns apiVersion: v1 data: Corefile: | .:53 { errors health { lameduck 5s } ready kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure fallthrough in-addr.arpa ip6.arpa ttl 30 } hosts { 172.24.150.185 keepalived.vip master1 hbase-node1 aio-apc.meos.center aio-minio.meos.center aio-gateway.meos.center aio-link.meos.center aio-mgmt.meos.center aio-ops.meos.center aio-edge.meos.center fallthrough } prometheus :9153 forward . /etc/resolv.conf { max_concurrent 1000 } cache 30 loop reload loadbalance } kind: ConfigMap metadata: creationTimestamp: "2026-04-17T08:44:18Z" name: coredns namespace: kube-system
#ansible-playbook -i local_hosts hbase.yml
#启动zookeeper /data/application/app/apache-zookeeper-3.8.4-bin/bin/zkServer.sh start /data/application/app/apache-zookeeper-3.8.4-bin/bin/zkServer.sh status
2.格式化 只能执行一次 #/data/application/app/hadoop-3.2.4/bin/hdfs namenode -format
3、启动hadoop服务 /data/application/app/hadoop-3.2.4/bin/hdfs --daemon start namenode /data/application/app/hadoop-3.2.4/bin/hdfs --daemon start datanode /data/application/app/hadoop-3.2.4/bin/hdfs --daemon start secondarynamenode 4、启动yarn /data/application/app/hadoop-3.2.4/bin/yarn --daemon start resourcemanager /data/application/app/hadoop-3.2.4/bin/yarn --daemon start nodemanager /data/application/app/hadoop-3.2.4/bin/mapred --daemon start historyserver 5、启动hbase-master /data/application/app/hbase-2.3.7/bin/hbase-daemon.sh --config /data/application/app/hbase-2.3.7/conf start master 6、启动hbase-region 单机模式不用启动regionserver /data/application/app/hbase-2.3.7/bin/hbase-daemon.sh --config /data/application/app/hbase-2.3.7/conf start regionserver
#将镜像ctr进集群
mkdir -p images && tar -xzvf images_backup_20260415_154653.tar.gz -C images
如果解压成功,可以尝试导入解压后的 tar 文件
导入当前目录下所有 .tar 文件
for file in *.tar; do echo "正在导入: $file" ctr -n k8s.io images import "$file" echo "完成导入: $file" echo "------------------------" done #查看镜像清单 ctr -n k8s.io images ls
MySQL数据下载 下载地址:从获取/data/ansible-x-p-7.0-2026-0122/x-cloud/.default.yaml 数据放在:/data/ansible-x-p-7.0-2026-0122/x-cloud/mysql/files
修改task
mysql 依赖包
从 vault.centos.org 下载
rpm -Uvh --nodeps ./compat-openssl10-1.0.2o-3.el8.x86_64.rpm
创建nfs目录 mkdir -p /data/application/data/nfs/pvc mkdir -p /data/application/data/nfs/storageclass mkdir -p /data/application/data/nfs/flink-pvc
授权文件nfs
chown -R nobody:nobody /data/application/data/nfs/ chmod -R 755 /data/application/data/nfs/
配置nfs
vim /etc/exports
共享给K8s集群,允许读写,同步写入,适用于静态PV
/data/application/data/nfs/pvc 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
共享给K8s集群,允许读写,同步写入,用于StorageClass动态供给
/data/application/data/nfs/storageclass 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
共享给K8s集群,允许读写,同步写入,专用于Flink应用
/data/application/data/nfs/flink-pvc 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
重新导出所有共享
sudo exportfs -rva
检查共享是否发布成功
sudo showmount -e localhost
启动nfs服务 systemctl start --now rpcbind systemctl start --now nfs-server systemctl start --now nfs-idmap
systemctl enable --now rpcbind systemctl enable --now nfs-server systemctl enable --now nfs-idmap
修改语法:/data/application/sh/ansible-x-cloud/x-cloud/mysql/templates/shell_script/database_list.txt.j2 mysql_info.iteritems() 修改为mysql_info.items() #安装依赖
#自建mysql检测失败时一般为密码模式问题 #使用命令行登录 mysql -uroot -p"gWK5o9WmCBF5LiW@0926" -h 172.17.3.122 -P 9934
use mysql; #更改密码 alter user 'root'@'%' identified with mysql_native_password by 'gWK5o9WmCBF5LiW@0926'; #刷新权限 flush privileges;
部署rabbitmq报错,需要增加hosts解析,ip 主机名
1. 创建用户:persagy
rabbitmqctl add_user persagy gWK5o9WmCBF5LiW@0926
2. 设置权限(普通业务用户即可)
rabbitmqctl set_user_tags persagy management
3. 创建虚拟主机:/persagy
rabbitmqctl add_vhost /persagy
4. 给用户授权这个 vhost
rabbitmqctl set_permissions -p /persagy persagy "." "." ".*"
kubesphere部署后的默认账号密码:admin P@88w0rd