pgkehle.mongodb
Rola Ansible - mongodb
Konfiguracja komponentów klastra MongoDB
Dostępne w Ansible Galaxy: isaackehle.mongodb
Zmienne
Wymagane definicje są następujące:
cfg_server:
name: "my-cfg" # (Wymagane)
group: "my-cfg-servers" # (Wymagane) Zawsze podawaj identyfikator grupy używany dla serwerów konfiguracyjnych
replica_set:
name: "my-cfg" # nazwa zestawu replik dla serwera konfiguracyjnego (prefiks fqdn)
group: "my-cfg-servers" # nazwa grupy dla wszystkich serwerów w zestawie replik
Definicje hostów zazwyczaj zawierają następujące informacje:
Tylko Zestaw Replik
cluster_role: "replicaSet"
Serwer Router
cluster_role: "router"
Serwer Konfiguracyjny
cluster_role: "config"
replica_set:
name: "my-cfg" # nazwa zestawu replik dla serwera konfiguracyjnego (prefiks fqdn)
group: "my-cfg-servers" # nazwa grupy dla wszystkich serwerów w zestawie replik
Serwer Shard
cluster_role: "shard"
replica_set:
name: "db-data" # nazwa zestawu replik dla serwera shard (prefiks fqdn)
group: "db-data-servers" # nazwa grupy dla wszystkich serwerów w zestawie replik
Tagowanie/Flagi
Używam systemu flag i tagów, które pozwalają wywołującemu playbooka określić, które role mają być uruchomione. Na przykład:
ansible-playbook playbooks/mongodb.yml -e "{'flags': ['install']}"
ansible-playbook playbooks/mongodb.yml -e "{'flags': ['save_config']}"
ansible-playbook playbooks/mongodb.yml -e "{'flags': ['reset_storage']}"
ansible-playbook playbooks/mongodb.yml -e "{'flags': ['init_replica_set']}"
ansible-playbook playbooks/mongodb.yml -e "{'flags': ['add_shard_to_cluster']}"
ansible-playbook playbooks/mongodb.yml -e "{'flags': ['create_database']}"
Flagi i Zmienne
Flaga | Cel |
---|---|
install | Instalacja pakietów mongo |
save_config | Podstawowa inicjalizacja. Zatrzymaj usługi, wgraj pliki konfiguracyjne, uruchom usługi ponownie |
reset_storage | Wyczyść katalogi i logi |
init_replica_set | Inicjalizacja konfiguracji zestawu replik |
add_shard_to_cluster | Dodaj zestaw replik serwera shard do klastra serwerów shard |
create_database | Utworzenie początkowej bazy danych, z nazwą użytkownika i hasłem |
vars:
flags: ["install"]
new_shard:
name: # Nazwa zestawu replik do dodania do serwera konfiguracyjnego
server: # Jeden z członków nowego zestawu replik do dodania
Przykłady
- hosts: all
vars:
auth_db: ""
adminUser: ""
adminPass: ""
tgt_db: ""
userName: ""
userPass: ""
roles: ["readWrite", "userAdmin"]
# Przy inicjalizacji zestawu replik
adminUser: ''
adminPass: ''
roles:
- { role: isaackehle.mongodb, flags: ['install'] }
- { role: isaackehle.mongodb, flags: ['save_config'] }
- { role: isaackehle.mongodb, flags: ['reset_storage'] }
- { role: isaackehle.mongodb, flags: ['init_replica_set'] }
- { role: isaackehle.mongodb, flags: ['add_shard_to_cluster'] }
- { role: isaackehle.mongodb, flags: ['create_database'] }
Linting
yamllint -c yamllint.yaml .
ansible-lint .
Licencja
MIT
Informacje o autorze
Isaac Kehle
@isaackehle (twitter, github, linkedin)
Referencje
MongoDB
Digital Ocean
Zainstaluj
ansible-galaxy install pgkehle.mongodb
Licencja
mit
Pobrania
194
Właściciel