Модуль community.mongodb.mongodb_replicaset — Инициализирует MongoDB репликацию.
Примечание
Этот модуль является частью коллекции community.mongodb (версия 1.7.7).
Эта коллекция может быть уже установлена, если вы используете пакет 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 целое число | Определяет позицию узла в массиве, который является арбитром. |
atlas_auth логическое значение | Путь для аутентификации, предназначенный для экземпляров MongoDB Atlas. Варианты:
|
auth_mechanism строка | Тип аутентификации. Варианты:
|
chaining_allowed логическое значение | Если settings.chaining_allowed=true, репликация позволяет вторичным узлам копировать данные с других вторичных узлов. Если settings.chaining_allowed=false, вторичные узлы могут копировать данные только с первичного. Варианты:
|
cluster_cmd строка | Команда, которую модуль должен использовать для получения информации о узле MongoDB, к которому мы подключаемся. Варианты:
|
connection_options список / элементы=любой | Дополнительные параметры подключения. Указывать в виде списка словарей или строк, содержащих пары ключ-значение, разделенные ‘=’. |
debug логическое значение | Добавить дополнительную информацию для отладки. Варианты:
|
election_timeout_millis целое число | Предельное время в миллисекундах для определения, когда первичный узел репликации недоступен. По умолчанию: |
force логическое значение | Актуально только при reconfigure = true. Укажите true, чтобы принудительно заставить доступные члены репликации принять новую конфигурацию. Принудительная переконфигурация может привести к неожиданному или нежелательному поведению, включая откат “большинством” подтвержденных записей. Варианты:
|
heartbeat_timeout_secs целое число | Количество секунд, которое члены репликации ждут успешного удара сердца друг от друга. Если член не отвечает вовремя, другие члены отмечают проблемного члена как недоступного. Настройка применима только при использовании protocol_version=0. При использовании protocol_version=1 соответствующей настройкой является settings.election_timeout_millis. По умолчанию: |
login_database строка | База данных, в которой хранятся учетные данные для входа. По умолчанию: |
login_host строка | Хост, на котором запущен экземпляр MongoDB для входа. По умолчанию: |
login_password строка | Пароль, используемый для аутентификации. Требуется, если указан login_user. |
login_port целое число | Порт сервера MongoDB для входа. По умолчанию: |
login_user строка | Пользователь MongoDB для входа. Требуется, если указан login_password. |
max_time_ms целое число | Указывает суммарный предел времени в миллисекундах для обработки переконфигурации репликации. |
members список / элементы=любой | Список в формате YAML, содержащий члены репликации. Также принимается строка в формате CSV, например mongodb1:27017,mongodb2:27017,mongodb3:27017. Также можно использовать словарь для указания дополнительных параметров членов репликации. Если номер порта не указан, используется 27017. |
protocol_version целое число | Версия протокола выбора репликации. Варианты:
|
reconfigure boolean | Данная функция в настоящее время находится на стадии эксперимента. Пожалуйста, тщательно протестируйте ваш сценарий. Обратитесь к файлу интеграционных тестов для поддержки сценариев - \ [Интеграционные тесты](https://github.com/ansible-collections/community.mongodb/tree/master/tests/integration/targets/mongodb_replicaset/tasks). \ Смотрите файлы, начинающиеся с 330. Выполнять ли действия по переконфигурации репликазет. Актуально только в случае, если репликазет уже существует. Только один член должен быть удален или добавлен за один вызов. При переконфигурации члены должны быть указаны либо как строки, либо как словари. В настоящее время нет поддержки изменений в документе настроек репликазет. Варианты:
|
replica_set string | Имя репликазет. По умолчанию: |
ssl aliases: tls boolean | Использовать ли SSL-соединение при подключении к базе данных. Варианты:
|
ssl_ca_certs aliases: tlsCAFile string | Параметр ssl_ca_certs принимает путь к файлу CA. |
ssl_cert_reqs aliases: tlsAllowInvalidCertificates string | Указывает, требуется ли сертификат от другой стороны подключения и будет ли он проверен, если предоставлен. Варианты:
|
ssl_certfile aliases: tlsCertificateKeyFile string | Предоставить сертификат клиента с помощью ssl_certfile. |
ssl_crlfile string | Параметр ssl_crlfile принимает путь к файлу CRL. |
ssl_keyfile string | Приватный ключ для сертификата клиента. |
ssl_pem_passphrase aliases: tlsCertificateKeyFilePassword string | Пароль для расшифровки зашифрованных приватных ключей. |
strict_compatibility boolean | Принудительное выполнение строгих требований к версиям pymongo и программного обеспечения MongoDB Варианты:
|
validate boolean | Производит базовую валидацию предоставленной конфигурации репликазет. Варианты:
|
Примечания
Примечание
- Требуется пакет pymongo Python на удаленном хосте, версия 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–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/mongodb/mongodb_replicaset_module.html