Guia de tecnologias

Como instalar o Chef Server no Ubuntu 17.04 (Zesty Zapus)

7 min read DevOps Atualizado 08 Oct 2025
Instalar Chef Server no Ubuntu 17.04
Instalar Chef Server no Ubuntu 17.04

Visão geral

Chef é uma ferramenta livre e open source de gerenciamento de configuração. É escrita em Ruby e Erlang. O Chef integra-se facilmente com provedores de nuvem como AWS, OpenStack ou Rackspace para criar e gerenciar servidores automaticamente. Quando uma organização cresce e o número de nós aumenta, torna-se impraticável gerenciar cada nó manualmente. O ecossistema do Chef tem três componentes principais: Chef Server, estaçõess de trabalho (workstations) e Chef Nodes. Com o Chef, um administrador pode controlar múltiplos nós a partir de um único servidor central.

Definição rápida: Chef Server é o ponto central que armazena cookbooks, políticas, dados e certificados dos clientes (nodes). Workstation é onde você prepara cookbooks e interage com o servidor.

Intenção principal e variantes relacionadas

  • Instalar Chef Server no Ubuntu 17.04 (intenção principal)
  • Configurar chef-server no Ubuntu
  • chef-server-ctl reconfigure passo a passo
  • Ativar Chef Manage (console web)
  • Criar administrador e organização no Chef

Pré-requisitos

  • Instância mínima do Ubuntu 17.04 (Zesty Zapus).
  • Privilégios de root. Este guia usa comandos como root; se estiver com um usuário sudo, execute sudo -i antes.
  • Um nome de domínio apontando para o servidor (FQDN). Ex.: chef.seudominio.com
  • Conexão à internet para baixar pacotes e dependências.

Importante: garanta backups antes de alterações críticas em servidores em produção.

Atualizar o sistema base

Antes de instalar qualquer pacote, atualize repositórios e pacotes:

apt update && apt -y upgrade

Depois de atualizar, prossiga.

Atualizar hostname

O Chef requer um hostname resolvível. Use um FQDN (Fully Qualified Domain Name), por exemplo chef.seudominio.com. Para definir o hostname temporariamente:

hostname 'chef.seudominio.com'

Substitua chef.seudominio.com pelo seu domínio real. Atualize o arquivo /etc/hostname:

echo "chef.seudominio.com" | tee /etc/hostname

Adicione o IP público e o FQDN em /etc/hosts:

echo "192.168.1.1 chef.seudominio.com" >> /etc/hosts

Substitua 192.168.1.1 pelo IP público real do servidor.

Sincronização de tempo (NTP)

Chef é sensível a mudanças no relógio do sistema. Instale e ative NTP (porta 123/UDP):

apt install ntp
systemctl start ntp
systemctl enable ntp

Verifique o status e peers:

ntpq -p

Exemplo de saída (resumida) presente no sistema mostra peers e offsets; confirme que há pelo menos um peer com * indicando sincronização.

Baixar e instalar o Chef Server

Baixe o pacote .deb para Ubuntu (exemplo de versão):

wget https://packages.chef.io/files/stable/chef-server/12.15.8/ubuntu/16.04/chef-server-core_12.15.8-1_amd64.deb

Nota: Verifique a página oficial de downloads do Chef para obter o link mais recente, pois versões e caminhos podem mudar.

Instale o pacote:

dpkg -i chef-server-*.deb

O pacote instala os binários e os serviços do Chef Server, mas é necessário configurar.

Configurar o Chef Server (reconfigure)

Depois da instalação, execute:

chef-server-ctl reconfigure

Esse comando instala e configura todos os componentes necessários. Pode demorar alguns minutos. Ao final, você deverá ver uma mensagem do tipo:

Chef Client finished, 491/1096 resources updated in 03 minutes 13 seconds
Chef Server Reconfigured!

Verifique os serviços:

chef-server-ctl status

Saída esperada (exemplo):

run: bookshelf: (pid 6030) 87s; run: log: (pid 6047) 86s
run: nginx: (pid 5859) 91s; run: log: (pid 6387) 82s
run: oc_bifrost: (pid 5766) 92s; run: log: (pid 5842) 92s
...

Instalar o Console Web (Chef Manage)

O Chef Manage é a interface gráfica para administrar data bags, atributos, run-lists, roles, environments e cookbooks.

chef-server-ctl install chef-manage
chef-server-ctl reconfigure
chef-manage-ctl reconfigure

Se preferir aceitar a licença automaticamente:

chef-manage-ctl reconfigure --accept-license

Após configurar, o console estará disponível por HTTP/HTTPS no endereço do servidor (ou domínio).

Criar usuário administrador e organização

Crie um diretório para armazenar chaves privadas:

mkdir -p ~/.chef

Criar um usuário administrador (exemplo):

chef-server-ctl user-create admin Chef Administrator [email protected] StrongPassword -f ~/.chef/admin.pem

Substitua valores conforme necessário: admin (usuário), Chef (nome), Administrator (sobrenome), email e senha forte. O arquivo ~/.chef/admin.pem conterá a chave privada RSA.

Criar uma organização:

chef-server-ctl org-create my_org 'My Organization' --association_user admin -f ~/.chef/my_org.pem

Substitua my_org pelo nome curto da organização, ‘My Organization’ pelo nome completo e admin pelo usuário associado. O arquivo my_org.pem será usado por workstations e clients para autenticação.

Acessar o Console Web

Abra no navegador:

http://Seu-IP-ou-Domínio

Você verá a tela de login. Use o usuário e senha criados.

Tela de login do Chef com campos de usuário e senha

Após login, verá o painel de controle (dashboard) do Chef.

Painel do Chef mostrando menus de cookbooks, nodes e relatórios

Plugins opcionais: Reporting e Push Jobs

Relatórios (Reporting):

chef-server-ctl install opscode-reporting
chef-server-ctl reconfigure
opscode-reporting-ctl reconfigure
opscode-reporting-ctl test

Push Jobs (executar jobs remotos):

chef-server-ctl install opscode-push-jobs-server
chef-server-ctl reconfigure
opscode-push-jobs-server-ctl reconfigure

Esses módulos adicionam funcionalidades: geração de relatórios centralizados e capacidade de disparar jobs contra nodes fora do ciclo de chef-client.

Checklist por função

Administrador de Chef:

  • Ter FQDN resolvível e IP apontando para /etc/hosts.
  • Garantir NTP configurado e sincronizado.
  • Instalar pacotes chef-server e reconfigure.
  • Criar usuário administrador e organização.
  • Configurar backups periódicos do servidor e das chaves.

Workstation (DevOps/Engenheiro de infraestrutura):

  • Instalar ChefDK/Workstation localmente.
  • Armazenar chaves ~/.chef/ (admin.pem, my_org.pem) com permissões restritas.
  • Testar upload de cookbooks e policyfiles.

Node (cliente):

  • Instalar chef-client.
  • Configurar client.rb com FQDN do servidor e chef-validator ou PEM correspondente.
  • Executar chef-client e verificar registro no servidor.

Mini-metodologia de implantação (5 passos)

  1. Preparar host: hostname, /etc/hosts, firewall básico.
  2. Sincronizar tempo (NTP).
  3. Baixar e instalar o pacote chef-server-core.
  4. Executar chef-server-ctl reconfigure e validar serviços.
  5. Criar usuário e organização; configurar workstation e nodes.

Critérios de aceitação

  • O comando chef-server-ctl status mostra serviços em execução.
  • É possível acessar a interface web com o usuário administrador.
  • As chaves .pem foram geradas e estão acessíveis em ~/.chef/.
  • Nodes conseguem autenticar e registrar-se no servidor após configuração.

Solução de problemas comum

Problema: chef-server-ctl reconfigure falha ou trava.

Soluções:

  • Verifique logs em /var/log/chef-server/ e arquivos de log dos serviços mencionados.
  • Confirme DNS/resolução e /etc/hosts corretos.
  • Confirme que NTP está sincronizado (ntpq -p) e horário consistente.
  • Reinicie serviços isolados com chef-server-ctl restart .

Comando para reiniciar um serviço específico:

chef-server-ctl restart nginx

Verifique espaço em disco e permissões de arquivos. Se a reconfigure falhar devido a pacotes Ruby/Erlang, revise dependências e versões do sistema.

Rollback/Desinstalação rápida (nota):

  • Não existe um rollback automático completo; planeje backups dos diretórios /var/opt/chef-server, /etc/chef-server e das chaves antes de remover.
  • Para remover pacotes manualmente: dpkg -r e limpar diretórios, mas só em ambientes de teste.

Modelo de decisão (fluxograma)

flowchart TD
  A[Iniciar pré-checagem] --> B{Hostname e DNS OK?}
  B -- Sim --> C{NTP sincronizado?}
  B -- Não --> F[Corrigir hostname/DNS]
  C -- Sim --> D[Instalar pacote chef-server]
  C -- Não --> G[Configurar NTP e aguardar sync]
  D --> H[chef-server-ctl reconfigure]
  H --> I{Reconfigure OK?}
  I -- Sim --> J[Criar usuário e organização]
  I -- Não --> K[Revisar logs e resolver erros]

Segurança e boas práticas

  • Armazene as chaves .pem com permissões restritas (chmod 600).
  • Use senhas fortes para contas administrativas.
  • Habilite TLS/HTTPS no nginx por trás do Chef para tráfego seguro (letsencrypt/CA interna).
  • Faça backups regulares dos dados do servidor (cookbooks, data bags, PostgreSQL embutido).

Alternativas e quando não usar Chef

  • Se a infraestrutura for muito pequena (1–3 servidores), ferramentas mais simples como Ansible (sem agent) podem ser mais rápidas de adotar.
  • Em ambientes que exigem execução episódica sem servidor central, Ansible ou scripts podem ser preferíveis.
  • Chef é indicado quando você precisa de gestão centralizada, políticas e escala.

Resumo final

Seguindo este guia, você terá o Chef Server instalado e configurado no Ubuntu 17.04, com console web ativo, usuário/organização criados e plugins opcionais instaláveis. Garanta sincronização de tempo, hostname resolvível, e mantenha backups das chaves e dos dados.

Notas importantes:

  • Verifique sempre a página oficial do Chef para links de download atualizados.
  • Teste em ambiente de homologação antes de aplicar em produção.

Perguntas frequentes

Q: Posso usar este guia em outras versões do Ubuntu?

A: Os passos são similares, mas pacotes e links podem variar. Consulte a página de downloads do Chef para o pacote correspondente à sua versão.

Q: O que devo fazer se o chef-manage-ctl reconfigure falhar?

A: Revise logs em /var/log/chef-manage e /var/log/chef-server, verifique permissões de arquivos e aceite a licença com –accept-license se necessário.

Q: Onde encontro as chaves geradas?

A: No diretório informado durante a criação (ex.: ~/.chef/admin.pem e ~/.chef/my_org.pem). Proteja-as e faça backup.

Autor
Edição

Materiais semelhantes

Instalar e usar Podman no Debian 11
Containers

Instalar e usar Podman no Debian 11

Apt‑pinning no Debian: guia prático
Administração de sistemas

Apt‑pinning no Debian: guia prático

Injete FSR 4 com OptiScaler em qualquer jogo
Tecnologia

Injete FSR 4 com OptiScaler em qualquer jogo

DansGuardian e Squid com NTLM no Debian Etch
Infraestrutura

DansGuardian e Squid com NTLM no Debian Etch

Corrigir erro de instalação no Android
Android

Corrigir erro de instalação no Android

KNetAttach: Pastas de Rede remota no KDE
KDE

KNetAttach: Pastas de Rede remota no KDE