首页/系统与基础设施/自动化运维速查/自动化配置数据的组织方式
自动化基础与选型50 条

自动化配置数据的组织方式

自动化配置数据要按「公共默认值 → 分组差异 → 主机特例」分层组织,并从代码资产中分离出来单独管理;同一份数据只允许有一个权威来源,敏感值走密钥管理而不入库。组织良好的标志是新增一台主机只需在清单与少量变量文件中增加内容,而不需要改动任务逻辑。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​‌‌​​‌‌​​‌‌​‌​​‌​‌‌​​‌‌‌​​‌​‌‌​‌​‌‌​​‌​​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​​​​‌​​‌​‌‌​‌​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​‌‌‌​‌‌​​​​‌​‌‌​‌‌‌​​‌‌​‌​​‌​‌‌‌‌​‌​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

分层组织的方式

配置数据通常按三层组织:最下层是角色的默认值,表达组件的通用默认;中间层是主机组变量,表达同一类主机(如 Web 组、数据库组)的差异;最上层是主机变量,只用于确实无法归类的特例。执行时由工具按优先级合并。这样新增主机时只需要在组里加一行,特例才写主机变量,避免把环境差异散落到任务逻辑中。

基本信息

数据分层角色默认值、主机组变量、主机变量
存放位置与任务代码同仓库但独立目录
敏感值走密钥管理系统,运行时注入
权威来源每项数据只允许一处定义

组织要点

  • 命名可读:变量名表达含义与单位,便于排查时理解取值。
  • 单位统一:端口、时间、容量等写明单位,避免秒与毫秒混淆。
  • 特例最少:主机级变量越少越好,多数差异应能用分组表达。
  • 删除及时:主机下线后清理其专属变量,防止误用。
  • 注释来源:非显而易见的取值写明依据,便于后续判断能否修改。
  • 敏感分离:明文口令、私钥、令牌不进入变量文件。

分层与适用内容

层级存放内容修改频率
角色默认值组件通用默认值与可选参数低,随组件做法演进
主机组变量同类主机的共同差异中,扩容或调参时改动
主机变量个别主机的特例取值低,应尽量避免
全局变量跨组共享的基础值低,改动影响面大
密钥数据口令、私钥、令牌按轮换周期
同一份数据在多处定义是维护地狱的起点:修改时不知道该改哪一处,执行结果还取决于优先级规则。发现重复定义应合并到唯一层级,而不是继续加注释说明。
变量文件也要评审:很多事故源于有人悄悄改了生产环境的变量文件,而任务逻辑本身没有任何变化。

易错点

  • 把环境差异写进任务逻辑:为兼容三个环境写下大量条件判断,新增环境时改动点无法穷举
  • 同一变量多处定义:取值取决于优先级规则,排查时需要在多个文件间比对才能确定生效值
  • 主机下线不清理变量:遗留变量被误用,或掩盖了本该暴露的配置缺失
  • 敏感值写在变量文件里并入库:凭据随仓库扩散,泄露后只能批量轮换

数据来源与参考

  • Red Hat《Ansible 官方文档:变量优先级与最佳实践》
  • HashiCorp《Terraform 官方文档:变量与工作区》
  • 十二要素应用(配置与代码分离原则)

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/automation/automation-config-data-organization.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​‌‌​​‌‌​​‌‌​‌​​‌​‌‌​​‌‌‌​​‌​‌‌​‌​‌‌​​‌​​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​​​​‌​​‌​‌‌​‌​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​‌‌‌​‌‌​​​​‌​‌‌​‌‌‌​​‌‌​‌​​‌​‌‌‌‌​‌​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​