Pesquisa de site

O que é gerenciamento de automação e configuração com CHEF – Parte 1


Vamos pegar um cenário simples, você tem 10 servidores redhat onde você tem que criar um usuário ‘tecmint’ em todos os servidores. A abordagem direta é que você precisa fazer login em cada servidor e criar o usuário com o comando useradd. Quando os servidores são 100 ou 1000, praticamente não é possível fazer login em todos os servidores, um por um.

Aqui, a primeira coisa que nos vem à mente nesses casos é escrever um script e deixar que o script execute a execução nos servidores, é uma abordagem comprovada. Os scripts têm suas próprias desvantagens, embora sejam amplamente utilizados nas organizações e são difíceis de manter se o proprietário do script deixar a organização.

O script não funcionará em um ambiente heterogêneo. O script é um método imperativo para realizar a tarefa, onde você precisa escrever um código longo para uma tarefa simples etc., esta situação exige que procuremos ferramentas de Automação e Gerenciamento de Configuração como um Chefe.

Nesta série de artigos sobre Chef, veremos os procedimentos de instalação e configuração da ferramenta Chef Automation nas partes 1-3 e abordaremos os seguintes tópicos.

Este tutorial fornece um ponto de partida sobre como o Chef funciona, automação, gerenciamento de configuração, arquitetura e componentes do Chef.

1. Gerenciamento de configuração

Gerenciamento de configuração é o principal ponto de foco da prática de DevOps. No ciclo de desenvolvimento de software, todos os servidores devem ser configurados e bem mantidos por software, de forma que não interrompam o ciclo de desenvolvimento. Configuração incorreta O gerenciamento pode causar interrupções no sistema, vazamentos e violações de dados. O uso de ferramentas de gerenciamento de configuração visa facilitar a precisão, a eficiência e a velocidade no ambiente orientado a DevOps.

Existem dois modelos de ferramentas de gerenciamento de configuração – baseadas em PUSH e baseadas em PULL. No baseado em PUSH, o servidor Master envia o código de configuração para os servidores onde os servidores individuais baseados em PULL entram em contato com o Master para obter o código de configuração. PUPPET e CHEF são modelos baseados em PULL amplamente usados, ANSIBLE é um modelo popular baseado em PUSH. Neste artigo veremos sobre CHEF.

2. O que é um Chef?

A chef é um programa de automação de código aberto que permite aos administradores de sistema automatizar a implantação, as configurações, o gerenciamento e as tarefas contínuas em vários servidores e outros dispositivos de uma organização de uma maneira simples e fácil.

  • Foi estabelecido em 2008 como OPSCODE mais tarde foi renomeado para CHEF (ferramenta de Chef Automation).
  • É uma ferramenta de automação baseada em Ruby utilizada para gerenciar a configuração, automatizar e orquestrar toda a infraestrutura de uma organização.
  • É um projeto Opensource e vem com dois modelos de implantação: Server Client e Standalone.
  • Chef suporta vários sistemas operacionais como Ubuntu, Redhat/CentOS, Fedora, macOS, Windows, AIX, etc.
  • O chef é declarativo e muito mais simples do que as linguagens de script nativas.
  • Ele fornece implantação contínua para permitir que uma empresa se mantenha atualizada com as exigências do mercado.
  • A principal responsabilidade do Chef é manter o estado definido de Configuração.
  • Ele tem sua própria linguagem declarativa para gerenciar dezenas e milhares de nós com facilidade.
  • O chef é adaptável à nuvem, integra-se facilmente com Infraestrutura na Nuvem.
  • O chef é fácil de aprender e é uma ferramenta forte e amigável para DevOps, apoiada pela comunidade.

3. Arquitetura do Chef

A arquitetura do Chef é dividida em 3 seções principais.

  • Chef WorkStation: plataforma de desenvolvimento local para usuários do Chef criarem, testarem e aplicarem configurações. Pode ser seu desktop local, laptop com Chef DK (Kit de Desenvolvimento) instalado. Ele pode ser usado como um ambiente de desenvolvimento/teste antes de ser promovido para produção.
  • Chef Server: É um servidor com software chef-server instalado e configurado. É responsável por gerenciar o código do Chef e acessar o código de configuração do Chef Workstation. O servidor chef deve ser uma máquina Linux, não suporta nenhum outro sistema operacional.
  • Clientes Chef: São os servidores que entram em contato com o servidor Chef para obter detalhes de configuração, como código do chef e outros arquivos dependentes em binários. Ele extrai o código do servidor Chef e os implanta localmente.

4. Componentes do Chef

A seguir estão os principais componentes do Chef.

  • Recursos são o módulo básico da Receita utilizado para gerenciar a Infraestrutura.
  • O atributo são as configurações na forma de par chave-valor.
  • Receitas são a coleção de atributos que podem ser feitos na Estação de Trabalho. É um conjunto de comandos que podem ser aplicados aos Chef Clients como Chef Code.
  • A coleção de receitas é chamada de Livro de receitas.
  • Uma faca é uma ferramenta de linha de comando no Chef Workstation que interage com o Chef Server.

5. Modelo de implantação do Chef

Existem dois modelos de implantação para o Chef.

  • Servidor Cliente – É usado para implantação de produção.
  • Chef Zero – É usado para desenvolvimento, testes e POCs.

6. Como funciona o Chef? Infraestrutura como código

Infraestrutura como código é o gerenciamento de infraestrutura de TI onde nos permite realizar automaticamente diversas instalações/implantações e gerenciamento de configuração. Aqui, todas as configurações e instalações são escritas como código.

  • O cliente/nó Chef fará o registro e autenticação com o servidor Chef.
  • O cliente/nó do Chef examinará periodicamente o Chef Server. O processo de autenticação é feito sempre que o chef-cliente deseja acessar os dados armazenados no chef-servidor.
  • Ohai é uma ferramenta que será executada por um cliente Chef para determinar o estado do sistema, detectará os atributos (SO, memória, disco, CPU, kernel, etc.) do nó e fornecerá esses atributos ao chef-cliente. Ohai faz parte da instalação do Chef Client.
  • Caso haja alguma alteração no Cookbook ou nas configurações, o mesmo será enviado ao Chef-Client e será atualizado/instalado.
  • Os livros de receitas e configurações serão atualizados no servidor Chef usando o Chef Workstation por meio da ferramenta de linha de comando Knife. A estação de trabalho envia todas as políticas para o servidor Chef usando Knife.
  • Como cada cliente/nó terá uma verificação periódica com o servidor Chef, as configurações serão aplicadas individualmente de acordo com a função do servidor. Por exemplo: Nos Chef Nodes, alguns nós serão servidores de banco de dados, alguns nós serão servidores gateway, etc.
Conclusão

Neste artigo, vimos conceitos básicos de gerenciamento de configuração e ferramenta de automação Chef. Veremos o processo passo a passo de instalação do Chef nos próximos artigos.