mongodb

Ansible MongoDB

Роль Ansible для конфигурации MongoDB с поддержкой репликата.

Особенности

    - Поддержка CentOS и Ubuntu
    - Конфигурация для отдельного сервера и репликата
    - Настройка SELinux на CentOS
    - Настройка Firewalld
    - Путь к конфигурационному файлу MongoDB можно изменить на пользовательский каталог
    - Пользовательские каталоги для базы данных и журналов
    - Включение/выключение аутентификации (включено по умолчанию и рекомендуется)
    - Создание пользователей - Root, DBAdmin, Backup Admin
    - Можно настроить приоритет реплики
    - Аутентификация SCARM

Матрица поддержки

Дистрибутив MongoDB 4.4 MongoDB 4.3
CentOS 8 Поддерживается (Тестировано) Поддерживается (Не тестировалось)
CentOS 7 Поддерживается (Тестировано) Поддерживается (Не тестировалось)
Ubuntu 20.04 LTS Поддерживается (Тестировано) Поддерживается (Не тестировалось)
Ubuntu 19.04 LTS Поддерживается (Тестировано) Поддерживается (Не тестировалось)

Переменные роли


# Версия MongoDB
mongodb_install_version_major: 4
mongodb_install_version_minor: 4
mongodb_install_version_patch: "*"

# CentOS
mongodb_enable_yum_repository: true
mongodb_install_package_lock: true

# Ubuntu
mongodb_enable_apt_repository: true

# Конфигурация SELinux (только на CentOS)
configure_selinux: True

# Конфигурация MongoDB
mongodb_conf_file: /etc/mongodb/mongod.conf            
mongodb_conf_db_dir: /data/mongo-data
mongodb_conf_log_dir: /var/log/mongodb                 
mongodb_conf_dbEngine: wiredTiger                      
mongodb_conf_auth: true                                
mongodb_conf_bindIp: "0.0.0.0"                       
mongodb_conf_journal: true                             
mongodb_conf_maxConns: 64000                           
mongodb_conf_port: 27017                               
mongodb_conf_oplogSize: 1024
mongodb_conf_cloudmonitoring: "off"

# Системные юниты
mongodb_daemon_unitfile: /etc/systemd/system/mongod.service 

# Конфигурация репликата 
mongodb_replication_enabled: true   # false создаст отдельный экземпляр MongoDB
mongodb_replication_key_file: /etc/mongodb/repl.key
mongodb_replication_set_name: rs01

# Конфигурация PyMongo                 
mongodb_pymongo_pip_version: 3.7.1

# Конфигурация учётных записей
mongodb_root_account: root
mongodb_root_password: "p@ssw0rd"

mongodb_admin_account: dbadmin
mongodb_admin_password: "p@ssw0rd"

mongodb_backup_account: backupadmin
mongodb_backup_password: "p@ssw0rd"

Пример плейбука

  - name: Настройка Mongo DB 
    hosts: mongo
    remote_user: root
    become: yes

    roles:
      - mongodb-replicaset

Инвентарь хостов

all:
    hosts:
    children:
        mongo:
            hosts:
                mongo-01.example.com:
                    host_name: mongodb-01
                    host_ip: "192.168.122.201"
                mongo-02.example.com:
                    host_name: mongodb-02
                    host_ip: "192.168.122.202"
                mongo-03.example.com:
                    host_name: mongodb-03
                    host_ip: "192.168.122.203"
        master:
            hosts:
                mongo-01.example.com:
        replicas:
            hosts:
                mongo-02.example.com:
                    priority: 1
                mongo-03.example.com:
                    priority: 1
        arbiter:
            hosts:
#                mongo-03.example.com:
#                    priority: 0

Дополнительные требования

  • Базовая конфигурация для CentOS - Ansible Role

Лицензия

MIT

Планируемые задачи

  1. Поддержка TLS
  2. Поддержка аутентификации x509

Информация об авторе

Мухаммед Икбал iquzart@hotmail.com

О проекте

Install MongoDB standalone or Replicaset

Установить
ansible-galaxy install iquzart/ansible-mongodb-replset
Лицензия
Unknown
Загрузки
58
Владелец
Open Source Enthusiast