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

Автоматизиране на разполагане на база данни на MongoDB

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

Освен ако не използвате собствената облачна услуга на MongoDB, основните доставчици на облак не предлагат управлявана услуга MongoDB, така че всъщност не е операция с едно щракване за разгръщане на един екземпляр или клъстер. Често срещаният начин е да се развъртят виртуални машини и след това да се разположат на тях. За внедряването трябва да се погрижим от А до Я – трябва да подготвим инстанцията, да инсталираме софтуера на базата данни, да настроим някои конфигурации и да защитим инстанцията. Тези задачи са от съществено значение, въпреки че не винаги се изпълняват правилно – с потенциално катастрофални последици.

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

Софтуерен оркестратор

Има много нови софтуерни инструменти, които да помогнат на инженерите да внедрят и управляват своята инфраструктура. Управлението на конфигурацията помага на инженерите да внедряват по-бързо и ефективно, намалявайки времето за внедряване на нови услуги. Популярните опции включват Ansible, Saltstack, Chef и Puppet. Всеки продукт има предимства и недостатъци, но всички те работят много добре и са изключително популярни. Разгръщането на услуга с поддържане на състоянието като MongoDB ReplicaSet или Sharded Cluster може да бъде малко по-предизвикателно, тъй като това са настройки на няколко сървъра и инструментите имат лоша поддръжка за инкрементална и кръстосана координация на възли. Процедурите за внедряване обикновено изискват оркестрация между възли, като задачите се изпълняват в определен ред.

Задачи за внедряване на MongoDB за автоматизиране

Разгръщането на MongoDB сървър включва редица неща; добавете MongoDB хранилище в локално, инсталирайте пакета MongoDB, конфигурирайте порт, потребителско име и стартирайте услугата.

Задача:инсталирайте MongoDB

- name: install mongoDB
  apt: 
    name: mongodb
    state: present
    update_cache: yes

Задача:копирайте mongod.conf от конфигурационния файл.

- name: copy config file
  copy:
    src: mongodb.conf
    dest: /etc/mongodb.conf
    owner: root
    group: root
    mode: 0644
  notify:
    - restart mongodb

Задача:създаване на лимитна конфигурация на MongoDB:

- name: create /etc/security/limits.d/mongodb.conf
  copy:
    src: security-mongodb.conf
    dest: /etc/security/limits.d/mongodb.conf
    owner: root
    group: root
    mode: 0644
  notify:
    - restart mongodb

Задача:конфигуриране на размяната

- name: config vm.swappiness
  sysctl:
    name: vm.swappiness
    value: '10'
    state: present

Задача:конфигуриране на времето за поддържане на TCP

- name: config net.ipv4.tcp_keepalive_time
  sysctl:
    name: net.ipv4.tcp_keepalive_time
    value: '120'
    state: present

Задача:уверете се, че MongoDB ще стартира автоматично

- name: Ensure mongodb is running and and start automatically on reboots
  systemd:
    name: mongodb
    enabled: yes
    state: started

Можем да комбинираме всички тези задачи в една книга и да изпълним книгата, за да автоматизираме внедряването. Ако стартираме Ansible playbook от конзолата:

$ ansible-playbook -b mongoInstall.yml

Ще видим напредъка на внедряването от нашия Ansible скрипт, изходът трябва да бъде нещо като по-долу:

PLAY [ansible-mongo] **********************************************************

GATHERING FACTS ***************************************************************
ok: [10.10.10.11]

TASK: [install mongoDB] *******************************************************
ok: [10.10.10.11]

TASK: [copy config file] ******************************************************
ok: [10.10.10.11]

TASK: [create /etc/security/limits.d/mongodb.conf]*****************************
ok: [10.10.10.11]


TASK: [config vm.swappiness] **************************************************
ok: [10.10.10.11]

TASK: [config net.ipv4.tcp_keepalive_time]*************************************
ok: [10.10.10.11]

TASK: [config vm.swappiness] **********************************************
ok: [10.10.10.11]

PLAY RECAP ********************************************************************
[10.10.10.11]          : ok=6    changed=1    unreachable=0    failed=0

След внедряването можем да проверим услугата MongoDB на целевия сървър.

Автоматизиране на внедряването на MongoDB с помощта на ClusterControl GUI

Има два начина за внедряване на MongoDB с помощта на ClusterControl. Можем да го използваме от таблото на ClusterControl, той е базиран на GUI и се нуждае само от 2 диалога, докато не задейства нова работа за ново внедряване на MongoDB.

Първо трябва да попълним SSH потребител и парола, да попълним името на клъстера, както е показано по-долу:

И след това изберете доставчика и версията на MongoDB, дефинирайте потребителя и парола, а последното е попълване на целевия IP адрес

Автоматизиране на внедряването на MongoDB с помощта на s9s CLI

От интерфейса на командния ред можете да използвате инструментите на s9s. Разгръщането на MongoDB с помощта на s9s е само команда от един ред, както е показано по-долу:

$ s9s cluster --create --cluster-type=mongodb --nodes="10.10.10.15"  --vendor=percona --provider-version=4.2 --db-admin-passwd="12qwaszx" --os-user=vagrant --cluster-name="MongoDB" --wait
Create Mongo Cluster
/ Job 183 FINISHED   [██████████] 100% Job finished.


Така че внедряването на MongoDB, независимо дали е ReplicaSet или Sharded Cluster, е много лесно и е напълно автоматизирано от ClusterControl.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Плъзгащи се средни с рамката за агрегиране на MongoDB?

  2. MongoDB $превключвател

  3. Mongo намира дубликати за записи за две или повече полета

  4. Правилен начин за импортиране на json файл в mongo

  5. Намерете документи, чието поле на масив съдържа поне n елемента от даден масив