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

Průvodce nasazením a údržbou MongoDB pomocí loutky:Část 1

Klastrování databází často zahrnuje konfiguraci a údržbu řady serverů a instancí, to vše se společným účelem. Tím myslíme, že můžete mít různé databázové servery na různých hostitelích, které obsluhují stejná data.

Řekněme například, že máte servery A, B, C a D, rozhodnete se nainstalovat MongoDB na každý, ale později si uvědomíte, že existuje nová verze, kterou byste měli použít. Když máte velký počet serverů a potřebujete aktualizovat verzi MongoDB, jejich ruční konfigurace (jeden po druhém) má spoustu neúspěchů. Tyto překážky mohou zahrnovat; překonfigurování trvá příliš dlouho (proto bude mít váš web dlouhé výpadky) nebo je vaše DB náchylná k některým chybám konfigurace.

Kromě toho vždy existují opakující se úkoly, které byste rádi provedli automaticky, místo abyste podstupovali stále stejné kroky, pokaždé, když chcete provést podobné změny. V určitém okamžiku se také musíme naučit nové moduly, pokud jde o technologický pokrok, které nám mohou pomoci zvýšit výkon clusteru

Zjednodušeně řečeno, potřebujeme automatizační systémy, které dokážou usnadnit všechny zmíněné podniky. Puppet je jedním z nejpreferovanějších softwarových systémů pro dosažení tohoto cíle od té doby:

  • Konfigurace a nasazení clusteru MongoDB je snadné a rychlejší.
  • Opakující se úkoly lze snadno automatizovat tak, že se automaticky provádějí později.
  • Celou infrastrukturu clusteru lze společně spravovat z jediné platformy.
  • Snadné zřizování pro nové uzly v cloudovém, hybridním nebo fyzickém prostředí.
  • Říďte změny a události napříč shlukem uzlů.
  • Během několika minut objevte zdroje, které vám pomohou snadno provádět různé úkoly.
  • Dobře se škáluje od 1 do 200 000 uzlů.
  • Podporováno řadou platforem

Co je Puppet?

Puppet je jazyk, který se používá k uvedení stroje do požadovaného stavu, nebo spíše je to motor, který se používá k interpretaci a aplikaci některých definovaných instrukcí na obsluhující systém. Stejně jako Ansible je i Puppet nástroj pro správu konfigurace používaný k automatizaci a provádění úloh databázového clusteru. Je však pokročilejší a dobře zavedený vzhledem k tomu, že je nejstarší, a proto má mnoho nově integrovaných funkcí, díky kterým by byl sofistikovanější než ostatní. Jedním z hlavních důvodů, proč osobně preferuji Puppet, je možnost, kterou mi dává konfigurovat velké množství uzlů propojených společně s vyrovnávači zátěže, síťovými zařízeními nebo firewally. Puppet se často používá ve velkých podnicích se složitým prostředím.

Jak loutka funguje

Puppet využívá techniku ​​idempotence, která mu pomáhá řídit určitý stroj od okamžiku jeho vytvoření a po celou dobu jeho životního cyklu i při změnách konfigurace. Hlavní výhodou tohoto je, že stroj je aktualizován v průběhu několika let, spíše než aby byl stavěn několikrát od nuly. V případě aktualizace Puppet zkontroluje aktuální stav cílového stroje a změny se projeví pouze v případě, že dojde ke konkrétní změně v konfiguraci.

Idempotence

Pracovní postup idempotence je uveden níže:

Mistr loutek shromažďuje podrobnosti týkající se aktuálního stavu cílového počítače a porovnává je s podrobnostmi konfigurace na úrovni stroje a poté vrací podrobnosti, které jsou odeslány do konverzní vrstvy.

Konverzní vrstva porovná načtenou konfiguraci s nově definovanými podrobnostmi konfigurace a poté vytvoří katalog, který se odešle cílovým agentům Puppet, v tomto případě cílovým uzlům, pro které mají být změny aplikovány.

Změny konfigurace se poté aplikují na systém, aby jej převedly do požadovaného stavu. Poté, co byly změny implementovány, Puppet agent odešle zprávu zpět do Puppet master, která je zdokumentována pro definování nového stavu systému jako dodaného katalogu.

Základní součásti loutky

  1. Zdroje pro loutku

    Toto jsou klíčové modelovací komponenty konkrétního stroje, jejichž popisy uvedou stroj do požadovaného stavu.

  2. Poskytovatelé

    Poskytovatelé jsou konkrétní zdroje používané k přidávání balíčků do systému, např. mňam a apt-get. Existují výchozí poskytovatelé, ale když potřebujete nějaké balíčky, můžete přidat další.

  3. Manifest

    Jedná se o kolekci zdrojů, které jsou definovány buď ve funkci nebo ve třídě spojené dohromady za účelem konfigurace cílového systému.

    Struktura by měla být

    resource:{‘module’:
    	attribute => value
    }

    Například při instalaci mongodb můžeme mít soubor manifestu nazvaný Mongodb.pp s následujícím obsahem:

    package {‘mongodb’:
    		ensure => installed
         }
  4. Moduly

    Toto je klíčový stavební blok Puppet, který je v podstatě sbírkou zdrojů, šablon a souborů. Mohou být distribuovány v jakémkoli operačním systému, a proto mohou být použity vícekrát se stejnou konfigurací.

  5. Šablony

    Šablony se používají k definování přizpůsobeného obsahu a variabilního vstupu. Používají syntaxi Ruby, tedy pokud chcete definovat port, který chcete poslouchat:

    Listen <% [email protected]_number %>

    Proměnná číslo_portu je v tomto případě definována v manifestu, který odkazuje na tuto šablonu.

  6. Statické soubory

    Toto jsou obecné soubory, které mohou být vyžadovány k provádění konkrétních úkolů. Jsou umístěny v adresáři souborů libovolného modulu.

Instalace loutky

Pro účely učení si nainstalujeme a nakonfigurujeme loutku do virtuálního stroje, který si vytvoříme na našem lokálním stroji. Nejprve si budete muset nainstalovat virtualbox a vagrant. Po instalaci otevřete nový terminál a vytvořte adresář Puppet pravděpodobně na ploše a spusťte příkaz $ vagrant init. Tím vytvoříte virtuální stroj a označíte jej za tulák. Poté se můžeme přihlásit do tohoto stroje příkazem $ vagrant ssh.

Pokud se zobrazí obrazovka podobná té níže, váš počítač je v provozu.

V opačném případě, pokud jste na serveru, můžete tento krok ignorovat a pokračovat přidáním loutkového balíčku jako níže.

Přidejte balíček loutky pomocí příkazu

$ wget https://apt.puppetlabs.com/puppet5-release-xenial.deb

A pak balíček rozbalte a nainstalujte pomocí

$ sudo dpkg -i puppet5-release-xenial.deb

Potřebujeme aktualizovat naše repozitáře, abychom spustili

$ sudo apt-get update

Nainstalujte loutkového agenta spuštěním

$ sudo apt-get install puppet-agent

Po dokončení instalace můžeme potvrdit kontrolou verze. Možná se budete muset odhlásit ze svého virtuálního počítače, aby byla cesta Puppet přidána do prostředí, pak spusťte $ puppet --version, nebo pokud jste se neodhlásili, spusťte $ /opt/puppetlabs/bin/puppet --version. Pokud získáte číslo verze jako 5.5.14, instalace byla úspěšná.

Po instalaci MongoDB pomocí Mongodb.pp, který jsme vytvořili výše, můžeme jednoduše napsat nějakou úlohu pro nastavení databázových produktů a také přidat uživatele do této databáze.

‘Mongodb_database’ se používá k vytváření a správě databází v rámci MongoDB

mongodb_database{‘products’:
	ensure => present,
            tries => 10
}

‘Mongodb_user lze použít k vytváření a správě uživatelů v databázi MongoDB.‘

Chcete-li přidat uživatele do databáze ‚produktů‘

mongodb_user {userprod:
  username => ‘prodUser’,
  ensure => present,
  password_hash => mongodb_password(‘prodUser’, ‘passProdser’),
  database => prodUser,
  roles => [‘readWrite’, ‘dbAdmin’],
  tries  => 10
}

Závěr

V tomto blogu jsme se dozvěděli, co je Puppet, výhody s ním spojené a jeho pracovní architekturu. Puppet je o něco složitější než ostatní nástroje pro správu (jako je Chef a Ansible), ale má spoustu modulů, které lze použít k řešení problémů se správou databází. V další části probereme, jak připojit vzdálené stroje, aby je bylo možné překonfigurovat pomocí definovaných souborů manifestu.


  1. Nelze vytvořit funkční projekt meteor.js na tulákovské krabici

  2. RDBTools získal RedisLabs!

  3. Mongoose - RangeError:Maximální velikost zásobníku hovorů překročena

  4. O kolik je Redis rychlejší než mongoDB?