sql >> Databáze >  >> NoSQL >> MongoDB

Automatizace nasazení databáze MongoDB

Organizace využívají infrastrukturu v cloudu, protože nabízí rychlost, flexibilitu a škálovatelnost. Dokážete si představit, že můžeme spustit novou instanci databáze pouhým kliknutím a bude trvat několik minut, než bude připravena, můžeme také nasadit aplikaci rychleji než ve srovnání s on-prem prostředím.

Pokud nepoužíváte vlastní cloudovou službu MongoDB, hlavní poskytovatelé cloudu nenabízejí spravovanou službu MongoDB, takže nasazení jedné instance nebo clusteru není ve skutečnosti operace na jedno kliknutí. Běžným způsobem je roztočit virtuální počítače a poté je na nich nasadit. O nasazení je potřeba se postarat od A do Z – musíme připravit instanci, nainstalovat databázový software, vyladit některé konfigurace a zabezpečit instanci. Tyto úkoly jsou zásadní, i když nejsou vždy řádně dodržovány – s potenciálně katastrofálními následky.

Automatizace hraje důležitou roli při zajišťování všech úloh počínaje instalací, konfigurací, posílením až po připravenost databázové služby. V tomto blogu budeme diskutovat o automatizaci nasazení pro MongoDB.

Software Orchestrator

Existuje mnoho nových softwarových nástrojů, které inženýrům pomáhají zavádět a spravovat jejich infrastrukturu. Správa konfigurace pomáhá inženýrům nasazovat rychleji a efektivněji, čímž zkracuje dobu nasazení nových služeb. Oblíbené možnosti zahrnují Ansible, Saltstack, Chef a Puppet. Každý produkt má své výhody a nevýhody, ale všechny fungují velmi dobře a jsou velmi oblíbené. Nasazení stavové služby, jako je MongoDB ReplicaSet nebo Sharded Cluster, může být trochu náročnější, protože se jedná o nastavení s více servery a nástroje mají špatnou podporu pro přírůstkovou koordinaci a koordinaci mezi uzly. Postupy nasazení obvykle vyžadují orchestraci mezi uzly, přičemž úkoly jsou prováděny ve specifickém pořadí.

Úkoly nasazení MongoDB k automatizaci

Nasazení serveru MongoDB zahrnuje řadu věcí; přidejte úložiště MongoDB do local, nainstalujte balíček MongoDB, nakonfigurujte port, uživatelské jméno a spusťte službu.

Úkol:nainstalovat MongoDB

- name: install mongoDB
  apt: 
    name: mongodb
    state: present
    update_cache: yes

Úkol:zkopírujte mongod.conf z konfiguračního souboru.

- name: copy config file
  copy:
    src: mongodb.conf
    dest: /etc/mongodb.conf
    owner: root
    group: root
    mode: 0644
  notify:
    - restart mongodb

Úkol:vytvořte konfiguraci limitu MongoDB:

- name: create /etc/security/limits.d/mongodb.conf
  copy:
    src: security-mongodb.conf
    dest: /etc/security/limits.d/mongodb.conf
    owner: root
    group: root
    mode: 0644
  notify:
    - restart mongodb

Úkol:konfigurace swappiness

- name: config vm.swappiness
  sysctl:
    name: vm.swappiness
    value: '10'
    state: present

Úkol:nakonfigurujte dobu udržování TCP

- name: config net.ipv4.tcp_keepalive_time
  sysctl:
    name: net.ipv4.tcp_keepalive_time
    value: '120'
    state: present

Úkol:zajistit automatické spuštění MongoDB

- name: Ensure mongodb is running and and start automatically on reboots
  systemd:
    name: mongodb
    enabled: yes
    state: started

Všechny tyto úlohy můžeme zkombinovat do jediné příručky a spustit příručku, abychom zautomatizovali nasazení. Pokud spustíme Ansible playbook z konzole:

$ ansible-playbook -b mongoInstall.yml

Postup nasazení uvidíme z našeho skriptu Ansible, výstup by měl být něco jako níže:

PLAY [ansible-mongo] **********************************************************

GATHERING FACTS ***************************************************************
ok: [10.10.10.11]

TASK: [install mongoDB] *******************************************************
ok: [10.10.10.11]

TASK: [copy config file] ******************************************************
ok: [10.10.10.11]

TASK: [create /etc/security/limits.d/mongodb.conf]*****************************
ok: [10.10.10.11]


TASK: [config vm.swappiness] **************************************************
ok: [10.10.10.11]

TASK: [config net.ipv4.tcp_keepalive_time]*************************************
ok: [10.10.10.11]

TASK: [config vm.swappiness] **********************************************
ok: [10.10.10.11]

PLAY RECAP ********************************************************************
[10.10.10.11]          : ok=6    changed=1    unreachable=0    failed=0

Po nasazení můžeme zkontrolovat službu MongoDB na cílovém serveru.

Automatizace nasazení MongoDB pomocí GUI ClusterControl

Existují dva způsoby nasazení MongoDB pomocí ClusterControl. Můžeme jej použít z řídicího panelu ClusterControl, je založen na GUI a potřebuje pouze 2 dialogy, dokud nespustí novou úlohu pro nové nasazení MongoDB.

Nejprve musíme vyplnit SSH uživatele a heslo, vyplňte Cluster Name, jak je uvedeno níže:

A pak vyberte dodavatele a verzi MongoDB, definujte uživatele a heslo a poslední je vyplnění cílové IP adresy

Automatizace nasazení MongoDB pomocí s9s CLI

Z rozhraní příkazového řádku lze použít nástroje s9s. Nasazení MongoDB pomocí s9s je pouze jednořádkový příkaz, jak je uvedeno níže:

$ s9s cluster --create --cluster-type=mongodb --nodes="10.10.10.15"  --vendor=percona --provider-version=4.2 --db-admin-passwd="12qwaszx" --os-user=vagrant --cluster-name="MongoDB" --wait
Create Mongo Cluster
/ Job 183 FINISHED   [██████████] 100% Job finished.


Nasazení MongoDB, ať už je to ReplicaSet nebo Sharded Cluster, je tedy velmi snadné a je zcela automatizované pomocí ClusterControl.


  1. Jak na to:Přidejte Cloudera Search do svého clusteru pomocí Cloudera Manager

  2. Dotazování s mangustou a datlemi

  3. Najděte duplicitní záznamy v MongoDB

  4. Seřazené sady Redis a nejlepší způsob ukládání uid