You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS OpsWorks Chef 11禁用database.yml软链接及多数据库配置问题

问题解决方案

禁用OpsWorks自动软链接database.yml的方法

要停止OpsWorks自动生成database.yml并执行软链接的操作,直接使用GitHub仓库自带的配置文件,可在栈的自定义JSON中添加如下配置,关闭默认的database.yml管理逻辑:

{
  "opsworks": {
    "rails": {
      "manage_database_yml": false
    }
  }
}

配置更新后重新部署应用即可生效,OpsWorks将不再覆盖你代码仓库中的config/database.yml文件。

主从双数据库配置方案

你之前使用的嵌套式配置无法生效,是因为OpsWorks默认的Rails层部署配方仅支持扁平化的单数据库结构,无法直接识别primary/secondary的嵌套字段,推荐两种可行配置方案:

方案1(优先选择):配合禁用自动管理实现

使用上述方法关闭manage_database_yml后,直接在代码仓库的database.yml中编写主从配置即可,以Rails 6+的多数据库配置为例:

production:
  primary:
    host: "主库地址"
    database: "库名"
    username: "用户名"
    password: "密码"
    adapter: "postgresql"
    port: 5432
    pool: 100
    encoding: "utf8"
  secondary:
    host: "从库地址"
    database: "库名"
    username: "用户名"
    password: "密码"
    replica: true
    adapter: "postgresql"
    port: 5432
    pool: 100
    encoding: "utf8"

该方案无需修改OpsWorks默认逻辑,灵活度最高。

方案2:保留自动管理能力的配置方法

如果你需要将数据库配置保存在OpsWorks自定义JSON中不提交到代码仓库,可自定义Chef配方覆盖默认的database.yml生成模板,调整模板逻辑支持读取primary/secondary嵌套字段,你之前编写的嵌套结构JSON可以直接作为自定义配置使用,只需在自定义模板中对应遍历配置节点即可。

内容的提问来源于stack exchange,提问作者ipegasus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 11:30:00