所有资源需部署在政务外网节点,提前准备以下资源:
登录所有服务器依次执行以下命令,所有命令可直接复制运行:
1. 升级系统源:
``` sudo yum update -y ```2. 安装Docker:
``` curl -fsSL https://get.docker.com | bash sudo systemctl enable docker && sudo systemctl start docker ```3. 安装Docker Compose:
``` sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ```登录应用服务器执行以下命令创建工作目录:
``` mkdir -p /opt/yb_dag && cd /opt/yb_dag ```创建docker-compose.yml配置文件,内容如下:
```yaml version: '3.8' services: postgres: image: postgres:14-alpine container_name: yb_dag_db restart: always environment: POSTGRES_PASSWORD: YbD@2024Db PGDATA: /var/lib/postgresql/data/pgdata volumes: - ./pgdata:/var/lib/postgresql/data ports: - "5432:5432" command: > postgres -c ssl=on -c ssl_cert_file=/var/lib/postgresql/server.crt -c ssl_key_file=/var/lib/postgresql/server.key minio: image: minio/minio:RELEASE.2023-09-07T02-05-02Z container_name: yb_dag_storage restart: always command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: yb_dag_admin MINIO_ROOT_PASSWORD: YbD@2024Stor volumes: - ./minio_data:/data ports: - "9000:9000" - "9001:9001" app: image: registry.cn-hangzhou.aliyuncs.com/public-opensource/yb-dag:v1.0 container_name: yb_dag_app restart: always depends_on: - postgres - minio ports: - "8080:8080" environment: DB_HOST: postgres DB_USER: yb_dag_user DB_PASS: Yb@Dag2024 MINIO_ENDPOINT: http://minio:9000 MINIO_ACCESS_KEY: yb_dag_admin MINIO_SECRET_KEY: YbD@2024Stor ```执行以下命令进入数据库容器,创建业务库并开启加密:
``` docker exec -it yb_dag_db psql -U postgres ```
依次执行以下SQL语句:
```sql CREATE DATABASE yb_dag WITH ENCODING 'UTF8' LC_COLLATE='zh_CN.UTF-8' LC_CTYPE='zh_CN.UTF-8' TEMPLATE template0; CREATE USER yb_dag_user WITH PASSWORD 'Yb@Dag2024'; ALTER DATABASE yb_dag OWNER TO yb_dag_user; ALTER SYSTEM SET pgcrypto.enabled = on; \q ```执行以下命令启动所有服务:
``` docker-compose up -d ```访问系统后台地址:http://应用服务器政务外网IP:8080,默认账号admin,默认密码Admin@2024,首次登录必须强制修改12位以上含大小写+数字+特殊字符的密码,之后完成以下配置:
执行以下命令为对象存储配置WORM(一次写入多次读取)策略,确保档案上传后10年内不可删除、修改:
``` docker exec -it yb_dag_storage mc alias set myminio http://localhost:9000 yb_dag_admin YbD@2024Stor docker exec -it yb_dag_storage mc ilm rule add --worm --noncurrent-version-expiration-days 3650 myminio/yb-archive ```在系统设置-审计配置中开启全链路操作日志,所有上传、查看、下载、修改操作自动记录,日志保留180天,配置日志自动同步地址:http://10.1.1.8:9000/log/receive,自动同步到政务统一审计平台。
创建自动备份脚本/opt/yb_dag/backup.sh,内容如下:
```bash !/bin/bash DATE=`date +%Y%m%d` docker exec yb_dag_db pg_dump -U yb_dag_user yb_dag > /opt/backup/yb_dag_$DATE.sql scp /opt/backup/yb_dag_$DATE.sql root@10.2.1.15:/opt/yb_dag_backup/ find /opt/backup -mtime +30 -name ".sql" -delete ```执行以下命令添加定时任务,每周日凌晨2点执行全量备份,备份文件同步到异地灾备节点:
``` chmod +x /opt/yb_dag/backup.sh (crontab -l 2>/dev/null; echo "0 2 0 /opt/yb_dag/backup.sh") | crontab - ```先检查对象存储权限:执行docker exec yb_dag_storage mc admin policy get myminio/yb-archive,确认仅应用服务账号有读写权限;如果是大文件上传失败,修改docker-compose.yml中app服务的环境变量,添加SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE=1024MB,重启服务即可。
先检查HTTPS配置:将政务域名SSL证书放在/opt/yb_dag/cert目录下,在docker-compose.yml中新增nginx服务挂载证书,强制所有HTTP请求跳转HTTPS;再检查安全配置:在系统设置-安全配置中开启密码90天过期、连续5次登录失败锁定账号功能即可。