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
Планируемые задачи
- Поддержка TLS
- Поддержка аутентификации x509
Информация об авторе
Мухаммед Икбал iquzart@hotmail.com
О проекте
Install MongoDB standalone or Replicaset
Установить
ansible-galaxy install iquzart/ansible-mongodb-replset
Лицензия
Unknown
Загрузки
55
Владелец
Open Source Enthusiast