sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB Database Automation Basics Brug af Chef

Administrerede miljøer vokser over tid, ofte som følge af øget datainvolvering eller måske på grund af behovet for at øge ydeevnen gennem delt arbejdsbyrde. Derfor er der behov for at tilføje medlemmer. For eksempel kan man med MongoDB beslutte sig for at lave replikering og sharding, hvilket derfor vil kræve, at man tilføjer flere medlemmer til klyngen. Konfiguration og implementering af disse miljøer med tiden bliver hektisk, tidskrævende, tilbøjelig til menneskelige fejl og så mange tilknyttede tilbageslag, som endelig medfører driftsomkostninger. Tag et eksempel på et replikasæt med 50 medlemmer i MongoDB, og du vil sønderdele en bestemt samling i hvert af medlemmerne, at gøre dette manuelt for hvert enkelt er tidskrævende, vi har derfor brug for et centraliseret system, hvorfra du nemt kan konfigurere alle medlemmerne . Med et centraliseret system skriver man noget kode, som i tern konfigurerer de tilsluttede medlemmer. Koden er derfor menneskelig læsbar, versionsbar og testbar for at fjerne mulige fejl før implementering.

Hvad er Chef Software?

Chef er en automatiseringssoftware skrevet på Ruby-sproget, der bruges til at strømline opgaven med at konfigurere og vedligeholde cloud-maskiner eller på prem-servere. Det gør det ved at sikre, at alle tilsluttede medlemmer får de nødvendige ressourcer, ressourcerne er godt konfigureret og retter eventuelle ressourcer, der ikke er i den ønskede tilstand. Så Chef sikrer grundlæggende, at filer og softwareressourcer, der forventes at være i en bestemt maskine, er til stede, konfigureret korrekt og fungerer korrekt efter hensigten.

Kokkens komponenter

Kokserver

Dette er det centrale kontrolsystem, der huser konfigurationsdataene. Dataene er skrevet i en 'opskrift', og hvis mange af disse opskrifter er involveret, danner de en kogebog. Det centrale system indeholder også metadata, der beskriver hver af noderne som skitseret i chef-klient.

Alle ændringer foretaget i opskrifter sendes her til validering før implementering. Serveren sikrer også, at arbejdsstationen og de tilsluttede noder er parret ved hjælp af autorisationsnøgler, før kommunikation mellem dem tillades og ændringerne anvendes.

Chef Client Node

Chef-klientnoden registrerer og validerer knudepunkter og bygger knudeobjekterne. Den indeholder i det væsentlige den aktuelle tilstand for en given node og dens metadata.

Node

Dette er den fysiske, virtuelle eller cloud-maskine, der skal konfigureres, og hver skal have klientknuden installeret.

Arbejdsstation

Arbejdsstationen giver en grænseflade til kommunikation mellem serveren og klientknuderne. Det giver en platform til at skrive, teste og implementere kogebøgerne. Det er her rollerne også er defineret

Testkøkken

Det er her, koden valideres.

Kokkekniv

Interagerer noderne.

Kogebøger

Indeholder opskrifter skrevet på Ruby-sprog og bruges til at definere de opgaver, der skal udføres. Opskrifterne angiver ressourcer og rækkefølge for implementering på de definerede opgaver.

  • attributter bruges til at tilsidesætte standardindstillingerne.
  • filer, der bruges til at overføre filer fra specifik sti til chef-klient.
  • metadataressource definerer nodeinformationen som beskrevet i klientnoden.

Sådan fungerer kok

Kokken har to måder at betjene det på, nemlig klient/server eller i en selvstændig tilstand kendt som 'chef-solo'.

Kokken-serveren modtager forskellige attributter vedrørende en bestemt node fra Chef-klienten. Disse attributter indekseres derefter ved hjælp af Elasticsearch af serveren, som derefter giver en Application Program Interface (API), hvorfra klientknuderne kan forespørge disse data. De returnerede resultater bruges derefter af klientknuderne til at konfigurere de relevante maskiner og transformere dem til den ønskede tilstand.

Serveren samler alle operationer, hvor ændringer skal gemmes

Kok-administrerede servere evalueres fra tid til anden i forhold til en ønsket tilstand for at sikre, at eventuelle ændringer i konfigurationer korrigeres automatisk og anvendes universelt. Med denne tilgang er der en konsistent konfiguration i skala.

Kom godt i gang med Chef

Du kan downloade chef-arbejdsstationen fra denne side og installere den. Lav en mappe med navnet kogebøger, og kør kommandoen i denne mappe:

$ chef generate cookbook first_cookbook

Dette vil generere en mappe ved navn first_cookbook med nogle undermapper og filer.

Naviger til cookbooks/first_cookbook/recipes/ og opdater standard.rb-opskriften med indholdet

file "test.txt" do

  content 'This is my first recipe file'

end

Vi udfører derefter denne fil ved hjælp af kommandoen

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

ELLER, inde i opskriftsmappen kan du køre filen med kommandoen

$ chef-apply default.rb

Hvis du navigerer til din opskriftsmappe, vil du helt sikkert se test.txt-filen med indholdet. Dette er min første opskriftsfil. Så nemt er det. I det næste afsnit vil vi lave opskrifter til at udføre nogle specifikke opgaver vedrørende MongoDB

Installation og konfiguration af MongoDB med Chef

Du kan installere MongoDB ved at oprette en installationsopskrift MongoDBInstall.rb og udfylde den med indholdet

package "mongodb" do

 action :install

 version '4.0.3'

end

I dette tilfælde er vores pakkenavn mongodb, og vi skal installere version 4.0.3

Det, vi har, er en grundlæggende opskrift, men i mange tilfælde har vi brug for en avanceret kogebog for at udføre vores konfiguration i MongoDB. For at lette opgaven er der udviklet kogebøger såsom SC-MongoDB, der generelt gør konfigurationen præcis.

SC-MongoDB kogebog

Kogebogen indeholder  mongodb_instance, der forbedrer en til at konfigurere MongoDB-parametre, replikasæt og en sharded cluster.

For at installere kogebogen skal du bare køre kommandoen

$ knife supermarket download sc-mongodb

Du kan derefter bruge de definerede attributter på dette websted til at omkonfigurere nogle af standard MongoDB-attributter.


  1. $filter inde i $project MongoDB ved hjælp af Spring Data

  2. Tilføj udløb til Redis Cache

  3. mongod HostnameCanonicalizationWorker fejl på OS X

  4. Beregn gennemsnitsværdien af ​​et mongodb-dokument