Wir implementieren den mongodb-Cluster über ansible in der AWS EC2-Instanz. Sobald eine DB-Instanz bereitgestellt ist, geben wir ihr ein entsprechendes Tag für Primary/Secondary. Wir haben 3 Knoten - 1 für Primary und 2 für Secondary.AWS MongoDB-Cluster Bereitstellung über Ansible
Während die ansible Skripte zum ersten Mal ausgeführt wird, werden wir die primäre Instanz von Tag-Typ Auswahl, initiiert es und das Hinzufügen von sekundären Knoten, um es
rs.initiate()
rs.add(secodnaryHost1)
rs.add(secondaryHost2)
Dies funktioniert gut.
Wenn jedoch einer der sekundären die primäre wird, sind unsere Instanz-Tag-Typ - primäre und MongoDB - primäre nicht identisch. Wenn wir in einem solchen Szenario unsere ansible-Skripts ausführen, schlagen sie fehl, weil der primäre Tag-Typ (der jetzt sekundär ist) nicht über Befehle ausgeführt werden kann.
Was sind die besten Möglichkeiten, um solche Diskrepanzen zu beheben?
Es ist nicht hilfreich Tags zu verwenden, um anzuzeigen, welche Knoten die primäre und die sekundäre, weil (wie Sie bemerkt haben), wenn Der vorhandene primäre Knoten wird offline geschaltet und ein anderer Knoten wird [gewählt] (https://docs.mongodb.com/manual/core/replica-set-elections/), um die Rolle des primären Knoten zu übernehmen. Gibt es einen besonderen Grund, warum Ihr Ansible-Skript wissen muss, welcher Knoten der primäre ist? –