一键切换配置可通过环境变量+模板文件+Shell脚本实现:将配置写为含{{}}占位符的模板,用envsubst填充;按环境分设变量文件(如env/dev.env),主脚本source后生成配置;部署前校验占位符替换与关键字段存在;最终通过systemd EnvironmentFile或Docker -e传递ENV_NAME实现环境隔离。

直接用环境变量 + 配置文件模板 + 简单脚本就能实现一键切换,不需要复杂框架。
用统一模板 + 环境变量填充
把配置写成模板文件(比如 app.conf.tpl),里面用占位符代替可变部分:
DB_HOST={{DB_HOST}}
DB_PORT={{DB_PORT}}
ENV_NAME={{ENV_NAME}}
再配合一个 shell 脚本,读取当前环境变量,替换占位符生成真实配置:
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
- 脚本里先 export 对应环境的变量,例如:
export DB_HOST=10.0.1.5 DB_PORT=3306 ENV_NAME=prod - 用
envsubst < app.conf.tpl > app.conf生成生产配置 - 测试环境只需改 export 行,再跑一次命令即可
按环境分目录管理模板和变量
避免手动改 export,把不同环境的变量抽成独立文件:
- 建立
env/dev.env和env/prod.env,内容如:DB_HOST=127.0.0.1; DB_PORT=3306 - 主脚本接收参数(如
./deploy.sh prod),自动 source 对应 env 文件 - 再统一执行
envsubst < config/app.conf.tpl > config/app.conf
部署时校验配置有效性
生成配置后别直接用,加一层简单检查:
- 用
grep -q "{{" config/app.conf确保所有占位符都被替换 - 检查关键字段是否存在:
grep -q "^DB_HOST=" config/app.conf - 失败时 exit 1 并提示,防止带空配置上线
配合 systemd 或 docker 做环境隔离
最终配置生成后,让服务明确知道自己运行在哪种环境:
- systemd 服务文件里设置
EnvironmentFile=/etc/myapp/env.conf,内容是ENV_NAME=prod - Docker 运行时加
-e ENV_NAME=prod,应用启动时读该变量决定加载哪套逻辑 - Shell 脚本本身不硬编码环境,只负责“生成”和“交付”,职责清晰

















