0

我根据本手册在 vSphere 上成功部署了完整的 Cloud Foundry,并使用了这个清单文件,如模板(我更改了很多,因为它有点过时了)。

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

我修改了我的 BOSH 清单文件,发现云控制器数据库存在一些问题。根据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清单中的属性ccdb(顺便说一句。为什么?当 Cloud Foundry 的下一代成为当前版本时,这些更改变得无用。我错过了什么?):

- 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找不到ccdb_ng属性。

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

我对此还有很多其他问题,但目前这是主要问题。

4

1 回答 1

0

Do you have a properties section in the manifest, like in this example;

https://gist.github.com/3148465

For properties.ccdb NOT to evaluate as nil, there would need to be a ccdb entry in the properties section.

于 2013-01-12T15:14:31.850 回答