MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Automação de implantação de banco de dados MongoDB

As organizações estão usando a infraestrutura na nuvem porque ela oferece velocidade, flexibilidade e escalabilidade. Você pode imaginar se pudermos criar uma nova instância de banco de dados com apenas um clique e levar alguns minutos até que esteja pronto, também podemos implantar o aplicativo mais rapidamente do que quando comparado ao ambiente local.

A menos que você esteja usando o próprio serviço de nuvem do MongoDB, os principais provedores de nuvem não oferecem um serviço MongoDB gerenciado, portanto, não é realmente uma operação de um clique para implantar uma única instância ou cluster. A maneira comum é ativar VMs e implantá-las nelas. A implantação precisa ser cuidada de A a Z - precisamos preparar a instância, instalar o software de banco de dados, ajustar algumas configurações e proteger a instância. Essas tarefas são essenciais, embora nem sempre sejam devidamente cumpridas - com consequências potencialmente desastrosas.

A automação desempenha um papel importante para garantir que todas as tarefas, desde a instalação, configuração, proteção e até que o serviço de banco de dados esteja pronto. Neste blog, discutiremos a automação de implantação para o MongoDB.

Orquestrador de software

Há muitas ferramentas de software novas para ajudar os engenheiros a implantar e gerenciar sua infraestrutura. O gerenciamento de configuração ajuda os engenheiros a implantar de forma mais rápida e eficaz, reduzindo o tempo de implantação de novos serviços. As opções populares incluem Ansible, Saltstack, Chef e Puppet. Todos os produtos têm vantagens e desvantagens, mas todos funcionam muito bem e são muito populares. A implantação de um serviço com estado, como um MongoDB ReplicaSet ou um cluster fragmentado, pode ser um pouco mais desafiador, pois são configurações de vários servidores e as ferramentas têm suporte insuficiente para coordenação incremental e entre nós. Os procedimentos de implantação geralmente exigem orquestração entre nós, com tarefas executadas em uma ordem específica.

Tarefas de implantação do MongoDB para automatizar

A implantação de um servidor MongoDB envolve várias coisas; adicione o repositório MongoDB no local, instale o pacote MongoDB, configure a porta, o nome de usuário e inicie o serviço.

Tarefa:instalar o MongoDB

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


Tarefa:copie o mongod.conf do arquivo de configuração.

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

Tarefa:criar configuração de limite do 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

Tarefa:configurar o swappiness

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

Tarefa:configurar TCP Keepalive time

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

Tarefa:certifique-se de que o MongoDB será iniciado automaticamente

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

Podemos combinar todas essas tarefas em um único manual e executá-lo para automatizar a implantação. Se executarmos um playbook Ansible no console:

$ ansible-playbook -b mongoInstall.yml

Veremos o progresso da implantação do nosso script Ansible, a saída deve ser algo como abaixo:

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

Após a implantação, podemos verificar o serviço MongoDB no servidor de destino.

Automação de implantação do MongoDB usando a GUI do ClusterControl

Existem duas maneiras de implantar o MongoDB usando o ClusterControl. Podemos usá-lo a partir do painel do ClusterControl, é baseado em GUI e precisa apenas de 2 diálogos até acionar um novo trabalho para nova implantação do MongoDB.

Primeiro precisamos preencher o usuário SSH e senha, preencher o Nome do Cluster conforme mostrado abaixo:

E então, escolha o fornecedor e a versão do MongoDB, defina o usuário e senha, e a última é preencher o endereço IP de destino

Automação de implantação do MongoDB usando s9s CLI

A partir da interface de linha de comando, pode-se usar as ferramentas s9s. A implantação do MongoDB usando s9s é apenas um comando de uma linha como abaixo:

$ 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.


A implantação do MongoDB, seja um ReplicaSet ou um cluster fragmentado, é muito fácil e totalmente automatizada pelo ClusterControl.