MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Основи на автоматизацията на базата данни MongoDB с помощта на Chef

Управляваните среди нарастват с времето, често в резултат на увеличеното участие на данни или може би поради необходимостта от повишаване на производителността чрез споделено работно натоварване. Поради това има нужда от добавяне на членове. Например, с MongoDB човек може да реши да направи репликация и разделяне, което следователно ще изисква добавяне на още членове към клъстера. Конфигурирането и внедряването на тези среди с времето става забързано, отнема много време, податливо на човешки грешки и толкова много свързани неуспехи, които в крайна сметка водят до оперативни разходи. Вземете пример за набор от реплики с 50 члена в MongoDB и искате да разделите определена колекция във всеки от членовете, правенето на това ръчно за всеки отнема много време, затова се нуждаем от централизирана система, от която можете лесно да конфигурирате всички членове . С централизирана система вие пишете някакъв код, който на свой ред конфигурира свързаните членове. Следователно кодът е четим от човека, може да се версии и тестван, за да се премахнат възможни грешки преди внедряването.

Какво е софтуер Chef?

Chef е софтуер за автоматизация, написан на езика Ruby, който се използва за рационализиране на задачата по конфигуриране и поддръжка на облачни машини или на prem сървъри. Това прави, като гарантира, че всички свързани членове получават необходимите ресурси, ресурсите са добре конфигурирани и коригира всички ресурси, които не са в желаното състояние. Така че Chef основно гарантира, че файловете и софтуерните ресурси, които се очаква да бъдат в определена машина, присъстват, конфигурирани правилно и работят правилно, както е предвидено.

Компонентите на Chef

Chef Server

Това е централната система за управление, която съхранява конфигурационните данни. Данните са записани в „рецепта“  и ако много от тези рецепти са включени, те образуват готварска книга. Централната система също така съдържа метаданни, описващи всеки от възлите, както е описано в chef-client.

Всички промени, направени в рецептите, преминават тук за проверка преди внедряването. Сървърът също така гарантира, че работната станция и свързаните възли са сдвоени с помощта на ключове за оторизация, преди да разреши комуникацията между тях и да приложи промените.

Chef Client Node

Клиентският възел Chef регистрира и валидира възли и изгражда обектите на възела. Той по същество съхранява текущото състояние на даден възел и неговите метаданни.

Възел

Това е физическата, виртуалната или облачната машина, която трябва да бъде конфигурирана и всяка трябва да има инсталиран клиентски възел.

Работна станция

Работната станция предоставя интерфейс за комуникация между сървъра и клиентските възли. Той предоставя платформа за писане, тестване и внедряване на готварските книги. Тук се определят и ролите

Тестова кухня

Тук се потвърждава кодът.

Готварски нож

Взаимодейства с възлите.

Готварски книги

Съдържа рецепти, написани на език Ruby и се използват за дефиниране на задачите, които трябва да бъдат изпълнени. Рецептите определят ресурсите и реда на изпълнение на определените задачи.

  • атрибутите се използват за отмяна на настройките по подразбиране.
  • файлове, използвани за прехвърляне на файлове от определен път към chef-client.
  • Ресурсът за метаданни дефинира информацията за възела, както е описано в клиентския възел.

Как работи Chef

Chef има два начина на работа, тоест клиент/сървър или в самостоятелен режим, известен като „chef-solo“.

Chef-сървърът получава различни атрибути по отношение на определен възел от Chef-клиента. След това тези атрибути се индексират с помощта на Elasticsearch от сървъра, който след това предоставя интерфейс на приложната програма (API), откъдето клиентските възли могат да запитват тези данни. След това върнатите резултати се използват от клиентските възли, за да конфигурират съответните машини и да ги трансформират в желаното състояние.

Сървърът концентрира всички операции, където трябва да се съхраняват промени

Сървърите, управлявани от Chef, се оценяват от време на време спрямо някакво желано състояние, което гарантира, че всички промени в конфигурациите се коригират автоматично и се прилагат универсално. С този подход има последователна конфигурация в мащаб.

Първи стъпки с Chef

Можете да изтеглите chef-workstation от този сайт и да го инсталирате. Направете папка с име готварски книги и в тази папка изпълнете командата:

$ chef generate cookbook first_cookbook

Това ще генерира директория с име first_cookbook с някои подпапки и файлове.

Отворете готварски книги/first_cookbook/recipes/ и актуализирайте рецептата default.rb със съдържанието

file "test.txt" do

  content 'This is my first recipe file'

end

След това изпълняваме този файл с помощта на командата

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

ИЛИ, вътре в папката с рецепти, можете да стартирате  файла с командата

$ chef-apply default.rb

Ако отидете до папката си с рецепти, определено ще видите файла test.txt със съдържанието Това е първият ми файл с рецепта. толкова е лесно. В следващия раздел ще създадем рецепти за изпълнение на някои специфични задачи по отношение на MongoDB

Инсталиране и конфигуриране на MongoDB с Chef

Можете да инсталирате MongoDB, като създадете рецепта за инсталиране MongoDBInstall.rb и я попълните със съдържанието

package "mongodb" do

 action :install

 version '4.0.3'

end

В този случай името на нашия пакет е mongodb и ние ще инсталираме версия 4.0.3

Това, което имаме, е основна рецепта, но в много случаи ще ни е необходима разширена готварска книга, за да направим конфигурацията си в MongoDB. За да се улесни задачата, има разработени готварски книги като SC-MongoDB, които обикновено правят конфигурацията прецизна.

Готварска книга на SC-MongoDB

Готварската книга предоставя  mongodb_instance, който подобрява такъв за конфигуриране на параметри на MongoDB, набор от реплики и разчленен клъстер.

За да инсталирате готварската книга, просто изпълнете командата

$ knife supermarket download sc-mongodb

След това можете да използвате дефинираните атрибути в този сайт, за да преконфигурирате някои от атрибутите по подразбиране на MongoDB.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB -- Задаване на условен израз в .find()

  2. Архивиране и възстановяване на MongoDB

  3. mongo.so:> недефиниран символ:php_json_encode в Unknown на ред 0. След инсталиране mongo драйвер за php

  4. Как да изпълним собствена заявка на MongoDB (JSON) само с помощта на mongo-java-driver?

  5. Съвети за планиране на схема на MongoDB