Guía de tecnologías

Instalar Chef Server en Ubuntu 17.04 (Zesty Zapus)

7 min read DevOps Actualizado 08 Oct 2025
Instalar Chef Server en Ubuntu 17.04
Instalar Chef Server en Ubuntu 17.04

Introducción

Chef es una herramienta libre y de código abierto para la gestión de configuración. Está escrita en Ruby y Erlang y se integra con plataformas en la nube como AWS, OpenStack o Rackspace para crear y gestionar servidores automáticamente. Cuando una organización crece y aumenta el número de nodos, resulta impracticable que un administrador gestione cada equipo de forma manual; Chef permite centralizar esa gestión desde un servidor Chef.

En este tutorial instalaremos Chef Server en Ubuntu 17.04 (Zesty Zapus) y cubriremos las tareas adicionales necesarias para que el servidor quede listo para gestionar nodos y usuarios.

Importante: este documento asume que vas a instalar Chef Server autohospedado (on-premise) en Ubuntu 17.04. Si prefieres un servicio gestionado, considera Hosted Chef u otras soluciones de configuración como Ansible Tower.

Prerrequisitos

  • Una instalación mínima de Ubuntu 17.04 (Zesty Zapus).
  • Privilegios de root. Este guía está escrita como usuario root; si usas sudo, ejecuta sudo -i para trabajar como root.
  • Un nombre de dominio apuntando al servidor (FQDN). Chef recomienda un nombre de host resoluble.
  • Conexión a Internet para descargar paquetes.

Nota: reemplaza ejemplos de IP y nombres por valores reales de tu entorno.

Resumen de objetivos técnicos

  • Actualizar el sistema base y paquetes.
  • Establecer un FQDN resoluble y configurarlo en /etc/hostname y /etc/hosts.
  • Sincronizar el reloj con NTP (requisito para Chef).
  • Descargar e instalar el paquete .deb de Chef Server.
  • Ejecutar chef-server-ctl reconfigure y verificar servicios.
  • Instalar y configurar la interfaz web (Chef Manage) y complementos (Reporting, Push Jobs).
  • Crear usuario administrador y organización, exportar claves RSA.

Actualizar sistema base

Antes de instalar paquetes, actualiza repositorios y paquetes:

apt update && apt -y upgrade

Es buena práctica hacerlo tras iniciar la máquina y antes de cambios importantes.

Actualizar nombre del host

Chef exige un nombre de host resoluble (FQDN). Por ejemplo: chef.tudominio.com.

Para establecer el nombre temporalmente:

hostname 'chef.tudominio.com'

Y para hacerlo persistente:

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

Añade la entrada en /etc/hosts para que el FQDN resuelva localmente:

echo "192.0.2.10 chef.tudominio.com chef" >> /etc/hosts

Sustituye 192.0.2.10 por la IP pública/privada correspondiente y chef.tudominio.com por tu dominio.

Configurar NTP (sincronización horaria)

Chef es sensible a cambios de reloj; la sincronización NTP es obligatoria. NTP usa UDP/123.

Instala NTP:

apt install ntp

Inicia y habilita el servicio:

systemctl start ntp
systemctl enable ntp

Verifica la sincronización:

ntpq -p

Salida esperada (ejemplo):

root@chef:~# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
*chobi.paina.net 131.113.192.40   2 u   26   64   17    1.280   -1.852   1.046

Si ntpq no muestra servidores o el estado no contiene un asterisco (*), espera unos minutos o revisa reglas de firewall que bloqueen UDP/123.

Descargar e instalar Chef Server

Descarga el paquete .deb adecuado. En el momento original del tutorial se usó la versión 12.15.8 para Ubuntu 16.04 en arquitectura amd64; comprueba la página de descargas de Chef para obtener la versión recomendada para tu entorno.

Ejemplo de descarga (ajusta la URL a la versión correcta):

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

Instala el paquete:

dpkg -i chef-server-*.deb

Configurar Chef Server

Una vez instalado, aplica la configuración inicial (crea certificados, configura servicios y bases de datos):

chef-server-ctl reconfigure

Este proceso toma varios minutos. Al finalizar deberías ver un mensaje similar a:

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

Verifica el estado de los servicios:

chef-server-ctl status

Salida esperada (ejemplo):

root@chef:~# chef-server-ctl status
run: bookshelf: (pid 6030) 87s; run: log: (pid 6047) 86s
run: nginx: (pid 5859) 91s; run: log: (pid 6387) 82s
run: postgresql: (pid 5718) 93s; run: log: (pid 5745) 92s
run: rabbitmq: (pid 5239) 101s; run: log: (pid 5099) 105s

Si algún servicio no está en estado “run”, revisa los logs en /var/log/chef-server/ y ejecuta chef-server-ctl tail para ver salidas en tiempo real.

Instalar consola web de gestión (Chef Manage)

Chef Manage ofrece una interfaz gráfica para administrar data bags, atributos, run-lists, roles, entornos y cookbooks.

Instala el módulo:

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

Si prefieres aceptar la licencia automáticamente:

chef-manage-ctl reconfigure --accept-license

Crear administrador y organización

Crea un directorio para almacenar las claves RSA que se generarán:

mkdir -p ~/.chef

Crea un usuario administrador:

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

Sustituye admin, nombres, correo y StrongPassword por tus valores. El archivo ~/.chef/admin.pem contendrá la clave privada RSA del usuario.

Crea una organización y asócialo al usuario administrador:

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

Sustituye my_org por el nombre corto de la organización y “My Organization” por el nombre completo.

Acceder a la consola web

Abre en tu navegador:

http://Your-Server-IP

O usa tu FQDN: http://chef.tudominio.com

Deberías ver la pantalla de inicio de sesión. Usa el usuario y contraseña creados anteriormente.

Pantalla de inicio de sesión de Chef

Imagen: pantalla de inicio de sesión de Chef mostrando campos de usuario y contraseña.

Después de iniciar sesión verás el panel de Chef Manage:

Panel de CHEF

Imagen: panel principal de Chef Manage con menú lateral y vista de nodos.

Instalar complementos opcionales (Reporting, Push Jobs)

Reporting (informes):

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

Push Jobs (ejecución remota de tareas):

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

Tras instalar cada complemento, revisa los logs y ejecuta las pruebas que provean para confirmar que están operativos.

Solución de problemas común

  • Problema: chef-server-ctl reconfigure falla por falta de memoria. Solución: aumenta swap o memoria y vuelve a ejecutar.
  • Problema: NTP no sincroniza. Solución: revisa firewall (UDP/123) y configura servidores NTP en /etc/ntp.conf.
  • Problema: certificado o FQDN no coincide. Solución: asegura que el FQDN usado para instalar coincide con el nombre en /etc/hosts y el certificado.
  • Problema: permisos de archivos .pem. Solución: limita permisos: chmod 600 ~/.chef/*.pem

Importante: consulta /var/log/chef-server/ y /var/log/opscode/ para mensajes detallados.

Buenas prácticas de seguridad

  • Protege las claves privadas (.pem) con permisos restrictivos (chmod 600) y almacénalas en un lugar seguro.
  • Habilita HTTPS en nginx y usa certificados válidos (Let’s Encrypt o CA interna).
  • Restringe el acceso a puertos administrativos mediante firewall y VPN.
  • Aplica actualizaciones de seguridad periódicamente.
  • Realiza copias de seguridad de las bases de datos y de /var/opt/opscode/ regularmente.

Lista de verificación (Check-list) rápida

  • Sistema actualizado (apt update && apt -y upgrade).
  • FQDN configurado y resolvible.
  • NTP funcionando y sincronizado.
  • Chef Server paquete instalado.
  • chef-server-ctl reconfigure completado sin errores.
  • Usuario admin y organización creados; claves en ~/.chef/.
  • Chef Manage instalado y accesible.
  • Complementos necesarios instalados y probados.
  • HTTPS configurado y copias de seguridad programadas.

Mini playbook de operación diaria

  1. Verificar estado de servicios:
chef-server-ctl status
  1. Revisar colas y mensajes de errors:
chef-server-ctl tail
  1. Comprobar espacio en disco y base de datos:
df -h
sudo -u postgres psql -c "SELECT datname, pg_database_size(datname) FROM pg_database;"
  1. Ejecutar pruebas de reporting (si instalado):
opscode-reporting-ctl test

Decisión rápida — ¿Chef Server local o Hosted?

flowchart TD
  A[¿Necesitas control total del servidor?] -->|Sí| B[Chef Server autohospedado]
  A -->|No| C[Considera Chef Hosted u otra solución gestionada]
  B --> D[Preparar infraestructura: DNS, NTP, seguridad]
  C --> E[Evaluar coste operativo vs. control]

Alternativas y cuándo no usar Chef

  • Ansible: bueno para inventarios más simples y operaciones ad-hoc sin agentes.
  • Puppet: parecido a Chef, con modelo declarativo; elegir según experiencia del equipo.
  • SaltStack: rápido para eventos en tiempo real y orquestación.

Cuando no usar Chef: proyectos pequeños con pocos nodos donde la sobrecarga de servidor y claves no compensa; en esos casos, Ansible (sin agentes) puede ser mejor.

Criterios de aceptación

  • Chef Server responde en su FQDN por HTTP/HTTPS.
  • chef-server-ctl status muestra todos los servicios en run.
  • Usuario admin puede iniciar sesión en Chef Manage.
  • Las claves .pem se generaron y se guardaron en ~/.chef/ con permisos 600.

Glosario (una línea cada término)

  • FQDN: Nombre de dominio completamente calificado (por ejemplo, chef.tudominio.com).
  • NTP: Protocolo de sincronización horaria (Network Time Protocol).
  • .pem: Archivo que contiene una clave privada RSA en formato PEM.
  • reconfigure: Comando que aplica y reconstruye la configuración interna de Chef Server.

Notas de compatibilidad y migración

  • El paquete usado en este tutorial era para Ubuntu 16.04/amd64; verifica en packages.chef.io la versión compatible con tu versión de Ubuntu.
  • Para migrar a una versión más reciente de Chef o a otra versión de Ubuntu, planifica pruebas en un entorno no productivo y sigue la guía oficial de migración de Chef.

Conclusión

Hemos cubierto la instalación y configuración inicial de Chef Server en Ubuntu 17.04, incluyendo NTP, FQDN, instalación de paquetes, configuración de la consola web y complementos opcionales. Después de completar los pasos y la lista de verificación, tu servidor Chef debería estar listo para gestionar nodos y automatizar la configuración en tu infraestructura.

Resumen: actualiza el sistema, asegura el FQDN y la hora (NTP), instala el paquete .deb, ejecuta chef-server-ctl reconfigure, crea administrador y organización, y protege las claves y el acceso administrativo.

Recursos adicionales: visita la documentación oficial de Chef para guías de migración, prácticas de seguridad y detalles de integración con nubes públicas.

Autor
Edición

Materiales similares

Retrasar elementos de inicio en Mac con DelayedLauncher
macOS

Retrasar elementos de inicio en Mac con DelayedLauncher

Crear y administrar cuenta de invitado en Mac
Tutorial

Crear y administrar cuenta de invitado en Mac

Descargar imágenes desde Google Docs
Guías

Descargar imágenes desde Google Docs

Chrome no se abre en Windows: soluciones rápidas
Soporte técnico

Chrome no se abre en Windows: soluciones rápidas

Recuperar el icono de Configuración en el menú Inicio
Windows

Recuperar el icono de Configuración en el menú Inicio

Ajustar barras de desplazamiento en Windows 10 y 11
Windows

Ajustar barras de desplazamiento en Windows 10 y 11