代码之家  ›  专栏  ›  技术社区  ›  Artem Ilchenko

通过Ansible Playbook启用Mongo身份验证

  •  0
  • Artem Ilchenko  · 技术社区  · 8 年前

    我尝试在我的服务器上安装mongodb并启用身份验证。但我一直在为auth添加用户。当我尝试执行Playbook时,它失败了 添加用户 输出任务:

    任务执行期间发生异常。要查看完整的回溯,请使用-vvv。错误为:pymongo.errors.operationfailure:没有经过身份验证的用户 致命:[***]:失败!=>“changed”:false,“msg”:“无法连接到数据库:没有经过身份验证的用户”

    我怎么修?

    剧本.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
    

    蒙古数据库.yml

    net:
      port: {{ mongodb_port }}
      bindIp: {{ mongodb_bind_ip }}
      unixDomainSocket:
       enabled: false
    security:
      authorization: enabled
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Alex Blex    8 年前

    security.authorization https://docs.mongodb.com/manual/tutorial/enable-authentication/#procedure

    - 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
    

    https://docs.ansible.com/ansible/2.4/mongodb_user_module.html