Mongodb 通过ansible playbook启用mongo身份验证
我正在尝试在服务器上安装mongodb并启用身份验证。但我一直坚持为auth添加用户。当我尝试执行playbook时,添加用户任务失败,输出为: 任务执行期间发生异常。要查看完整的回溯,请使用-vvv。错误为:pymongo.errors.OperationFailure:没有经过身份验证的用户 致命:[***]:失败!=>{“changed”:false,“msg”:“无法连接到数据库:没有经过身份验证的用户”} 我怎样才能修好它 playbook.ymlMongodb 通过ansible playbook启用mongo身份验证,mongodb,ansible,Mongodb,Ansible,我正在尝试在服务器上安装mongodb并启用身份验证。但我一直坚持为auth添加用户。当我尝试执行playbook时,添加用户任务失败,输出为: 任务执行期间发生异常。要查看完整的回溯,请使用-vvv。错误为:pymongo.errors.OperationFailure:没有经过身份验证的用户 致命:[***]:失败!=>{“changed”:false,“msg”:“无法连接到数据库:没有经过身份验证的用户”} 我怎样才能修好它 playbook.yml - name: Install mo
- 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
net:
port: {{ mongodb_port }}
bindIp: {{ mongodb_bind_ip }}
unixDomainSocket:
enabled: false
security:
authorization: enabled
mongodb.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
net:
port: {{ mongodb_port }}
bindIp: {{ mongodb_bind_ip }}
unixDomainSocket:
enabled: false
security:
authorization: enabled
如果数据库中没有管理员用户,则需要使用禁用的
安全性。授权
,添加管理员用户,然后使用启用的安全性重新启动mongodb。授权
:
之后,您可以使用管理员凭据添加更多用户:
- name: Add user
mongodb_user:
database: "{{ mongodb_name }}"
name: "{{ mongodb_user }}"
password: "{{ mongodb_password }}"
login_host: "{{ mongodb_bind_ip }}"
login_port: "{{ mongodb_port }}"
login_user: "{{ admin_login }}"
login_password: "{{ admin_password }}"
state: present