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.mongodbLicencja
 
            mit
          
Pobrania
 
            202
          
Właściciel
 