Files
RedisClipSync/部署方案.md

118 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# RedisClipSync 内网部署方案v1.1.0
本文档对应 `v1.1.0`,适用于「主机统一打包 -> 分发到多台从机 -> 从机一键安装并开机自启」场景。
## 1. 目标与范围
- 目标:降低内网批量部署成本,避免每台从机重复构建。
- 范围Linux 从机部署systemd 管理),主机负责生成发布包。
- 默认安装目录:`/opt/redis-clip-sync`
## 2. 架构与角色
- 主机MASTER生成发布包并分发。
- 从机SLAVE接收发布包改配置后执行安装脚本。
- Redis内网统一服务主从均连接此 Redis。
## 3. 前置条件
- 主机:已安装 Java 8+、Maven 3.x。
- 从机:已安装 Java 8+、systemd、sudo。
- 网络:从机可访问 Redis `host:port`
- 安全:`crypto.enabled=true`,主从 `crypto.key` 使用同一把 32-byte Base64 密钥。
## 4. 主机发布流程
在项目根目录执行:
```bash
chmod +x linux/build-slave-release.sh
./linux/build-slave-release.sh
```
执行完成后会生成:
- 目录:`dist/redis-clip-sync-slave-<version>/`
- 压缩包:`dist/redis-clip-sync-slave-<version>.tar.gz`
发布包包含:
- `bin/install-slave.sh`:安装 + 注册 systemd + enable --now
- `bin/start.sh|stop.sh|status.sh|logs.sh`:本地运维脚本
- `lib/redis-clip-sync.jar`
- `conf/config.properties`(从机模板)
- `systemd/redis-clip-sync.service.tpl`
## 5. 从机安装流程
### 5.1 解压发布包
```bash
tar -xzf redis-clip-sync-slave-<version>.tar.gz
cd redis-clip-sync-slave-<version>
```
### 5.2 修改从机配置
编辑 `conf/config.properties`,至少修改:
- `redis.host`
- `slave.listen.channel`
- `slave.id`
- `crypto.key`
- (按需)`redis.password`
### 5.3 执行安装
```bash
sudo ./bin/install-slave.sh
```
安装脚本会执行:
1. 复制程序到 `/opt/redis-clip-sync`
2. 渲染并写入 `/etc/systemd/system/redis-clip-sync.service`
3. `systemctl daemon-reload`
4. `systemctl enable --now redis-clip-sync`
## 6. 运维命令
```bash
systemctl status redis-clip-sync
systemctl restart redis-clip-sync
journalctl -u redis-clip-sync -f
```
## 7. 一键验收命令
在从机执行:
```bash
bash -c 'set -e; systemctl is-enabled redis-clip-sync >/dev/null; systemctl is-active redis-clip-sync >/dev/null; test -f /opt/redis-clip-sync/lib/redis-clip-sync.jar; test -f /opt/redis-clip-sync/conf/config.properties; echo "[PASS] redis-clip-sync deployed and running"'
```
输出 `[PASS] ...` 表示安装、开机自启、运行状态和关键文件均通过。
## 8. 回滚与卸载
如需快速回滚:
```bash
sudo systemctl disable --now redis-clip-sync
sudo rm -f /etc/systemd/system/redis-clip-sync.service
sudo systemctl daemon-reload
```
如需同时删除安装目录:
```bash
sudo rm -rf /opt/redis-clip-sync
```
## 9. 常见问题
- 服务启动失败:先看 `journalctl -u redis-clip-sync -n 200 --no-pager`
- Redis 不通:检查 `redis.host/redis.port`、防火墙、密码。
- 无法解密:确认主从 `crypto.enabled``crypto.key` 完全一致。
- TTL 不生效:确认从机角色为 `SLAVE``slave.log.ttl.seconds>0`