0

我正在使用 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 的目的。提前致谢。

4

1 回答 1

0

确保在没有 --auth 的情况下启动 mongo。然后,您可以按照此处http://docs.mongodb.org/manual/tutorial/add-user-administrator/的描述创建一个管理员用户。然后使用 --auth 重新启动,并使用 admin 用户添加新用户。我还没有自己创建一个老派的 root 用户(使用内置的“root”角色),root 角色实际上需要在他首先添加到的数据库上进行身份验证(因此你需要将他添加到测试数据库使用管理员用户)。

于 2014-11-07T16:03:04.663 回答