sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB Databas Automation Basics Använda Chef

Hanterade miljöer växer med tiden, ofta som ett resultat av det ökade dataengagemanget eller kanske på grund av behovet av att öka prestanda genom delad arbetsbelastning. På grund av detta finns ett behov av att lägga till medlemmar. Till exempel, med MongoDB kan man bestämma sig för att replikera och skärpa, vilket följaktligen kommer att kräva att man lägger till fler medlemmar i klustret. Att konfigurera och distribuera dessa miljöer med tiden blir hektiskt, tidskrävande, utsatt för mänskliga fel och så många associerade bakslag som slutligen innebär driftskostnader. Ta ett exempel på ett replikset med 50 medlemmar i MongoDB och du vill skära en viss samling i var och en av medlemmarna, att göra detta manuellt för varje är tidskrävande, vi behöver därför ett centraliserat system från vilket du enkelt kan konfigurera alla medlemmar . Med ett centraliserat system skriver man en del kod som i sin tur konfigurerar de anslutna medlemmarna. Koden är därför läsbar för människor, versionsbar och testbar för att ta bort eventuella fel före distribution.

Vad är Chef Software?

Chef är en automatiseringsprogramvara skriven på Ruby-språket som används för att effektivisera uppgiften att konfigurera och underhålla molnmaskiner eller på premservrar. Den gör det genom att se till att alla anslutna medlemmar får de nödvändiga resurserna, resurserna är välkonfigurerade och korrigerar alla resurser som inte är i önskat tillstånd. Så Chef säkerställer i princip att filer och mjukvaruresurser som förväntas finnas i en viss maskin finns, konfigurerade korrekt och fungerar som de ska.

Kockens komponenter

Kockserver

Detta är det centrala styrsystemet som innehåller konfigurationsdata. Uppgifterna skrivs i ett "recept" och om många av dessa recept är inblandade bildar de en kokbok. Det centrala systemet innehåller också metadata som beskriver var och en av noderna som beskrivs i chef-klient.

Alla ändringar som görs i recept skickas hit för validering innan implementering. Servern säkerställer också att arbetsstationen och de anslutna noderna är ihopparade med hjälp av auktoriseringsnycklar innan kommunikation mellan dem tillåts och ändringarna tillämpas.

Kockklientnod

Kockklientnoden registrerar och validerar noder och bygger nodobjekten. Den innehåller i huvudsak det aktuella tillståndet för en given nod och dess metadata.

Nod

Detta är den fysiska, virtuella eller molnmaskinen som ska konfigureras och var och en ska ha klientnoden installerad.

Arbetsstation

Arbetsstationen tillhandahåller ett gränssnitt för kommunikation mellan servern och klientnoderna. Det ger en plattform för att skriva, testa och distribuera kokböckerna. Det är här rollerna också definieras

Testa kök

Det är här koden valideras.

Kockkniv

Interagerar noderna.

Kokböcker

Innehåller recept skrivna på rubinspråk och används för att definiera de uppgifter som ska utföras. Recepten anger resurser och implementeringsordning för de definierade uppgifterna.

  • attribut används för att åsidosätta standardinställningarna.
  • filer som används för att överföra filer från specifik sökväg till kock-klient.
  • metadataresurs definierar nodinformationen enligt beskrivningen i klientnoden.

Så fungerar kock

Kocken har två sätt att använda, det vill säga klient/server eller i ett fristående läge som kallas "kock-solo".

Kock-servern får olika attribut för en viss nod från kock-klienten. Dessa attribut indexeras sedan med hjälp av Elasticsearch av servern som sedan tillhandahåller ett applikationsprogramgränssnitt (API) varifrån klientnoderna kan fråga dessa data. De returnerade resultaten används sedan av klientnoderna för att konfigurera de relevanta maskinerna och omvandla dem till önskat tillstånd.

Servern nav alla operationer där ändringar ska lagras

Kockhanterade servrar utvärderas då och då mot något önskat tillstånd för att säkerställa att eventuella ändringar i konfigurationer korrigeras automatiskt och tillämpas universellt. Med detta tillvägagångssätt finns det en konsekvent konfiguration i skala.

Komma igång med Chef

Du kan ladda ner chef-arbetsstationen från denna sida och installera den. Skapa en mapp som heter kokböcker och kör kommandot:

i den här mappen
$ chef generate cookbook first_cookbook

Detta genererar en katalog som heter first_cookbook med några undermappar och filer.

Navigera till cookbooks/first_cookbook/recipes/ och uppdatera default.rb-receptet med innehållet

file "test.txt" do

  content 'This is my first recipe file'

end

Vi kör sedan den här filen med kommandot

$ chef-client --local-mode --override-runlist first_cookbook.

ELLER, i receptmappen kan du köra filen med kommandot

$ chef-apply default.rb

Om du navigerar till din receptmapp kommer du definitivt att se test.txt-filen med innehållet. Detta är min första receptfil. Det är så enkelt. I nästa avsnitt kommer vi att skapa recept för att göra några specifika uppgifter angående MongoDB

Installera och konfigurera MongoDB med Chef

Du kan installera MongoDB genom att skapa ett installationsrecept MongoDBInstall.rb och fylla i det med innehållet

package "mongodb" do

 action :install

 version '4.0.3'

end

I det här fallet är vårt paketnamn mongodb och vi kommer att installera version 4.0.3

Vad vi har är ett grundrecept men i många fall kommer vi att behöva en avancerad kokbok för att göra vår konfiguration i MongoDB. För att underlätta uppgiften finns det utvecklade kokböcker som SC-MongoDB som i allmänhet gör konfigurationen exakt.

SC-MongoDB kokbok

Kokboken tillhandahåller  mongodb_instance som förbättrar en för att konfigurera MongoDB-parametrar, replikuppsättningar och ett fragmenterat kluster.

För att installera kokboken, kör bara kommandot

$ knife supermarket download sc-mongodb

Du kan sedan använda de definierade attributen på den här webbplatsen för att konfigurera om några av MongoDB-standardattributen.


  1. Hur kör man minnesanalys på AWS ElastiCache?

  2. Spring Data Redis:Redis Pipeline returnerar alltid null

  3. Att veta när resque-arbetaren hade avslutat jobbet

  4. Så här gör du:Hantera HBase-data via Hue