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

Noções básicas de automação de banco de dados MongoDB usando o Chef

Os ambientes gerenciados crescem ao longo do tempo, geralmente como resultado do aumento do envolvimento de dados ou talvez devido à necessidade de aumentar o desempenho por meio da carga de trabalho compartilhada. Por isso, é necessário adicionar membros. Por exemplo, com o MongoDB, pode-se decidir fazer replicação e fragmentação, o que, consequentemente, exigirá a adição de mais membros ao cluster. Configurar e implantar esses ambientes com tempo torna-se caótico, demorado, propenso a erros humanos e tantos contratempos associados que acabam por gerar despesas operacionais. Tomemos um exemplo de um conjunto de réplicas com 50 membros no MongoDB e você deseja fragmentar uma determinada coleção em cada um dos membros, fazer isso manualmente para cada um é demorado, portanto, precisamos de um sistema centralizado a partir do qual você possa configurar facilmente todos os membros . Com sistemas centralizados você escreve algum código que por sua vez configura os membros conectados. O código é, portanto, legível por humanos, versável e testável para remover possíveis erros antes da implantação.

O que é o software Chef?

Chef é um software de automação escrito na linguagem Ruby que é usado para agilizar a tarefa de configuração e manutenção de máquinas em nuvem ou servidores locais. Ele faz isso garantindo que todos os membros conectados obtenham os recursos necessários, os recursos estejam bem configurados e corrija quaisquer recursos que não estejam no estado desejado. Assim, o Chef basicamente garante que os arquivos e recursos de software esperados para uma determinada máquina estejam presentes, configurados corretamente e funcionando corretamente como pretendido.

Os componentes do Chef

Chef Server

Este é o sistema de controle central que abriga os dados de configuração. Os dados são escritos em uma "receita" e, se muitas dessas receitas estiverem envolvidas, elas formam um livro de receitas. O sistema central também contém metadados que descrevem cada um dos nós conforme descrito no chef-client.

Todas as alterações feitas nas receitas passam aqui para validação antes da implantação. O servidor também garante que a estação de trabalho e os nós conectados sejam emparelhados usando chaves de autorização antes de permitir a comunicação entre eles e aplicar as alterações.

Nó Cliente Chef

O nó cliente do Chef registra e valida os nós e cria os objetos do nó. Essencialmente, ele mantém o estado atual de um determinado nó e seus metadados.

Esta é a máquina física, virtual ou em nuvem a ser configurada e cada uma deve ter o nó cliente instalado.

Estação de trabalho

A estação de trabalho fornece uma interface para comunicação entre o servidor e os nós clientes. Ele fornece uma plataforma para escrever, testar e implantar  os livros de receitas. É aqui que os papéis também são definidos

Cozinha de Teste

É aqui que o código é validado.

Faca do Chef

Interage com os nós.

Livros de receitas

Contém receitas escritas em linguagem Ruby e são usadas para definir as tarefas a serem executadas. As receitas especificam recursos e ordem de implementação nas tarefas definidas.

  • os atributos são usados ​​para substituir as configurações padrão.
  • arquivos usados ​​para transferir arquivos de um caminho específico para o chef-client.
  • recurso de metadados define as informações do nó conforme descrito no nó do cliente.

Como o Chef funciona

Chef tem duas formas de operação, ou seja, cliente/servidor ou em modo autônomo conhecido como ‘chef-solo’.

O Chef-server recebe vários atributos referentes a um determinado nó do Chef-client. Esses atributos são então indexados usando o Elasticsearch pelo servidor que fornece uma Interface de Programação de Aplicativo (API) de onde os nós clientes podem consultar esses dados. Os resultados retornados são então usados ​​pelos nós clientes para configurar as máquinas relevantes e transformá-las no estado desejado.

O servidor concentra todas as operações nas quais as alterações devem ser armazenadas

Os servidores gerenciados pelo Chef são avaliados de tempos em tempos em relação a algum estado desejado, garantindo que quaisquer alterações nas configurações são corrigidas automaticamente e aplicadas universalmente. Com essa abordagem, há uma configuração consistente em escala.

Introdução ao Chef

Você pode baixar o chef-workstation deste site e instalá-lo. Crie uma pasta chamada cookbooks e dentro desta pasta execute o comando:

$ chef generate cookbook first_cookbook

Isto irá gerar um diretório chamado first_cookbook com algumas subpastas e arquivos.

Navegue até cookbooks/first_cookbook/recipes/ e atualize a receita default.rb com o conteúdo

file "test.txt" do

  content 'This is my first recipe file'

end

Em seguida, executamos este arquivo usando o comando

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

OU, dentro da pasta da receita, você pode executar o arquivo com o comando

$ chef-apply default.rb

Se você navegar até a pasta de receitas, com certeza verá o arquivo test.txt com o conteúdo Este é meu primeiro arquivo de receita. É tão fácil. Na próxima seção estaremos criando receitas para fazer algumas tarefas específicas em relação ao MongoDB

Instalando e configurando o MongoDB com o Chef

Você pode instalar o MongoDB criando uma receita de instalação MongoDBInstall.rb e preenchê-la com o conteúdo

package "mongodb" do

 action :install

 version '4.0.3'

end

Neste caso, nosso nome de pacote é mongodb e vamos instalar a versão 4.0.3

O que temos é uma receita básica, mas em muitos casos precisaremos de um livro de receitas avançado para fazer nossa configuração no MongoDB. Para facilitar a tarefa, existem livros de receitas desenvolvidos, como o SC-MongoDB, que geralmente tornam a configuração precisa.

Livro de receitas do SC-MongoDB

O livro de receitas fornece  mongodb_instance que aprimora um para configurar parâmetros do MongoDB, conjunto de réplicas e um cluster fragmentado.

Para instalar o livro de receitas basta executar o comando

$ knife supermarket download sc-mongodb

Você pode então usar os atributos definidos neste site para reconfigurar alguns dos atributos padrão do MongoDB.