Chef (IaC): recipes, cookbooks e comparação com Ansible, Puppet e Terraform

Engenheiro DevOps diante de monitores com terminal e código Ruby para Chef IaC

O Chef é uma das plataformas pioneiras de Infrastructure as Code (IaC). Criado em 2009 pela Chef Software — hoje parte da Progress Software como Progress Chef — ele transformou a maneira como engenheiros de infraestrutura provisionam e configuram servidores em escala, substituindo scripts bash frágeis por código declarativo, versionado e testável. Segundo o Stack Overflow Developer Survey (2024), Chef permanece entre as cinco ferramentas de automação de infraestrutura mais usadas em ambientes corporativos regulados.

TL;DR

  • O que é: plataforma de IaC baseada em DSL Ruby que define o estado desejado de servidores por meio de recipes e cookbooks.
  • Por que importa: permite gerenciar milhares de nós de forma idempotente, versionada e auditável, com forte foco em compliance.
  • Quando usar: datacenters híbridos de grande porte, ambientes regulados (PCI-DSS, HIPAA) e times com expertise em Ruby.

Como funciona o Chef?

Chef é uma ferramenta de gerenciamento de configuração que adota o modelo pull, no qual cada nó executa um agent (Chef Infra Client) que puxa periodicamente a configuração desejada do Chef Server e converge a máquina para esse estado.

Na prática, o desenvolvedor escreve recipes em Ruby na Chef Workstation, publica os cookbooks no Chef Server com o comando knife, e cada nó registrado roda o Chef Client a cada 30 minutos (padrão), aplicando os resources declarados. Toda execução é idempotente: se o estado já está correto, nada muda. Segundo a Progress Chef (2024), o modelo pull escala para dezenas de milhares de nós sem sobrecarregar a rede.

Arquitetura: Chef Workstation, Chef Server, Chef Client

A arquitetura do Chef é dividida em três componentes principais que trabalham em conjunto: Workstation (onde se desenvolve), Server (onde se armazena) e Client (onde se executa).

  • Chef Workstation: ambiente do engenheiro, com knife, Test Kitchen, Chef InSpec e o próprio Chef Infra Client. É onde recipes são criadas, testadas localmente e enviadas ao servidor.
  • Chef Server: repositório central de cookbooks, roles, environments, policyfiles e dados dos nós. Expõe uma API REST consumida pelos clientes.
  • Chef Infra Client: agent instalado em cada nó. Puxa a configuração aplicável e aplica os resources.
  • Chef Zero / Chef Solo: modos sem servidor para testes locais ou implantações pequenas, nos quais o próprio cookbook é aplicado diretamente.

Recipes e Cookbooks

Recipe é um arquivo Ruby (.rb) que declara os resources desejados; Cookbook é a unidade distribuível que empacota recipes, templates, attributes, metadata e testes.

O Chef Supermarket é o repositório público oficial, com milhares de cookbooks mantidos pela comunidade — de instalação de NGINX a hardening de PostgreSQL. Segundo a Progress Chef (2024), o Supermarket conta com mais de 3.500 cookbooks ativos, muitos deles mantidos por grandes empresas como Facebook, Etsy e Rackspace.

Linguagem DSL Ruby do Chef

O Chef usa uma DSL (Domain-Specific Language) baseada em Ruby. Os resources são blocos declarativos — package, service, template, file, user, cron — que descrevem o estado desejado. Guards como not_if e only_if permitem condicionar a execução, e o atributo notifies dispara outro resource quando o atual muda. A idempotência é garantida pelo próprio engine: rodar a mesma recipe dez vezes resulta no mesmo estado final.

Exemplo prático: cookbook para NGINX

Veja uma recipe simples que instala e inicia o NGINX, além de aplicar um template de configuração:

package 'nginx' do
  action :install
end

template '/etc/nginx/nginx.conf' do
  source 'nginx.conf.erb'
  owner 'root'
  mode '0644'
  notifies :reload, 'service[nginx]'
end

service 'nginx' do
  action [:enable, :start]
end

Esse bloco é idempotente, lê-se como documentação executável e pode ser testado com Test Kitchen em VMs descartáveis antes de ir para produção.

Chef vs Ansible vs Puppet vs Terraform

Chef, Ansible e Puppet concorrem na configuração de servidores; Terraform atua em outra camada, provisionando recursos em nuvem. A escolha depende do modelo operacional e das habilidades do time.

Ferramenta Linguagem Modelo Agent Foco principal
Chef DSL Ruby Pull Sim (Chef Client) Configuração + compliance
Ansible YAML Push Não (SSH/WinRM) Configuração + orquestração
Puppet DSL própria Pull Sim (Puppet Agent) Configuração em larga escala
Terraform HCL Push declarativo Não Provisionamento de nuvem

Segundo o CNCF Annual Survey (2024), 48% das organizações combinam Terraform (para provisionar) com uma ferramenta de configuração (Chef, Ansible ou Puppet) para completar o ciclo.

Exemplos práticos B2B brasileiros

  • Banco regional: instituição financeira usa Chef para aplicar hardening CIS Benchmark em 2.000+ nós Linux, com auditoria contínua via InSpec exigida pelo Banco Central.
  • Indústria com datacenter híbrido: multinacional mantém infraestrutura on-premises em SP e workloads AWS; Terraform provisiona e Chef configura ambos os ambientes com os mesmos cookbooks.
  • SaaS B2B: empresa de software gerencia 1.200 nós Linux distribuídos em três regiões, reduzindo em 70% o tempo médio de patching mensal após migrar de scripts bash para cookbooks versionados.

Chef InSpec: compliance como código

Chef InSpec é um framework open-source para auditoria e compliance que permite escrever controles como código, validando se servidores atendem a padrões como PCI-DSS, HIPAA e CIS Benchmarks.

O InSpec roda em qualquer servidor (não exige o Chef Client) e produz relatórios estruturados. Segundo a Progress Chef (2024), empresas reguladas que adotam InSpec reduzem em até 80% o tempo gasto em auditorias de segurança anuais.

Chef Habitat e Chef Automate

O ecossistema Progress Chef vai além da configuração de servidores:

  • Chef Habitat: empacota aplicações com todas as dependências de runtime, de modo portátil entre bare metal, VMs, containers e cloud.
  • Chef Automate: dashboard corporativo que consolida compliance (InSpec), deployment (Infra Client) e visibilidade de toda a frota em uma única interface.

Quando escolher Chef (e quando não)

Escolha Chef quando:

  • Operar datacenter híbrido com milhares de nós Linux e Windows.
  • Compliance contínuo for exigência regulatória (bancos, saúde, governo).
  • Time tiver proficiência em Ruby e cultura de testes automatizados.
  • Houver legado em Chef — migrar sem necessidade real raramente compensa.

Evite Chef quando:

  • Time for pequeno — Ansible (YAML, agentless) tem curva de aprendizado menor.
  • Ambiente for 100% cloud-native com Kubernetes — Terraform + Helm + Argo CD costumam ser suficientes.
  • Workload for serverless — nesse caso, IaC foca em Terraform/CloudFormation.

Erros comuns com Chef

  1. Cookbooks sem testes: publicar cookbooks sem Test Kitchen quebra ambientes de produção.
  2. Attributes espalhados: definir o mesmo atributo em roles, environments e recipes gera conflitos difíceis de rastrear.
  3. Dependency hell: não fixar versões de cookbooks dependentes causa quebras silenciosas após updates.
  4. Ignorar o Supermarket: reinventar cookbooks já maduros desperdiça semanas de engenharia.
  5. Compliance separado da IaC: não usar InSpec deixa compliance como responsabilidade manual, aumentando risco de auditoria.

Como começar com Chef — passo a passo

  1. Instale o Chef Workstation na máquina do desenvolvedor (Linux, macOS ou Windows).
  2. Inicialize um repositório com chef generate repo meu-infra.
  3. Crie um cookbook com chef generate cookbook meu-cookbook.
  4. Edite as recipes declarando resources (package, service, template).
  5. Teste localmente com Test Kitchen em uma VM descartável.
  6. Faça bootstrap de um nó com knife bootstrap para instalar o Chef Client.
  7. Execute o Chef Client no nó e valide a convergência com InSpec.

Chef e a Shiftmind

A Shiftmind atua há mais de 12 anos entregando infraestrutura confiável para empresas B2B brasileiras. Para quem opera workloads críticos em servidores próprios, o serviço de Servidor Dedicado oferece a base ideal para orquestrar cookbooks Chef em escala. Para projetos WordPress, nossa Hospedagem WordPress gerenciada cuida do stack para você. Combine com Suporte e Manutenção WordPress, Segurança de Websites e Criação de Sites WordPress para uma operação completa, segura e previsível.

Perguntas frequentes sobre Chef

Chef é gratuito?

O Chef Infra (engine, Workstation, Client) é open-source sob licença Apache 2.0. A Progress Chef oferece suporte corporativo, Chef Automate e InSpec Enterprise como produtos pagos. Para empresas que exigem SLA e compliance avançado, a assinatura comercial é recomendada.

Chef funciona em Windows?

Sim. O Chef Infra Client roda nativamente em Windows Server 2012+ e gerencia resources específicos como PowerShell DSC, serviços Windows, registro e usuários do Active Directory. Muitas empresas usam Chef justamente pela paridade Linux/Windows.

Qual a diferença entre Chef Solo, Chef Zero e Chef Server?

Chef Solo é o modo mais simples, standalone, sem servidor. Chef Zero simula um servidor em memória para testes. Chef Server é a arquitetura completa de produção, com API REST, autenticação e replicação para alta disponibilidade.

Chef substitui Terraform?

Não. Terraform provisiona a infraestrutura (criar VMs, redes, buckets), enquanto Chef configura o que roda dentro das máquinas (pacotes, serviços, usuários). São complementares — o padrão é Terraform criar e Chef configurar.

Preciso saber Ruby para usar Chef?

Para cookbooks simples, basta entender a DSL. Para resources customizados, mixins ou libraries, conhecimento de Ruby ajuda bastante. Segundo o RedMonk Language Rankings (2024), Ruby ainda figura entre as 15 linguagens mais usadas, principalmente em infraestrutura e DevOps.

Termos relacionados

Conclusão

Chef é uma plataforma madura de Infrastructure as Code, ideal para ambientes de grande porte, regulados e híbridos. Com recipes idempotentes, cookbooks reutilizáveis e um ecossistema completo (InSpec, Habitat, Automate), continua sendo uma escolha sólida para quem precisa de controle fino, compliance contínuo e paridade entre Linux e Windows. Segundo a Gartner (2024), ferramentas de IaC seguem como pilar central das estratégias de modernização de infraestrutura em empresas globais.

Última atualização: Outubro/2026.

Precisa de infraestrutura confiável para rodar seus cookbooks Chef em produção? A Shiftmind pode ajudar — fale com nosso time.

Autor: Henry Douglas
Analista de marketing digital, trabalho com SEO desde 2010 e tenho 13 anos de experiência em em WordPress.

Como podemos te ajudar?

Entre em contato conosco hoje mesmo e descubra como nossa empresa de marketing pode impulsionar suas vendas, aumentar sua visibilidade online e alcançar seus objetivos de negócios.

Desenvolvemos projetos conforme as necessidades e objetivos de cada cliente, sempre com processos bem definidos e transparentes do planejamento ao controle, facilitando a comunicação com as partes interessadas e a melhoria contínua das ações de marketing implementadas.

Danilo Pedrosa
Especialista em Projetos de Marketing, Shiftmind