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

Nozioni di base sull'automazione del database MongoDB utilizzando Chef

Gli ambienti gestiti crescono nel tempo, spesso a causa del maggiore coinvolgimento dei dati o forse per la necessità di aumentare le prestazioni attraverso un carico di lavoro condiviso. Per questo motivo è necessario aggiungere membri. Ad esempio, con MongoDB si può decidere di eseguire la replica e lo sharding che di conseguenza richiederanno l'aggiunta di più membri al cluster. La configurazione e l'implementazione di questi ambienti con il tempo diventa frenetica, dispendiosa in termini di tempo, soggetta a errori umani e così tante battute d'arresto associate che alla fine comportano spese operative. Prendi un esempio di un set di repliche con 50 membri in MongoDB e vuoi dividere una determinata raccolta in ciascuno dei membri, farlo manualmente per ciascuno richiede molto tempo, quindi abbiamo bisogno di un sistema centralizzato da cui puoi facilmente configurare tutti i membri . Con un sistema centralizzato si scrive del codice che in terna configura i membri collegati. Il codice è quindi leggibile, versionabile e testabile per rimuovere possibili errori prima della distribuzione.

Cos'è Chef Software?

Chef è un software di automazione scritto nel linguaggio Ruby che viene utilizzato per semplificare l'attività di configurazione e manutenzione di macchine cloud o su server prem. Lo fa assicurando che tutti i membri collegati ottengano le risorse richieste, le risorse siano ben configurate e corregga tutte le risorse che non si trovano nello stato desiderato. Quindi, Chef sostanzialmente garantisce che i file e le risorse software che dovrebbero essere presenti su una determinata macchina siano presenti, configurati correttamente e funzionino correttamente come previsto.

I componenti dello chef

Chef Server

Questo è il sistema di controllo centrale che ospita i dati di configurazione. I dati sono scritti in una "ricetta" e se sono coinvolte molte di queste ricette formano un ricettario. Il sistema centrale contiene anche metadati che descrivono ciascuno dei nodi come descritto in chef-client.

Tutte le modifiche apportate alle ricette passano qui per la convalida prima della distribuzione. Il server garantisce inoltre che la workstation e i nodi collegati siano accoppiati utilizzando le chiavi di autorizzazione prima di consentire la comunicazione tra loro e applicare le modifiche.

Nodo Chef Cliente

Il nodo client Chef registra e convalida i nodi e crea gli oggetti nodo. Sostanzialmente mantiene lo stato corrente di un dato nodo e dei suoi metadati.

Nodo

Questa è la macchina fisica, virtuale o cloud da configurare e su ciascuna deve essere installato il nodo client.

Postazione di lavoro

La workstation fornisce un'interfaccia per la comunicazione tra il server ei nodi client. Fornisce una piattaforma per scrivere, testare e distribuire i libri di cucina. È qui che vengono definiti anche i ruoli

Cucina di prova

Qui è dove viene convalidato il codice.

Coltello da chef

Interagisce con i nodi.

Libri di cucina

Contiene ricette scritte in linguaggio Ruby e sono usate per definire i compiti da svolgere. Le ricette specificano le risorse e l'ordine di implementazione sui compiti definiti.

  • Gli attributi vengono utilizzati per sovrascrivere le impostazioni predefinite.
  • file utilizzati per trasferire file da un percorso specifico a chef-client.
  • La risorsa metadati definisce le informazioni sul nodo come descritto in client-node.

Come lavora lo chef

Lo chef ha due modalità di funzionamento, ovvero client/server o in una modalità autonoma nota come 'chef-solo'.

Lo Chef-server riceve vari attributi riguardanti un certo nodo dallo Chef-client. Questi attributi vengono quindi indicizzati utilizzando Elasticsearch dal server che fornisce quindi un'API (Application Program Interface) da cui i nodi client possono interrogare questi dati. I risultati restituiti vengono quindi utilizzati dai nodi client per configurare le macchine pertinenti e trasformarle nello stato desiderato.

Il server gestisce tutte le operazioni in cui devono essere archiviate le modifiche

I server gestiti dallo chef vengono valutati di volta in volta rispetto a uno stato desiderato assicurando che eventuali modifiche alle configurazioni vengono automaticamente corrette e applicate universalmente. Con questo approccio, esiste una configurazione coerente su larga scala.

Iniziare con Chef

Puoi scaricare la postazione chef da questo sito e installarla. Crea una cartella denominata ricettari e all'interno di questa cartella esegui il comando:

$ chef generate cookbook first_cookbook

Questo genererà una directory denominata first_cookbook con alcune sottocartelle e file.

Vai a ricettari/first_cookbook/recipes/ e aggiorna la ricetta default.rb con i contenuti

file "test.txt" do

  content 'This is my first recipe file'

end

Quindi eseguiamo questo file usando il comando

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

OPPURE, all'interno della cartella della ricetta, puoi eseguire il file con il comando

$ chef-apply default.rb

Se navighi nella cartella delle tue ricette, vedrai sicuramente il file test.txt con il contenuto Questo è il mio primo file di ricetta. È così facile. Nella prossima sezione creeremo ricette per svolgere alcune attività specifiche relative a MongoDB

Installazione e configurazione di MongoDB con Chef

Puoi installare MongoDB creando una ricetta di installazione MongoDBInstall.rb e popolandola con i contenuti

package "mongodb" do

 action :install

 version '4.0.3'

end

In questo caso il nome del nostro pacchetto è mongodb e installeremo la versione 4.0.3

Quella che abbiamo è una ricetta di base, ma in molti casi avremo bisogno di un ricettario avanzato per eseguire la nostra configurazione in MongoDB. Per facilitare il compito, sono stati sviluppati libri di cucina come SC-MongoDB che generalmente rendono la configurazione precisa.

Ricettario SC-MongoDB

Il ricettario fornisce  mongodb_instance che migliora la configurazione di parametri MongoDB, set di repliche e un cluster partizionato.

Per installare il ricettario basta eseguire il comando

$ knife supermarket download sc-mongodb

È quindi possibile utilizzare gli attributi definiti in questo sito per riconfigurare alcuni degli attributi MongoDB predefiniti.