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.