{"id":13480848,"url":"https://github.com/UnderGreen/ansible-role-mongodb","last_synced_at":"2025-03-27T11:31:01.375Z","repository":{"id":27447016,"uuid":"30925564","full_name":"UnderGreen/ansible-role-mongodb","owner":"UnderGreen","description":"Ansible role to configure MongoDB","archived":false,"fork":false,"pushed_at":"2024-04-16T10:42:09.000Z","size":458,"stargazers_count":343,"open_issues_count":34,"forks_count":294,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-10-30T14:42:39.343Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UnderGreen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-02-17T16:23:28.000Z","updated_at":"2024-09-07T00:24:54.000Z","dependencies_parsed_at":"2024-06-20T09:23:33.571Z","dependency_job_id":"ce95a745-2a28-4564-a8aa-3bb7340f808a","html_url":"https://github.com/UnderGreen/ansible-role-mongodb","commit_stats":null,"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UnderGreen%2Fansible-role-mongodb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UnderGreen%2Fansible-role-mongodb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UnderGreen%2Fansible-role-mongodb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UnderGreen%2Fansible-role-mongodb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UnderGreen","download_url":"https://codeload.github.com/UnderGreen/ansible-role-mongodb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245836027,"owners_count":20680307,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T17:00:45.820Z","updated_at":"2025-03-27T11:31:01.007Z","avatar_url":"https://github.com/UnderGreen.png","language":"Python","funding_links":[],"categories":["Python","Tools","Reverse Proxy"],"sub_categories":["Deployment","Databases"],"readme":"# Ansible role for MongoDB\n![Centos](https://github.com/UnderGreen/ansible-role-mongodb/actions/workflows/centos.yml/badge.svg) ![Debian](https://github.com/UnderGreen/ansible-role-mongodb/actions/workflows/debian.yml/badge.svg) ![Ubuntu](https://github.com/UnderGreen/ansible-role-mongodb/actions/workflows/ubuntu.yml/badge.svg) ![Amazon Linux 2](https://github.com/UnderGreen/ansible-role-mongodb/actions/workflows/amazonlinux2.yml/badge.svg)\n\nAnsible role to install and manage [MongoDB](http://www.mongodb.org/).\n\n- Install and configure the MongoDB\n- Configure mongodb users\n- Configure authentication\n- Configure replication\n- Setup MMS automation agent;\n\nMongoDB support matrix:\n\n| Distribution   | \u003c MongoDB 3.4 |    MongoDB 3.6     |    MongoDB 4.0     |   MongoDB 4.2      |   MongoDB 4.4      |\n| -------------- | :-----------: | :----------------: | :----------------: | :----------------: | :----------------: |\n| Ubuntu 16.04   |  :no_entry:   | :white_check_mark: | :white_check_mark: | :white_check_mark: |        :x:         |\n| Ubuntu 18.04   |  :no_entry:   | :white_check_mark: | :white_check_mark: | :white_check_mark: |        :x:         |\n| Ubuntu 20.04   |  :no_entry:   |        :x:         |        :x:         |        :x:         | :white_check_mark: |\n| Debian 9.x     |  :no_entry:   | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |\n| Debian 10.x    |  :no_entry:   |        :x:         |        :x:         | :white_check_mark: | :white_check_mark: |\n| RHEL 7.x       |  :no_entry:   | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |\n| RHEL 8.x       |  :no_entry:   | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |\n| Amazon Linux 2 |  :no_entry:   | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |\n\n- :white_check_mark: - fully tested\n- :x: - don't have official support\n- :no_entry: - MongoDB has reached EOL\n\n#### Variables\n\n```yaml\n# This variable is used to set source of MongoDB installation.\n# 'mongodb' - version provided by Debian-based distributions from their official package repositories.\n# 'mongodb-org' - version provided by MongoDB package repository.\n# 'mongodb' is not included in th role test matrix and working of it is not guarantied.\nmongodb_package: mongodb-org\n\n# `mongodb_version` variable sets version of MongoDB.\n# Should be '3.6', '4.0', '4.2' or '4.4'. This role doesn't support MongoDB \u003c 3.6.\n# I would recommend you to use the latest version of MongoDB.\nmongodb_version: \"4.4\"\n\nmongodb_pymongo_from_pip: true # Install latest PyMongo via PIP or package manager\nmongodb_pymongo_pip_version: 3.6.1 # Choose PyMong version to install from pip. If not set use latest\nmongodb_user_update_password: \"on_create\" # MongoDB user password update default policy\nmongodb_manage_service: true\nmongodb_manage_systemd_unit: true\n\n# Disable transparent hugepages on systemd debian based installations\nmongodb_disable_transparent_hugepages: false\n\n# You can enable or disable NUMA support\nmongodb_use_numa: true\n\nmongodb_user: \"{{ 'mongod' if ('RedHat' == ansible_os_family) else 'mongodb' }}\"\nmongodb_uid:\nmongodb_gid:\nmongodb_daemon_name: \"{{ 'mongod' if ('mongodb-org' in mongodb_package) else 'mongodb' }}\"\n## net Options\nmongodb_net_bindip: 127.0.0.1 # Comma separated list of ip addresses to listen on\nmongodb_net_http_enabled: false # Enable http interface\nmongodb_net_ipv6: false # Enable IPv6 support (disabled by default)\nmongodb_net_maxconns: 65536 # Max number of simultaneous connections\nmongodb_net_port: 27017 # Specify port number\n\n## processManagement Options\nmongodb_processmanagement_fork: false # Fork server process\n\n## security Options\n# Disable or enable security. Possible values: 'disabled', 'enabled'\nmongodb_security_authorization: \"disabled\"\nmongodb_security_keyfile: /etc/mongodb-keyfile # Specify path to keyfile with password for inter-process authentication\n\n## storage Options\nmongodb_storage_dbpath: /data/db # Directory for datafiles\nmongodb_storage_dirperdb: false # Use one directory per DB\n\n# The storage engine for the mongod database\nmongodb_storage_engine: \"wiredTiger\"\n# mmapv1 specific options\nmongodb_storage_quota_enforced: false # Limits each database to a certain number of files\nmongodb_storage_quota_maxfiles: 8 # Number of quota files per DB\nmongodb_storage_smallfiles: false # Very useful for non-data nodes\n\nmongodb_storage_journal_enabled: true # Enable journaling\nmongodb_storage_prealloc: true # Disable data file preallocation\n\n# WiredTiger Options\nmongodb_wiredtiger_cache_size: 1 # Cache size for wiredTiger in GB\n\n## systemLog Options\n## The destination to which MongoDB sends all log output. Specify either 'file' or 'syslog'.\n## If you specify 'file', you must also specify mongodb_systemlog_path.\nmongodb_systemlog_destination: \"file\"\nmongodb_systemlog_logappend: true # Append to logpath instead of over-writing\nmongodb_systemlog_path: /var/log/mongodb/{{ mongodb_daemon_name }}.log # Log file to send write to instead of stdout\n\n## replication Options\nmongodb_replication_replset: # Enable replication \u003csetname\u003e[/\u003coptionalseedhostlist\u003e]\nmongodb_replication_replindexprefetch: \"all\" # specify index prefetching behavior (if secondary) [none|_id_only|all]\nmongodb_replication_oplogsize: 1024 # specifies a maximum size in megabytes for the replication operation log\n\n## setParameter options\n# Configure setParameter option.\n# Example :\nmongodb_set_parameters:\n  {\n    \"enableLocalhostAuthBypass\": \"true\",\n    \"authenticationMechanisms\": \"SCRAM-SHA-1,MONGODB-CR\",\n  }\n\n## Extend config with arbitrary values\n# Example :\nmongodb_config:\n  replication:\n    - \"enableMajorityReadConcern: false\"\n\n# MMS Agent\nmongodb_mms_agent_pkg: https://cloud.mongodb.com/download/agent/monitoring/mongodb-mms-monitoring-agent_7.2.0.488-1_amd64.ubuntu1604.deb\nmongodb_mms_group_id: \"\"\nmongodb_mms_api_key: \"\"\nmongodb_mms_base_url: https://mms.mongodb.com\n\n# Log rotation\nmongodb_logrotate: true # Rotate mongodb logs.\nmongodb_logrotate_options:\n  - compress\n  - copytruncate\n  - daily\n  - dateext\n  - rotate 7\n  - size 10M\n\n# password for inter-process authentication\n# please regenerate this file on production environment with command 'openssl rand -base64 741'\nmongodb_keyfile_content: |\n  8pYcxvCqoe89kcp33KuTtKVf5MoHGEFjTnudrq5BosvWRoIxLowmdjrmUpVfAivh\n  CHjqM6w0zVBytAxH1lW+7teMYe6eDn2S/O/1YlRRiW57bWU3zjliW3VdguJar5i9\n  Z+1a8lI+0S9pWynbv9+Ao0aXFjSJYVxAm/w7DJbVRGcPhsPmExiSBDw8szfQ8PAU\n  2hwRl7nqPZZMMR+uQThg/zV9rOzHJmkqZtsO4UJSilG9euLCYrzW2hdoPuCrEDhu\n  Vsi5+nwAgYR9dP2oWkmGN1dwRe0ixSIM2UzFgpaXZaMOG6VztmFrlVXh8oFDRGM0\n  cGrFHcnGF7oUGfWnI2Cekngk64dHA2qD7WxXPbQ/svn9EfTY5aPw5lXzKA87Ds8p\n  KHVFUYvmA6wVsxb/riGLwc+XZlb6M9gqHn1XSpsnYRjF6UzfRcRR2WyCxLZELaqu\n  iKxLKB5FYqMBH7Sqg3qBCtE53vZ7T1nefq5RFzmykviYP63Uhu/A2EQatrMnaFPl\n  TTG5CaPjob45CBSyMrheYRWKqxdWN93BTgiTW7p0U6RB0/OCUbsVX6IG3I9N8Uqt\n  l8Kc+7aOmtUqFkwo8w30prIOjStMrokxNsuK9KTUiPu2cj7gwYQ574vV3hQvQPAr\n  hhb9ohKr0zoPQt31iTj0FDkJzPepeuzqeq8F51HB56RZKpXdRTfY8G6OaOT68cV5\n  vP1O6T/okFKrl41FQ3CyYN5eRHyRTK99zTytrjoP2EbtIZ18z+bg/angRHYNzbgk\n  lc3jpiGzs1ZWHD0nxOmHCMhU4usEcFbV6FlOxzlwrsEhHkeiununlCsNHatiDgzp\n  ZWLnP/mXKV992/Jhu0Z577DHlh+3JIYx0PceB9yzACJ8MNARHF7QpBkhtuGMGZpF\n  T+c73exupZFxItXs1Bnhe3djgE3MKKyYvxNUIbcTJoe7nhVMrwO/7lBSpVLvC4p3\n  wR700U0LDaGGQpslGtiE56SemgoP\n\n# names and passwords for administrative users\nmongodb_user_admin_name: siteUserAdmin\nmongodb_user_admin_password: passw0rd\n\nmongodb_root_admin_name: siteRootAdmin\nmongodb_root_admin_password: passw0rd\n\nmongodb_root_backup_name: backupuser\nmongodb_root_backup_password: passw0rd\n```\n\n#### Usage\n\nAdd `undergreen.mongodb` to your roles and set vars in your playbook file.\n\nExample vars for authorization:\n\n```yaml\nmongodb_security_authorization: \"enabled\"\nmongodb_users:\n  - {\n    name: testUser,\n    password: passw0rd,\n    roles: readWrite,\n    database: app_development\n}\n```\n\nExample vars for oplog user:\n\n```yaml\nmongodb_oplog_users:\n  - {\n    user: oplog,\n    password: passw0rd\n}\n```\n\nRequired vars to change on production:\n\n```yaml\nmongodb_user_admin_password\nmongodb_root_admin_password\nmongodb_root_backup_password\n\n# if you use replication and authorization\nmongodb_security_keyfile\n```\n\nExample vars for replication:\n\n```yaml\n# It's a 'master' node\nmongodb_login_host: 192.168.56.2\n\n# mongodb_replication_params should be configured on each replica set node\nmongodb_replication_params:\n  - {\n      host_name: 192.168.56.2,\n      host_port: \"{{ mongodb_net_port }}\",\n      host_type: replica,\n    }\n  # host_type can be replica(default) and arbiter\n```\n\nAnd inventory file for replica set:\n\n```ini\n[mongo_master]\n192.158.56.2 mongodb_master=True # it is't a really master of MongoDB replica set,\n                                 # use this variable for replica set init only\n\t\t\t\t\t\t\t\t # or when master is moved from initial master node\n\n[mongo_replicas]\n192.168.56.3\n192.168.56.4\n\n[mongo:children]\nmongo_master\nmongo_replicas\n```\n\nLicensed under the GPLv2 License. See the [LICENSE.md](LICENSE.md) file for details.\n\n#### Feedback, bug-reports, requests, ...\n\nAre [welcome](https://github.com/UnderGreen/ansible-role-mongodb/issues)!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FUnderGreen%2Fansible-role-mongodb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FUnderGreen%2Fansible-role-mongodb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FUnderGreen%2Fansible-role-mongodb/lists"}