Puppet MongoDb启用身份验证

时间:2014-03-26 16:47:44

标签: mongodb puppet

我正致力于使用puppetlabs mongodb module启用身份验证。

正如文档所说,要启用身份验证,我应该添加auth =>真正。 但为了使身份验证有效,我have to add a user to the admin database,所以我这样做了:

mongodb::db { 'admin':
  user          => 'adminuser',
  password_hash => 'a15fbfca5e3a758be80ceaf42458bcd8',
}

这适用于第一次运行,但后续运行会导致错误:

  

Mongodb :: Db [admin] / Mongodb_database [admin]:无法评估:   执行' / usr / bin / mongo --quiet --eval   。db.getMongo()getDBNames()'返回252:3月26日星期三16:28:40未被捕   异常:listDatabases失败:{" errmsg" :"需要登录"," ok" :0   }

这是有道理的,因为它现在无法进行身份验证以检查管理数据库是否已经存在。

如何处理使用此模块配置mongodb密码认证?

2 个答案:

答案 0 :(得分:1)

这是我的完整清单文件,使我的部署工作(在Vagrant设置上)。我只想安装Mongo,这就是我所取得的成就。

class {'::mongodb::server':
  #port    => 27017,  #the default port
  verbose => true,
  auth => true,
  bind_ip => ['0.0.0.0'] #Necessary for Vagrant to bind on the correct IP address instead of the loopback 127.0.0.1
}

#if we install a different port this did not work for me
mongodb::db { 'testdb':
  user          => 'user1',
  password_hash => 'a15fbfca5e3a758be80ceaf42458bcd8', #this means pass1
}

include '::mongodb::server'

请记住在modules文件夹中包含以下模块:

答案 1 :(得分:1)

看起来这个拉取请求(合并23. okt 2015)可能会解决此问题:https://github.com/puppetlabs/puppetlabs-mongodb/pull/194

有了这个,您可以为服务器创建提供管理员用户名和密码,如下所示:

class {'::mongodb::server':
  auth           => true,
  create_admin   => true,
  admin_username => "admin",
  admin_password => "admin"
}

现在,puppet应该能够在后续运行中对mongodb进行身份验证。