部署Cloud Foundry v2.0(下一代)。 BOSH清单文件错误

时间:2013-01-12 12:01:05

标签: cloudfoundry cf-bosh

我基于此manual在vSphere上成功部署了完整的Cloud Foundry,并使用了this清单文件,例如模板(我更改了很多,因为它有点过时了)。

现在我意识到我需要下一版本的Cloud Foundry导致空间和组织功能,我开始使用* _ng模板用于云控制器和适当的节点。

我修改了我的BOSH清单文件,我发现云控制器DB存在一些问题。 根据{{​​1}}

cloud_controller_ng.yml.erb

清单中需要<% db = properties.ccdb_ng.databases.find { |db| db.tag == "cc" } %> <% db_role = properties.ccdb_ng.roles.find { |role| role.tag == "admin" } %> db: database: postgres://<%= db_role.name %>:<%= db_role.password %>@<%= properties.ccdb_ng.address %>:<%= properties.ccdb_ng.port %>/<%= db.name %> max_connections: <%= properties.ccdb_ng.max_connections || 32 %> pool_timeout: <%= properties.ccdb_ng.pool_timeout || 10 %> log_level: <%= properties.ccng.db_logging_level || "debug2" %> 属性ccdb_ng(BTW。为什么?当Cloud Foundry的下一代成为当前版本时,这种变化变得无用。我错过了什么?):

ccdb

结果我收到了错误

- name: ccdb_postgres
  template: postgres
  instances: 1
  resource_pool: infrastructure
  persistent_disk: 2048
  networks:
  - name: default
    static_ips:
    - 192.168.2.12
  properties:
    db: ccdb_ng
...
  ccdb_ng:
address: 192.168.2.12
port: 5524
pool_size: 10
roles:
- tag: admin
  name: ccadmin
  password: aaaBauWauZZb2
databases:
- tag: cc
  name: appcloud

这指向了我的代码:

Preparing configuration
binding configuration: Error filling in template `batch.yml.erb' for `uaa/0' (line 5: undefined method `databases' for nil:NilClass) (00:00:00)
Error                   1/1 00:00:00                                                                

Error 80006: Error filling in template `batch.yml.erb' for `uaa/0' (line 5: undefined method `databases' for nil:NilClass)

如何看待它尝试查找<% cc_db = properties.ccdb.databases.find { |db| db.tag == "cc" } %> <% cc_role = properties.ccdb.roles.find { |role| role.tag == "admin" } %> 属性。是的,我可以更改我的清单文件,但在这种情况下ccdb无法找到cloud_controller_ng.yml.erb属性。

如何修改CloudFoundry的BOSH清单文件以避免这些问题?

我还有很多其他问题,但现在它是主要问题。

1 个答案:

答案 0 :(得分:0)

清单中是否有属性部分,如本示例所示;

https://gist.github.com/3148465

对于不计算为nil的properties.ccdb,需要在属性部分中有一个ccdb条目。