我尝试在我的服务器上安装mongodb并启用身份验证 . 但我坚持为auth添加用户 . 当我尝试执行playbook时,它输出的 Add user 任务失败:
任务执行期间发生异常 . 要查看完整的回溯,请使用-vvv . 错误是:pymongo.errors.OperationFailure:没有用户认证致命:[***]:失败! => {“已更改”:false,“msg”:“无法连接到数据库:没有用户通过身份验证”}}
我该如何解决?
playbook.yml
- name: Install mongodb
apt:
name: mongodb-org
update_cache: yes
state: present
- name: Set config
template:
src: templates/mongodb.yml
dest: /etc/mongod.conf
notify: restart mongodb
- name: Install pymongo
pip:
name: pymongo
state: present
- name: Add user
mongodb_user:
database: "{{ mongodb_name }}"
name: "{{ mongodb_user }}"
password: "{{ mongodb_password }}"
login_host: "{{ mongodb_bind_ip }}"
login_port: "{{ mongodb_port }}"
state: present
mongodb.yml
net:
port: {{ mongodb_port }}
bindIp: {{ mongodb_bind_ip }}
unixDomainSocket:
enabled: false
security:
authorization: enabled
1 回答
如果数据库中没有admin用户,则需要使用disabled
security.authorization
启动它,添加admin用户,然后在启用security.authorization
的情况下重启mongodb:https://docs.mongodb.com/manual/tutorial/enable-authentication/#procedure之后,您可以使用管理员凭据添加更多用户:
https://docs.ansible.com/ansible/2.4/mongodb_user_module.html