2013-03-10 71 views
1

我想在我的开源项目apartment的Vagrant框中第一次尝试我的一点chef-solo,以便贡献者可以更容易地获得开发环境并运行。使用Vagrant/Chef-solo设置postgresql密码

有一件事我作为然而无法实现,虽然从this cookbook

覆盖默认密码由postgresql配方中设置的文档提到如设置JSON配置的东西:

postgresql: { 
    password: { 
    postgres: '' 
    } 
} 

我已经完成here,但我似乎无法让它覆盖配方设置的默认加密密码。

我是全新(截至今日)厨师/流浪者,所以我有点失落,我甚至应该看看下一个。

任何帮助,非常感谢。

+0

您是否在厨师独奏模式下设置了“您必须在主厨独奏模式下设置节点['postgresql'] ['password'] ['postgres']”错误消息。如果没有,食谱接受你的密码,错误必须在其他地方... – cmur2 2013-03-10 19:38:29

+0

我再次,另一个似乎有类似的问题http://stackoverflow.com/questions/15195467/chef-and-postgres-how-do -i-specify-the-password#comment21628259_15296603 – cmur2 2013-03-10 19:44:22

回答

5

我克隆了你的宝石并激发了Vagrant(但是使用了我已经下载的Debian Squeeze镜像,除了postgresqlpostgresql::server以及使用PostgreSQL 8.4而不是9.1),看起来空密码是坏的您可以选择使用

postgresql: { 
    password: { 
     postgres: 'foo' 
    } 
    } 

作品与命令PGPASSWORD="foo" psql --username=postgres -h localhost所以我怀疑是空口令有一些问题。

+1

你可以'ALTER USER'设置一个空密码,但不能用空密码登录。它实际上是一位残疾用户。试图通过libpq客户端使用空密码登录会产生如下信息:'fe_sendauth:no passwords supplied'。用户通常应该改变'pg_hba.conf'来使用'peer'或'ident' auth或者(对于非生产用途)'trust',而不是设置一个空密码。 – 2013-03-10 23:29:55

+0

事实证明这是两个问题......我没有明确地设置主机(假定本地主机是默认的)。一旦我这样做了,我得到了'psql:fe_sendauth:没有密码提供'错误,所以显然是在寻找一个。 @CraigRinger是正确的,我应该设置一个'trust' auth,因为这只是一个开发环境,允许没有密码 – brad 2013-03-11 00:14:09