在PuPHPet中为mongodb创建用户名和密码

时间:2014-07-15 17:47:09

标签: mongodb puppet centos6 puphpet

我正在使用PuPHPet(https://puphpet.com/)进行本地开发。我安装了centos65-x64,mongodb 2.6.3版。 PuPHPet没有为mongodb设置用户名和密码的选项。但是他们使用它的mongodb模型有设置用户名和密码的例子:

mongodb_user { testuser:
  ensure        => present,
  password_hash => mongodb_password('testuser', 'p@ssw0rd'),
  database      => testdb,
  roles         => ['readWrite', 'dbAdmin'],
  tries         => 10,
  require       => Class['mongodb::server'],
}

https://forge.puppetlabs.com/puppetlabs/mongodb 我在manifest.pp和vagrant reload --provision中添加了这些代码。我收到此错误: **未在testdb上授权执行命令** 。我也在尝试添加root用户。像这样:

mongodb_user { admin:
  ensure        => present,
  password_hash => mongodb_password('admin', 'adminpass'),
  database      => admin,
  roles         => ['root'],
  tries         => 10,
  require       => Class['mongodb::server'],
}

它也给了我同样的错误:没有授权管理员执行命令。我不知道如何添加用户名和密码。我可以在 vagrant ssh 之后手动添加用户名和密码,但我认为这不是使用vagrnat和puppet的目的。提前谢谢。

1 个答案:

答案 0 :(得分:0)

确保在没有--auth的情况下启动mongo。然后,您可以按照http://docs.mongodb.org/manual/tutorial/add-user-administrator/中所述创建管理员用户。然后使用--auth再次启动,并使用admin用户添加新用户。我没有设法创建一个旧的学校root用户(使用内置的“root”角色),root角色实际上需要在他第一次添加的db上进行身份验证(因此你需要将他添加到测试db使用管理员用户)。