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

Chrome não abre no Windows — 7 soluções rápidas
Tecnologia

Chrome não abre no Windows — 7 soluções rápidas

Ícone de Configurações ausente no menu Iniciar — correções
Windows

Ícone de Configurações ausente no menu Iniciar — correções

Barras de rolagem largas no Windows 10 e 11
Windows

Barras de rolagem largas no Windows 10 e 11

Atualizações automáticas de segurança Ubuntu 16.04
Linux

Atualizações automáticas de segurança Ubuntu 16.04

Restringir permissões de apps Android
Segurança Android

Restringir permissões de apps Android

Instalar Chef Server no Ubuntu 17.04
DevOps

Instalar Chef Server no Ubuntu 17.04