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

Автоматизиране на MongoDB със SaltStack

Разгръщането на база данни за множество сървъри става по-сложно и отнема много време с времето при добавяне на нови ресурси или извършване на промени. Освен това има вероятност от човешки грешки, които могат да доведат до катастрофални резултати всеки път, когато системата се конфигурира ръчно.

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

MongoDB може да се разположи ръчно, но задачата става все по-тромава, когато трябва да конфигурирате клъстер от много членове, хоствани на различни сървъри. Следователно трябва да решим да използваме автомобилен инструмент, който може да ни спести стреса. Някои от наличните инструменти, които могат да се използват, включват Puppet, Chef, Ansible и SaltStack.

Основните предимства от внедряването на вашия MongoDB с някой от тези инструменти са:

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

Какво е SaltStack

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

Функциите за отдалечено изпълнение се използват за изпълнение на команди на различни машини паралелно с гъвкава система за насочване. Ако например имате 3 сървърни машини и искате да инсталирате MongoDB за всяка, можете да стартирате инсталационните команди на тези машини едновременно от главен възел.

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

Архитектура на SaltStack

Основният модел на настройка за SaltStack е клиент-сървър, където сървърът може да бъде наричан главен, а клиентите като подчинени. Капитанът издава команда или по-скоро инструкции като управляваща система, която трябва да се изпълни от клиентите/миньоните, които са контролираните системи.

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

По-долу е направен SaltStack

  1. Господар :Отговаря за издаването на инструкции на подчинените и промяната им в желаното състояние след изпълнение.
  2. Миньон :Това е управляваната система, която трябва да бъде трансформирана в някакво желано състояние.
  3. Зърна сол :  това са статични данни или метаданни относно миньона и представляват информация като модел, сериен номер, капацитет на паметта и операционна система. Те се събират, когато миньонът за първи път се свърже със сървъра. Те могат да се използват за насочване към определена група миньони във връзка с някакъв аспект. Например, можете да изпълните команда, която да инсталира MongoDB за всички машини с операционна система Windows.
  4. Емодули/инструкции за изпълнение :Това са Ad hoc команди, издадени на един или повече целеви миньони и се изпълняват от командния ред.
  5. Стълбове :са дефинирани от потребителя променливи, разпределени между миньоните. Те се използват за:конфигурация на миньон, силно чувствителни данни, произволни данни и променливи. Не всички миньони са достъпни за всички стълбове, може да се ограничи кои стълбове са за определена група миньони.
  6. Файлове на състоянието . Това е ядрото на Salt state System (SLS) и представлява състоянието, в което трябва да бъде системата. Това е еквивалент на книга за игри в случай на Ansible, като се има предвид, че те също са във формат YAML, т.е.
#/srv/salt/mongodbInstall.sls (file root)

install_mongodb: (task id)

pkg.installed: (state declaration)

-name:mongodb  (name of package to install)
  1. Голен файл :Използва се за картографиране на група машини и дефиниране кои файлове на състоянието трябва да бъдат приложени . т.е.

#/srv/salt/top.sls

  base:

   ‘minion1’:

     -mongodb
  1. Salt Proxy :  Това е функция, която позволява да се контролират устройства, които не могат да изпълняват стандартна сол-миньон. Те включват мрежови устройства с API, работещи на собствена ОС, устройства с ограничения на процесора и паметта или такива, които не могат да изпълняват миньони поради причини за сигурност. Трябва да се използва прокси сървър на Junos за откриване, контрол, отдалечено изпълнение и управление на състоянието на тези устройства.

Инсталиране на SaltStack

Можем да използваме командата pip, за да инсталираме SaltStack като 

$ pip install salt

За да потвърдите инсталацията, изпълнете командата $ salt --version и трябва да получите нещо като сол 2019.2.2 (Флуор)

Преди да се свърже с главната, миньонът ще изисква минимална конфигурация на главния IP адрес и идентификатор на миньона, които ще бъдат използвани от главната за справка. Тези конфигурации могат да се направят във файловете /etc/salt/minion.

След това можем да стартираме главния в различни режими, който е демон или в режим на отстраняване на грешки. За случая на демон ще имате $salt-master -d, а за режим на отстраняване на грешки,  $salt-master -l debug. Ще трябва да приемете ключа на миньона, преди да го стартирате, като изпълните $ salt-key -a nameOfMinion. За да изброите наличните ключове, изпълнете $ salt-key -l

В случая с миньона можем да го започнем с $salt-minion -l debug.

Например, ако искаме да създадем файл във всички миньони от капитана, можем да изпълним командата 

$ salt ‘’*” file.touch ‘/tmp/salt_files/sample.text

Всички възли ще имат нов файл sample.text в папката salt_files. Опцията * се използва за позоваване на всички миньони. За да посочим например всички миньони с идентификационен номер, които имат низа миньон, ще използваме регулярен израз, както е показано по-долу 

$ salt “minion*” file.touch ‘/tmp/salt_files/sample.text

За да видите метаданните, събрани за дадено миньонче, изпълнете:

$salt ‘minion1’ grains.items.

Настройване на MongoDB със SaltStack

Можем да създадем база данни, наречена myAppdata с setDatabase.sls със съдържанието по-долу 

classes:

- service.mongodb.server.cluster

parameters:

   _param:

     mongodb_server_replica_set: myAppdata

     mongodb_myAppdata_password: myAppdataPasword

     mongodb_admin_password: cloudlab

     mongodb_shared_key: xxx

   mongodb:

     server:

       database:

         myAppdata:

           enabled: true

           password: ${_param:mongodb_myAppdata_password}

           users:

           -  name: myAppdata

              password: ${_param:mongodb_myAppdata_password}

Стартиране на един единствен сървър MongoDB 

mongodb:

  server:

    enabled: true

    bind:

      address: 0.0.0.0

      port: 27017

    admin:

      username: admin

      password: myAppdataPasword

    database:

      myAppdata:

        enabled: true

        encoding: 'utf8'

        users:

        - name: 'username'

          password: 'password'

Настройване на MongoDB клъстер със SaltStack

mongodb:

  server:

    enabled: true

    logging:

      verbose: false

      logLevel: 1

      oplogLevel: 0

    admin:

      user: admin

      password: myAppdataPasword

    master: mongo01

    members:

      - host: 192.168.100.11

        priority: 2

      - host: 192.168.101.12

      - host: 192.168.48.13

    replica_set: default

    shared_key: myAppdataPasword

Заключение

Подобно на ClusterControl, SaltStack е инструмент за автоматизация, който може да се използва за улесняване на задачите за внедряване и операции. С инструмент за автоматизация има намалени грешки, намалено време за конфигуриране и по-надеждни резултати.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да изчислим разликата в времевата марка в mongodb (в часове)?

  2. Python и MongoDB:Свързване с NoSQL бази данни

  3. Първи стъпки с MongoDB и Mongoose

  4. запишете IP адрес в mongoDB

  5. Подмножество на масиви в конвейера на рамката за агрегиране