首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以将chef.json的一部分移到数据库中吗?

我可以将chef.json的一部分移到数据库中吗?
EN

Stack Overflow用户
提问于 2014-05-14 12:45:57
回答 1查看 138关注 0票数 2

我用的是流浪汉+厨师-独行侠+巴克架插件。在我的Vagrantfile文件中我有这样一个:

代码语言:javascript
复制
chef.json = {
  "postgresql" => {
    "password" => {
      "postgres" => "password"
    }
  },
  "database" => {
    "create" => ["chembl_18"]
  },
  "build_essential" => {
    "compiletime" => true
  }
}

如果我在这里再加一些配置,我的Vagrantile就会很快变得凌乱。我试图对此进行验证,因此我创建了具有以下内容的databags/postgresql/json_attribs.json文件:

代码语言:javascript
复制
{
  "postgresql": {
    "password": {
      "postgres": "iloverandompasswordsbutthiswilldo"
    }
  }
}

以及修改了我的Vagrantfile中的内容:

代码语言:javascript
复制
chef.json = {
  :postgresql => ["json_attribs"],
  "database" => {
    "create" => ["chembl_18"]
  },
...
}

但这不管用,我得到了:

代码语言:javascript
复制
==> default:  58>>   default['postgresql']['dir'] = "/etc/postgresql/#{node['postgresql']['version']}/main"
...
==> default: [2014-05-14T12:36:51+00:00] ERROR: Running exception handlers
==> default: [2014-05-14T12:36:51+00:00] ERROR: Exception handlers complete
==> default: [2014-05-14T12:36:51+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
==> default: [2014-05-14T12:36:51+00:00] FATAL: TypeError: can't convert String into Integer

那么,为了将这些设置分割成几个单独的文件,我应该如何和在哪里放置这些设置呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-14 13:57:14

不,你不能在不改变食谱代码的情况下把它移动到一个数据包里。

属性(通过配置提供)与数据袋不同,后者也存储JSON数据。数据包中的数据只是“躺在”厨师服务器中,直到你在食谱中显式地阅读了它。

可以通过search()data_bag()data_bag_item()函数读取数据包,请参阅文档

为了避免混淆您的Vagrantfile,您应该使用角色包装纸食谱

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23655160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档