HiveBrain v1.2.0
Get Started
← Back to all entries
patternMinor

Creating mongodb database with ansible playbook

Submitted by: @import:stackexchange-dba··
0
Viewed 0 times
creatingwithmongodbplaybookdatabaseansible

Problem

How i can create MongoDB database with Ansible? is it possible?

If not, can i do this with bash script?

I tried to use mongodb_user module for Ansible, but it cant work without existing table.

Solution

- name: Create MongoDB root user siteRootAdmin
  mongodb_user:
    login_port: "27017"
    database: "admin"
    name: "{{ mongodb_admin_user }}"
    password: "{{ mongodb_admin_password }}"
    roles: "root"

- name: Create MongoDB administrative user siteUserAdmin
  mongodb_user:
    login_user: "{{ mongodb_admin_user }}"
    login_password: "{{ mongodb_admin_password }}"
    login_port: "27017"
    database: "e-gov"
    name: "{{ mongodb_user }}"
    password: "{{ mongodb_password }}"
    roles:
      - { db: "admin", role: "readWrite" }
      - { db: "{{ mongodb_database }}", role: "readWrite" }

- name: Create MongoDB backup user siteUserBackup
  mongodb_user:
    login_user: "{{ mongodb_admin_user }}"
    login_password: "{{ mongodb_admin_password }}"
    login_port: "27017"
    database: "e-gov"
    name: "{{ mongodb_backup_user }}"
    password: "{{ mongodb_backup_password }}"
    roles:
      - { db: "admin", role: "backup" }


I did this, and it works with ansible 2.2.0^

Code Snippets

- name: Create MongoDB root user siteRootAdmin
  mongodb_user:
    login_port: "27017"
    database: "admin"
    name: "{{ mongodb_admin_user }}"
    password: "{{ mongodb_admin_password }}"
    roles: "root"

- name: Create MongoDB administrative user siteUserAdmin
  mongodb_user:
    login_user: "{{ mongodb_admin_user }}"
    login_password: "{{ mongodb_admin_password }}"
    login_port: "27017"
    database: "e-gov"
    name: "{{ mongodb_user }}"
    password: "{{ mongodb_password }}"
    roles:
      - { db: "admin", role: "readWrite" }
      - { db: "{{ mongodb_database }}", role: "readWrite" }

- name: Create MongoDB backup user siteUserBackup
  mongodb_user:
    login_user: "{{ mongodb_admin_user }}"
    login_password: "{{ mongodb_admin_password }}"
    login_port: "27017"
    database: "e-gov"
    name: "{{ mongodb_backup_user }}"
    password: "{{ mongodb_backup_password }}"
    roles:
      - { db: "admin", role: "backup" }

Context

StackExchange Database Administrators Q#185240, answer score: 3

Revisions (0)

No revisions yet.