Модуль community.mongodb.mongodb_replicaset – Инициализация набора реплик MongoDB.
Примечание
Этот модуль входит в коллекцию community.mongodb (версия 1.7.12).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните команду ansible-galaxy collection list.
Чтобы установить ее, используйте: ansible-galaxy collection install community.mongodb. Для работы с этим модулем требуются дополнительные компоненты. Подробнее см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.mongodb.mongodb_replicaset.
Добавлено в community.mongodb 1.0.0
Обзор
- Инициализирует набор реплик MongoDB в новом развертывании.
- Проверяет имя набора реплик в существующих развертываниях.
- Поддерживает расширенную настройку (и перенастройку) участников набора реплик (см. примеры).
- Инициализируйте набор реплик до добавления пользователей в соответствии с \ [рекомендациями](https://www.mongodb.com/docs/manual/tutorial/deploy-replica-set-with-keyfile-access-control/).
Требования
Следующие компоненты должны быть установлены на хосте, на котором выполняется этот модуль.
- pymongo
Параметры
Параметр | Комментарии |
|---|---|
arbiter_at_index integer | Указывает позицию арбитра в массиве участников. |
atlas_auth boolean | Способ аутентификации, предназначенный для экземпляров MongoDB Atlas Варианты:
|
auth_mechanism string | Тип аутентификации. Варианты:
|
chaining_allowed boolean | Если settings.chaining_allowed=true, набор реплик позволяет вторичным участникам реплицировать данные с других вторичных участников. Если settings.chaining_allowed=false, вторичные участники могут реплицировать данные только с первичного участника. Варианты:
|
cluster_cmd string | Команда, которую модуль должен использовать для получения информации об узле MongoDB, к которому выполняется подключение. Варианты:
|
connection_options list / elements=any | Дополнительные параметры подключения. Передайте их в виде списка словарей или строк с парами ключ-значение, разделенными символом «=». |
debug boolean | Добавляет дополнительную информацию для отладки. Варианты:
|
election_timeout_millis integer | Время в миллисекундах, по истечении которого первичный участник набора реплик считается недоступным. По умолчанию: |
force boolean | Применяется только при reconfigure = true. Укажите true, чтобы принудительно применить новую конфигурацию к доступным участникам набора реплик. Принудительная перенастройка может привести к неожиданному или нежелательному поведению, в том числе к откату записей, подтвержденных большинством. Варианты:
|
heartbeat_timeout_secs integer | Количество секунд, в течение которого участники набора реплик ожидают успешного сигнала проверки связи друг от друга. Если участник не отвечает вовремя, остальные участники помечают его как недоступный. Этот параметр применяется только при использовании protocol_version=0. При использовании protocol_version=1 применяется параметр settings.election_timeout_millis. По умолчанию: |
login_database string | База данных, в которой хранятся учетные данные для входа. По умолчанию: |
login_host string | Хост, на котором работает экземпляр MongoDB, к которому выполняется подключение. По умолчанию: |
login_password string | Пароль для аутентификации. Обязателен, если указан login_user. |
login_port integer | Порт сервера MongoDB, к которому выполняется подключение. По умолчанию: |
login_user string | Пользователь MongoDB для входа. Обязателен, если указан login_password. |
max_time_ms integer | Задает общий временной лимит в миллисекундах на выполнение перенастройки набора реплик. |
members list / elements=any | Список YAML, содержащий участников набора реплик. Также можно указать строку CSV, например mongodb1:27017,mongodb2:27017,mongodb3:27017. Для задания расширенных параметров участников набора реплик можно также использовать словарь. Если номер порта не указан, предполагается значение 27017. |
protocol_version integer | Версия протокола выборов набора реплик. Варианты:
|
reconfigure boolean | Эта функция пока экспериментальная. Тщательно протестируйте свой сценарий. Сведения о поддерживаемых сценариях см. в файле интеграционных тестов — \ [интеграционные тесты](https://github.com/ansible-collections/community.mongodb/tree/master/tests/integration/targets/mongodb_replicaset/tasks). \ См. файлы с префиксом 330. Определяет, следует ли выполнять перенастройку набора реплик. Применяется только к уже существующему набору реплик. За один вызов можно удалить или добавить только одного участника. При перенастройке все участники должны быть указаны либо строками, либо словарями. Изменение документа с настройками набора реплик пока не поддерживается. При использовании этой функции всегда указывайте порты в списке набора реплик, иначе некоторые операции могут завершиться с ошибкой. Варианты:
|
replica_set string | Имя набора реплик. По умолчанию: |
ssl псевдонимы: tls boolean | Использовать ли SSL-подключение к базе данных. Варианты:
|
ssl_ca_certs псевдонимы: tlsCAFile string | Параметр ssl_ca_certs задает путь к файлу CA. |
ssl_cert_reqs псевдонимы: tlsAllowInvalidCertificates string | Определяет, требуется ли сертификат от другой стороны подключения и нужно ли проверять его, если он предоставлен. Варианты:
|
ssl_certfile псевдонимы: tlsCertificateKeyFile string | Для предъявления клиентского сертификата используйте параметр ssl_certfile. |
ssl_crlfile string | Параметр ssl_crlfile задает путь к файлу CRL. |
ssl_keyfile string | Закрытый ключ клиентского сертификата. |
ssl_pem_passphrase псевдонимы: tlsCertificateKeyFilePassword string | Парольная фраза для расшифровки зашифрованных закрытых ключей. |
strict_compatibility boolean | Строго проверять требования к версиям pymongo и MongoDB Варианты:
|
validate boolean | Выполняет базовую проверку указанной конфигурации набора реплик. Варианты:
|
Примечания
Примечание
- На удаленном хосте требуется пакет Python pymongo версии 4 или выше. Его можно установить с помощью pip или менеджера пакетов ОС. @см. http://api.mongodb.org/python/current/installation.html
Примеры
# Create a replicaset called 'rs0' with the 3 provided members
- name: Ensure replicaset rs0 exists
community.mongodb.mongodb_replicaset:
login_host: localhost
login_user: admin
login_password: admin
replica_set: rs0
members:
- mongodb1:27017
- mongodb2:27017
- mongodb3:27017
when: groups.mongod.index(inventory_hostname) == 0
# Create two single-node replicasets on the localhost for testing
- name: Ensure replicaset rs0 exists
community.mongodb.mongodb_replicaset:
login_host: localhost
login_port: 3001
login_user: admin
login_password: secret
login_database: admin
replica_set: rs0
members: localhost:3001
validate: no
- name: Ensure replicaset rs1 exists
community.mongodb.mongodb_replicaset:
login_host: localhost
login_port: 3002
login_user: admin
login_password: secret
login_database: admin
replica_set: rs1
members: localhost:3002
validate: no
- name: Create a replicaset and use a custom priority for each member
community.mongodb.mongodb_replicaset:
login_host: localhost
login_user: admin
login_password: admin
replica_set: rs0
members:
- host: "localhost:3001"
priority: 1
- host: "localhost:3002"
priority: 0.5
- host: "localhost:3003"
priority: 0.5
when: groups.mongod.index(inventory_hostname) == 0
- name: Create replicaset rs1 with options and member tags
community.mongodb.mongodb_replicaset:
login_host: localhost
login_port: 3001
login_database: admin
replica_set: rs1
members:
- host: "localhost:3001"
priority: 1
tags:
dc: "east"
usage: "production"
- host: "localhost:3002"
priority: 1
tags:
dc: "east"
usage: "production"
- host: "localhost:3003"
priority: 0
hidden: true
slaveDelay: 3600
tags:
dc: "west"
usage: "reporting"
- name: Replicaset with one arbiter node (mongodb3 - index is zero-based)
community.mongodb.mongodb_replicaset:
login_user: admin
login_password: admin
replica_set: rs0
members:
- mongodb1:27017
- mongodb2:27017
- mongodb3:27017
arbiter_at_index: 2
when: groups.mongod.index(inventory_hostname) == 0
- name: Add a new member to a replicaset - Safe for pre-5.0 consult documentation - https://docs.mongodb.com/manual/tutorial/expand-replica-set/
block:
- name: Create replicaset with module - with dicts
community.mongodb.mongodb_replicaset:
replica_set: "rs0"
members:
- host: localhost:3001
- host: localhost:3002
- host: localhost:3003
- name: Wait for the replicaset to stabilise
community.mongodb.mongodb_status:
replica_set: "rs0"
poll: 5
interval: 10
- name: Remove a member from the replicaset
community.mongodb.mongodb_replicaset:
replica_set: "rs0"
reconfigure: yes
members:
- host: localhost:3001
- host: localhost:3002
- name: Wait for the replicaset to stabilise after member removal
community.mongodb.mongodb_status:
replica_set: "rs0"
validate: minimal
poll: 5
interval: 10
- name: Add a member to the replicaset
community.mongodb.mongodb_replicaset:
replica_set: "rs0"
reconfigure: yes
members:
- host: localhost:3001
- host: localhost:3002
- host: localhost:3004
hidden: true
votes: 0
priority: 0
- name: Wait for the replicaset to stabilise after member addition
community.mongodb.mongodb_status:
replica_set: "rs0"
validate: minimal
poll: 5
interval: 30
- name: Reconfigure the replicaset - Make member 3004 a normal voting member
community.mongodb.mongodb_replicaset:
replica_set: "rs0"
reconfigure: yes
members:
- host: localhost:3001
- host: localhost:3002
- host: localhost:3004
hidden: false
votes: 1
priority: 1
- name: Wait for the replicaset to stabilise
community.mongodb.mongodb_status:
replica_set: "rs0"
poll: 5
interval: 30
Возвращаемые значения
Общие возвращаемые значения описаны здесь. Ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
mongodb_replicaset string | Имя созданного набора реплик. Возвращается: success |
reconfigure boolean | Произошла ли перенастройка набора реплик. Возвращается: при перенастройке набора реплик |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/mongodb/mongodb_replicaset_module.html