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