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

O projekcie

Configure the components of a MongoDB Cluster

Zainstaluj
ansible-galaxy install pgkehle.mongodb
Licencja
mit
Pobrania
194
Właściciel