Bareos容器化部署实用指南
生产环境的真实部署绝对不需要按Bareos容器化部署深度指南上面的所有步骤都做一遍。那份文档是“完整参考手册”,实际部署时会根据需求做大量简化。
一、实际生产部署的简化方案
1.1 最小可行配置(MVP)
# docker-compose.yml(90%的生产环境只用这个)
version: '3.8'
services:
# 只需要这4个核心服务
postgres:
image: postgres:15-alpine
environment:
POSTGRES_PASSWORD: bareos123
POSTGRES_USER: bareos
POSTGRES_DB: bareos
volumes:
- postgres_data:/var/lib/postgresql/data
director:
image: bareos/bareos-director:latest
depends_on:
- postgres
ports:
- "9101:9101"
volumes:
- ./bareos-dir:/etc/bareos/bareos-dir.d
- /backup/storage:/backup/storage
storage:
image: bareos/bareos-storage:latest
depends_on:
- director
volumes:
- /backup/storage:/backup/storage
- ./bareos-sd:/etc/bareos/bareos-sd.d
webui:
image: bareos/bareos-webui:latest
depends_on:
- director
ports:
- "80:80"
volumes:
postgres_data:
1.2 快速启动脚本
#!/bin/bash
# 3分钟部署脚本
mkdir -p bareos/{config,storage}
cd bareos
# 1. 创建docker-compose.yml(上面那个简版)
cat > docker-compose.yml << 'EOF'
# 上面的简化版本
EOF
# 2. 创建基础配置文件
mkdir -p config/director config/storage
# 3. 启动服务
docker-compose up -d
echo "Bareos部署完成!"
echo "Web界面: http://服务器IP"
echo "配置目录: ./config/"
二、真实生产的核心步骤(只需7步)
第一步:准备目录
mkdir -p /opt/bareos/{config,storage,logs}
cd /opt/bareos
第二步:创建docker-compose.yml
version: '3.8'
services:
postgres:
image: postgres:15-alpine
restart: always
environment:
POSTGRES_PASSWORD: change_me_123
volumes:
- ./data/postgres:/var/lib/postgresql/data
director:
image: bareos/bareos-director:latest
restart: always
ports: ["9101:9101"]
depends_on: [postgres]
volumes:
- ./config/director:/etc/bareos/bareos-dir.d
- ./storage:/backup
storage:
image: bareos/bareos-storage:latest
restart: always
depends_on: [director]
volumes:
- ./storage:/backup
- ./config/storage:/etc/bareos/bareos-sd.d
webui:
image: bareos/bareos-webui:latest
restart: always
ports: ["80:80"]
depends_on: [director]
第三步:创建最小配置文件
# 创建Director基础配置
mkdir -p config/director
cat > config/director/director.conf << 'EOF'
Director {
Name = bareos-dir
DirPort = 9101
QueryFile = "/usr/lib/bareos/scripts/query.sql"
WorkingDirectory = "/var/lib/bareos"
PidDirectory = "/run/bareos"
Maximum Concurrent Jobs = 10
}
EOF
cat > config/director/catalog.conf << 'EOF'
Catalog {
Name = MyCatalog
dbdriver = postgresql
dbname = "bareos"
dbuser = "bareos"
dbpassword = "change_me_123"
}
EOF
# 创建Storage配置
mkdir -p config/storage
cat > config/storage/storage.conf << 'EOF'
Storage {
Name = File
Address = storage
SDPort = 9103
Password = "storage_password"
Device = FileStorage
Media Type = File
}
EOF
cat > config/storage/device.conf << 'EOF'
Device {
Name = FileStorage
Media Type = File
Archive Device = /backup
LabelMedia = yes
Random Access = yes
AutomaticMount = yes
}
EOF
第四步:启动服务
docker-compose up -d
第五步:配置客户端
# 为Linux客户端生成配置文件
cat > linux-client.conf << 'EOF'
Client {
Name = linux-server-fd
Address = 192.168.1.100 # 改为实际IP
Password = "client_secret"
File Retention = 30 days
}
EOF
# 复制到客户端并安装
# scp linux-client.conf user@client:/etc/bareos/bareos-fd.d/director/
第六步:创建备份任务
通过Web界面(http://服务器IP): 1. 登录(默认无密码) 2. 添加客户端 3. 创建备份任务 4. 立即运行测试
或使用命令行:
docker exec bareos_director_1 bconsole
# 在bconsole中
configure add client name=linux-server address=192.168.1.100
run job=BackupClient1
第七步:监控检查
# 查看状态
docker-compose ps
docker-compose logs director
# 测试恢复
docker exec bareos_director_1 bconsole << EOF
list jobs
restore client=linux-server
yes
EOF
三、根据实际情况的选择性增强
3.1 需要TLS加密才加
# 修改director服务
director:
volumes:
- ./tls:/etc/bareos/tls
environment:
BAREOS_TLS_ENABLE: "yes"
3.2 需要监控才加
# 添加监控服务(可选)
prometheus:
image: prom/prometheus:latest
ports: ["9090:9090"]
volumes:
- ./config/prometheus.yml:/etc/prometheus/prometheus.yml
3.3 需要邮件告警才加
# 在director配置中添加
cat >> config/director/messages.conf << 'EOF'
Messages {
Name = Standard
mailcommand = "/usr/bin/bsmtp -h smtp.company.com -f bareos@company.com %r"
mail = admin@company.com = all
}
EOF
四、真实生产经验建议
4.1 按需逐步添加
第1周:基础部署 + 测试备份恢复
第2周:添加监控(只看基础状态)
第3周:配置邮件告警
第1月:考虑TLS加密
第3月:如果需要才加高可用
4.2 关键配置项(必须改的)
# 1. 修改默认密码
POSTGRES_PASSWORD=改为强密码
客户端密码=改为不同密码
# 2. 设置存储路径
# 确保/storage有足够空间
# 3. 配置网络白名单(重要!)
# 在防火墙中只允许可信IP访问9101/9102端口
4.3 真实案例的典型配置
# 一个50人公司的实际配置
version: '3.8'
services:
postgres:
image: postgres:15
volumes: ["./data/db:/var/lib/postgresql/data"]
environment:
POSTGRES_PASSWORD: "Bareos@2024!"
director:
image: bareos/bareos-director:23.0
ports: ["9101:9101"]
volumes:
- "./config:/etc/bareos"
- "/mnt/nas/backup:/backup"
webui:
image: bareos/bareos-webui:23.0
ports: ["8080:80"]
# 其他都用默认值
4.4 运维命令速查
# 日常只用这些命令
docker-compose ps # 查看状态
docker-compose logs -f # 查看日志
docker-compose restart # 重启服务
# 备份管理
docker exec -it bareos-director bconsole # 管理控制台
# 紧急恢复
docker-compose down && docker-compose up -d # 重启所有
五、避坑指南
5.1 不要一开始就做的
- ❌ 不要先配置TLS(除非有合规要求)
- ❌ 不要先部署高可用(除非业务24x7)
- ❌ 不要配置复杂告警(先用日志监控)
- ❌ 不要启用所有高级功能(按需开启)
5.2 必须做的
- ✅ 改默认密码
- ✅ 测试备份和恢复
- ✅ 设置存储空间监控
- ✅ 配置简单的成功/失败通知
5.3 推荐部署流程
# Day 1: 部署
./1-deploy-basic.sh # 基础部署
# Day 2: 配置
./2-configure-clients.sh # 添加客户端
./3-test-backup.sh # 测试备份
# Day 3: 监控
./4-add-monitoring.sh # 简单监控
# Week 2: 优化
# 根据实际需求添加功能
六、快速开始模板
我为您准备了一个真正可用的简化版本:
# 下载并运行
wget https://example.com/bareos-simple.tar.gz
tar zxvf bareos-simple.tar.gz
cd bareos-simple
# 编辑配置文件(改密码和IP)
vi .env
vi config/clients.conf
# 启动
docker-compose up -d
# 访问 http://your-server-ip
核心思想:从简开始,按需添加。90%的生产环境只需要基础配置就能良好运行。复杂的特性是为了应对特定场景,不是必须的。
您完全可以从最简单的配置开始,运行起来后再根据实际遇到的问题逐步优化。这样既能快速上线,又能避免过度工程化。