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.