Technologie se den za dnem mění a moderní aplikace musí podstoupit vážné úpravy, aby splnily očekávání jejich organizací v oblasti rychlého dodání. To je bohužel činí složitějšími, sofistikovanějšími a obtížnějšími na údržbu.
Pokud jde o správu databází, datové struktury uvnitř MongoDB se v průběhu času mění v souladu s potřebami aplikace a to by mohlo být poměrně drahé (nebo spíše riskantní).
Z dlouhodobého hlediska potřebujeme mít efektivní databázi snadno nakonfigurovanou a zajistit kompetentní dodávku softwaru. Dosažení těchto všech manuálním způsobem s sebou nese řadu překážek, jako je
- Složitá koordinace mezi členy týmu.
- Vysoká šance na opakování úkolu
- Dochází k mnoha lidským chybám a chybám
- Není obtížné překonat složitost
- Snížená spolupráce a nespokojenost s prací
- Časově náročné
- Špatná odpovědnost a dodržování předpisů
Potíže se správou databáze se soustředí především na
- Zavádění
- Údržba
- Upgrade, který může ovlivnit provozní režii až o 95% snížení.
Dosažení tohoto může MongoDB vyžadovat spoustu času a manuálního úsilí. Abyste zajistili úspěch, budete potřebovat jednoduchý systém, pomocí kterého zajistíte, že všechny výše uvedené neúspěchy lze včas řešit z jediné platformy, to znamená nějakým způsobem automatizovaný systém. Existuje celá řada možností, ale v tomto článku budeme diskutovat o tom, jak využít Ansible.
Co je Ansible
Ansible je prostě univerzální jazyk, který odhaluje tajemství, jak se pracuje. Jinými slovy, jde o nástroj pro orchestraci IT, který automatizuje nasazování aplikací, správu konfigurace a organizuje pokročilejší úlohy IT, jako je zajištění průběžných aktualizací s nulovými prostoji a nepřetržité nasazení.
Stroje lze snadno spravovat způsobem bez agentů s větším zaměřením na bezpečnost a spolehlivost pomocí jazyka navrženého pro „kontrolovatelnost“ lidmi.
I když nasazení MongoDB nemusí být tak obtížné, údržba, zálohování a monitorování se postupem času stávají stále důležitějšími faktory. Navíc to není tak snadné, když jste ve správě databází nováčkem. Díky tomu, že vývojáři Ansible mohou snadno nasazovat a konfigurovat aplikace, umožňuje také rychlé dodání na jakoukoli hostitelskou platformu.
Protože Ansible není součástí systému databázového clusteru, lze jej nainstalovat do libovolného vzdáleného počítače a provést konfiguraci na hostiteli vaší databáze. Zkontrolujte prosím instalační příručku, abyste věděli, která verze je vhodná pro váš operační systém.
Ansible se ve výchozím nastavení připojuje k hostiteli databáze prostřednictvím protokolu SSH.
Ansible Playbooks
Playbooks jsou šablony, kde je napsán kód Ansible, a tudíž přímo Ansible sám, co má provést, takovým způsobem, jako je to-do-list. Jsou napsány ve formátu YAML (Yet Another Markup Language). Každá obsahuje operace krok za krokem, které uživatel na konkrétním počítači následuje a které se spouštějí sekvenčně. Jejich struktura se skládá z jedné nebo více her. Play je v podstatě blok kódu, který mapuje sadu instrukcí definovaných vůči konkrétnímu hostiteli.
Běžně používané značky YAML v Ansible
-
jméno
Toto je značka, která definuje název Ansible playbooku. Je vhodné nastavit název, který přesně definuje, co bude dělat.
-
hostitelé
Toto definuje skupinu hostitelů nebo seznam hostitelů, proti kterým mají být spuštěny definované úlohy. Je to povinná značka, která říká Ansible, na kterých hostitelích má spouštět úlohy, které byly uvedeny. Vzhledem k tomu, že úlohy lze provádět na více strojích, ať už stejných nebo vzdálených, lze v této značce definovat skupinu hostitelů.
-
vars
Jako každý jiný programovací jazyk budete potřebovat proměnné. Pomocí této značky můžete definovat proměnné, které budete používat ve své příručce.
-
úkoly
Tato značka vám umožní vypsat sadu úloh, které mají být provedeny. Úkoly jsou vlastně činnosti, které je třeba provést. Pole úkolu definuje název úkolu, který v podstatě pomáhá s textem pro uživatele během ladění playbooku. Část kódu definovaná jako modul je interně propojena s každou úlohou a všechny argumenty, které mají být použity v rámci modulu, jsou předány přes značku tasks.
Jednoduchá struktura playbooku vypadá asi takto...
---
name: install and configure DB
hosts: testServer
become: yes
vars:
mongoDB_Port : 27017
tasks:
-name: Install the mongodb
yum: <code to install the DB>
-name: Ensure the installed service is enabled and running
service:
name: <your service name>
Napsání jednoduché příručky pro instalaci a spuštění MongoDB
-
Povolení přístupu root SSH
Některá nastavení spravovaných uzlů vás mohou odradit od přihlášení jako uživatel root, a proto je k vyřešení tohoto problému potřeba definovat playbook. Vytvoříme playbook enable-root-access.yml, který bude vypadat takto
--- - hosts: ansible-test remote_user: ubuntu tasks: - name: Enable root login shell: sudo cp ~/.ssh/authorized_keys /root/.ssh/
Když spustíte příkaz
$ ansible-playbook -i inventory.txt -c ssh enable-root-access.yaml
Měli byste vidět něco jako
PLAY [ansible-test] *********************************************************** GATHERING FACTS *************************************************************** TASK: [Enable root login] ***************************************************** PLAY RECAP ********************************************************************
-
Výběr hostitelů a uživatelů v mongodbInstall.yaml
--- - hosts: ansible-test remote_user: root become: yes
-
Přidání úkolů, které mají být provedeny
Úkoly se provádějí postupně, takže je musíme nastínit sekvenčním způsobem, tj.
- apt_key pro přidání klíčů úložiště. Veřejný klíč GPG MongoDB je třeba nejprve importovat
- name: Import the public key used by the package management system apt_key: keyserver=hkp://keyserver.ubuntu.com:80 id=7F0CEB10 state=present
- Přidání úložiště MongoDB apt_repository
- name: Add MongoDB repository apt_repository: repo='deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' state=present
- Instalace balíčků a spuštění mongod, poté znovu načtení místní databáze balíčků
- name: install mongodb apt: pkg=mongodb-org state=latest update_cache=yes notify: - start mongodb
- Správa služeb pomocí obslužné rutiny ke spouštění a restartování služeb
handlers: - name: start mongodb service: name=mongod state=started
- apt_key pro přidání klíčů úložiště. Veřejný klíč GPG MongoDB je třeba nejprve importovat
Obecný kód příručky by měl vypadat takto
---
- hosts: ansible-test
remote_user: root
become: yes
tasks:
- name: Import the public key used by the package management system
apt_key: keyserver=hkp://keyserver.ubuntu.com:80 id=7F0CEB10 state=present
- name: Add MongoDB repository
apt_repository: repo='deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' state=present
- name: install mongodb
apt: pkg=mongodb-org state=latest update_cache=yes
notify:
- start mongodb
handlers:
- name: start mongodb
service: name=mongod state=started
Tento soubor pak můžeme spustit pomocí ansible pomocí příkazu
ansible-playbook -i inventory.txt -c ssh mongodbInstall.yaml
Pokud byla příručka úspěšně spuštěna, měli byste to vidět ve svém terminálu
PLAY [ansible-test] ***********************************************************
GATHERING FACTS ***************************************************************
ok: [12.20.3.105]
ok: [12.20.3.106]
TASK: [Import the public key used by the package management system] ***********
changed: [12.20.3.105]
changed: [12.20.3.106]
TASK: [Add MongoDB repository] ************************************************
changed: [12.20.3.105]
changed: [12.20.3.106]
TASK: [install mongodb] *******************************************************
changed: [12.20.3.105]
changed: [12.20.3.106]
NOTIFIED: [start mongodb] *****************************************************
ok: [12.20.3.106]
ok: [12.20.3.105]
PLAY RECAP ********************************************************************
12.20.3.105 : ok=5 changed=3 unreachable=0 failed=0
12.20.3.106 : ok=5 changed=3 unreachable=0 failed=0
Pokud nyní spustíte mongo, budete přesměrováni na mongo shell
MongoDB shell version v4.0.3
connecting to: mongodb://127.0.0.1:27017
Implicit session: session { "id" : UUID("07c88442-0352-4b23-8938-fdf6ac66f253") }
MongoDB server version: 4.0.3
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
Závěr
Ansible je jednoduchý open source IT engine, který automatizuje nasazení aplikací, orchestraci služeb a poskytování cloudu.
Funguje to tak, že připojíte databázové uzly a vytlačíte jim definované instrukce známé jako moduly, standardně je provede přes SSH a po dokončení se jich zbaví. Neprovozuje žádné démony ani servery, a proto jej lze spustit z libovolného vzdáleného počítače. V dalším tutoriálu budeme diskutovat o tom, jak udržovat sadu replik MongoDB v cloudu pomocí Ansible.