Chef Server · 10 min read · Nov 09, 2025

Cómo instalar Chef Infra Server en Debian 12

Chef es un potente software de automatización en Debian Linux diseñado para gestionar y configurar entornos de servidor a gran escala. Facilita el despliegue, configuración y gestión de aplicaciones e infraestructura utilizando código, promoviendo los principios de infraestructura como código (IaC). Chef utiliza un lenguaje específico de dominio (DSL) escrito en Ruby para definir “recetas” y “libros de cocina” que especifican cómo deben configurarse los servidores. Esto permite a los administradores de sistemas y equipos de DevOps automatizar tareas repetitivas, garantizar la consistencia en los entornos y escalar fácilmente la infraestructura. Chef admite una amplia gama de recursos e integraciones, lo que lo convierte en una herramienta versátil para gestionar entornos complejos en Debian, Ubuntu Linux y otras plataformas.

En este tutorial, te mostraremos cómo instalar Chef Server y Chef Workstation en servidores Debian 12 paso a paso.

Requisitos previos

Para completar esta guía, asegúrate de tener lo siguiente:

  • 3 servidores Debian 12.
  • Un usuario no root con privilegios de administrador.

Configuración de FQDN

En este primer paso, configurarás el FQDN (Nombre de Dominio Completo) para el servidor Chef, la estación de trabajo Chef y el cliente.

Ejecuta el siguiente comando hostnamectl para configurar el fqdn para cada servidor.

sudo hostnamectl set-hostname chef.howtoforge.local  
sudo hostnamectl set-hostname workstation.howtoforge.local  
sudo hostnamectl set-hostname client.howtoforge.local

Abre el archivo /etc/hosts en cada servidor utilizando el siguiente comando del editor nano.

sudo nano /etc/hosts

Inserta la siguiente configuración y asegúrate de cambiar la dirección IP detallada, el nombre del host y el fqdn con tus configuraciones.

192.168.5.15     chef.howtoforge.local     chef  
192.168.5.20     workstation.howtoforge.local     workstation  
192.168.5.21     client.howtoforge.local     client

Guarda y cierra el archivo cuando termines.

Ahora ejecuta el siguiente comando para asegurarte de que cada fqdn apunte a la dirección IP correcta del servidor.

sudo hostname -f  
ping -c3 chef.howtoforge.local

configurar fqdn

Sincronizando el tiempo entre servidores

Después de configurar el FQDN, te asegurarás de que cada servidor tenga el tiempo sincronizado. En este caso, configurarás el servidor NTP en el Servidor Chef y configurarás la estación de trabajo Chef y el cliente para conectarse a él.

Configurando Chrony en el Servidor Chef

En el servidor Chef, ejecuta el siguiente comando para actualizar el índice del paquete del repositorio e instalar el paquete Chrony.

sudo apt update  
sudo apt install chrony -y

instalar chrony

Una vez que hayas instalado Chrony, abre el archivo /etc/chrony/chrony.conf utilizando el siguiente comando del editor nano.

sudo nano /etc/chrony/chrony.conf

Inserta la siguiente configuración para establecer el servidor NTP predeterminado. Asegúrate de elegir la ubicación más cercana a tu servidor, consulta ntp.org para más detalles.

Además, configurarás Chrony dentro del servidor Chef como un servidor NTP tanto para la estación de trabajo Chef como para los clientes.

pool 0.nl.pool.ntp.org iburst  
pool 1.nl.pool.ntp.org iburst  
pool 2.nl.pool.ntp.org iburst  
pool 3.nl.pool.ntp.org iburst  
  
allow 192.168.5.0/24

Guarda y cierra el archivo cuando termines.

A continuación, ejecuta el siguiente comando para establecer la zona horaria predeterminada y habilitar NTP.

sudo timedatectl set-timezone Europe/Amsterdam  
sudo timedatectl set-ntp true

Luego, reinicia el servicio chrony para aplicar los cambios.

sudo systemctl restart chrony

Por último, verifica la fuente NTP utilizando el siguiente comando.

chronyc sources

Deberías recibir una salida como la siguiente:

configurar chrony

En la Estación de Trabajo Chef y el Cliente

Ahora pasa a la estación de trabajo Chef y la máquina cliente. Luego, ejecuta el siguiente comando para actualizar el repositorio e instalar Chrony en ambos servidores.

sudo apt update  
sudo apt install chrony -y

Después de eso, modifica la configuración de Chrony /etc/chrony/chrony.conf utilizando el siguiente comando del editor nano.

sudo nano /etc/chrony/chrony.conf

Comenta la fuente NTP predeterminada para deshabilitarla, luego ingresa la dirección IP del servidor Chef como servidor NTP como sigue.

# default chrony  
server 192.168.5.15 iburst

Guarda y cierra el archivo cuando termines.

A continuación, ejecuta el siguiente comando para establecer la zona horaria predeterminada y habilitar NTP.

sudo timedatectl set-timezone Europe/Amsterdam  
sudo timedatectl set-ntp true

Luego, reinicia el servicio Chrony para aplicar tus cambios.

sudo systemctl restart chrony

Por último, verifica las fuentes NTP en ambas, la estación de trabajo Chef y el cliente utilizando el siguiente comando.

chronyc sources

Deberías ver que la fuente NTP predeterminada tanto para la estación de trabajo Chef como para el cliente es el servidor Chef, que tiene una dirección IP de 192.168.5.15.

configurar chrony estación de trabajo cliente chef

Instalando y configurando Chef Server

Ahora que has configurado el FQDN y sincronizado los tiempos entre servidores, estás listo para instalar Chef. Primero, instalarás y configurarás Chef Server.

Chef Server es un ecosistema central de Chef que conecta cada parte, por lo que debes configurarlo primero. En este caso, utilizaremos un Servidor Chef con 8 GB de RAM.

Instalando Chef Server a través de DEB

Pasa al servidor Chef y ejecuta el comando a continuación para descargar el paquete del servidor Chef. En este ejemplo, utilizarás Chef 15.

VERSION="15.7.0"  
wget https://packages.chef.io/files/stable/chef-server/${VERSION}/ubuntu/22.04/chef-server-core_${VERSION}-1_amd64.deb

Ahora instala el servidor Chef a través del archivo .deb utilizando el comando a continuación. La instalación tomará algunos minutos.

sudo apt install ./chef-server-core_*.deb

Una vez que la instalación haya finalizado, deberías recibir la confirmación ‘ Gracias por instalar Chef Infra Server ‘.

instalar chef server

A continuación, ejecuta el comando chef-server-ctl a continuación para reconfigurar tu instalación de Chef Server.

sudo chef-server-ctl reconfigure

Cuando se te pregunte, ingresa Y para confirmar la licencia de Chef.

reconfigurar chef server

La inicialización del servidor Chef comenzará. Una vez finalizada, deberías recibir una confirmación como ‘ Chef Infra Server reconfigurado ‘.

reconfiguración del servidor chef finalizada

Configurando Usuario y Organización

Ahora que has reconfigurado el Servidor Chef, configurarás el usuario y la organización en tu instalación de Chef Server.

Crea un nuevo directorio ~/.chef utilizando el siguiente comando.

mkdir -p ~/.chef

Luego, crea un nuevo usuario de Chef utilizando el siguiente comando. En este ejemplo, crearemos un nuevo usuario alice con la contraseña password y el certificado TLS se almacenará en ~/.chef/alice.pem.

sudo chef-server-ctl user-create alice Alice Wonderland [email protected] 'password' --filename ~/.chef/alice.pem

Ahora crea una nueva organización utilizando el comando a continuación. Asegúrate de cambiar los detalles del nombre de la organización, el usuario asociado y la ruta del certificado TLS.

sudo chef-server-ctl org-create hworgz 'HW Corp, Inc.' --association_user alice --filename ~/.chef/hworgz-validator.pem

Una vez que todo esté terminado, verifica la lista de usuarios y organizaciones en el servidor Chef utilizando el comando a continuación.

sudo chef-server-ctl user-list  
sudo chef-server-ctl org-list

Si todo va bien, deberías ver el Servidor Chef con el usuario alice y la organización hworgz como sigue.

crear usuario y orgz

Además, también puedes verificar los certificados TLS generados utilizando el comando a continuación. Deberías ver los certificados alice.pem y hworgz-validator.pem.

ls ~/.chef/

En este punto, has terminado la instalación del Servidor Chef.

Instalando y configurando Chef Workstation

Después de instalar el Servidor Chef, instalarás la estación de trabajo Chef. La estación de trabajo Chef es un nodo que los administradores/usuarios utilizan para crear y probar libros de cocina y recetas.

En este ejemplo, instalarás la estación de trabajo Chef en un servidor Debian 12 con 2 GB de RAM.

Instalando Chef Workstation a través de DEB

Pasa a la estación de trabajo Chef y ejecuta el comando a continuación para descargar el paquete de la estación de trabajo Chef utilizando el comando wget a continuación. En este caso, instalarás Chef Workstation 23.

VERSION="23.7.1042"  
wget https://packages.chef.io/files/stable/chef-workstation/${VERSION}/debian/11/chef-workstation_${VERSION}-1_amd64.deb

Una vez descargado, ejecuta el siguiente comando para instalar el paquete de la estación de trabajo Chef en tu sistema.

sudo apt install ./chef-workstation_*.deb

Cuando termines, deberías recibir la confirmación ‘ Gracias por instalar Chef Workstation ‘.

instalar estación de trabajo chef

Por último, ejecuta el comando a continuación para verificar la versión de Chef.

chef -v

La siguiente salida confirma que has instalado Chef 23 en tu servidor Debian.

verificar versión chef

Configurando la Estación de Trabajo Chef

Ahora que has instalado la estación de trabajo Chef, a continuación configurarás tu instalación.

Primero, genera una nueva clave SSH utilizando el siguiente comando. Ingresa cuando se te pida para establecer una frase de contraseña para la clave.

ssh-keygen -t ed25519

generar clave ssh

Ahora ejecuta el comando a continuación para subir la clave al Servidor Chef chef.howtoforge.local. Esto se utilizará para recuperar certificados TLS del servidor Chef a la estación de trabajo.

ssh-copy-id [email protected]

Ingresa tu contraseña cuando se te pida.

subir clave

A continuación, genera un nuevo repositorio de Chef utilizando el comando a continuación. En este ejemplo, crearás un nuevo repositorio de Chef llamado test-repo.

chef generate repo test-repo

Ahora crea un nuevo directorio ~/test-repo/.chef y muévete a él.

mkdir ~/test-repo/.chef; cd ~/test-repo/.chef

Copia los certificados TLS del Servidor Chef a la Estación de Trabajo en el directorio actual utilizando el siguiente comando.

scp [email protected]:~/.chef/*.pem .

Una vez terminado, verifica la lista de archivos dentro del directorio ~/test-repo/.chef.

ls ~/test-repo/.chef/

Asegúrate de que tus certificados TLS estén disponibles en el servidor de la estación de trabajo Chef.

Configurando la Utilidad Knife - Interfaz para el Servidor Chef

Ahora que has instalado la estación de trabajo Chef, configurarás Knife en tu estación de trabajo Chef. Knife es una herramienta de línea de comandos para comunicarse con el Servidor Chef que te permite gestionar nodos, libros de cocina, recetas, roles y entornos.

En la máquina de la estación de trabajo Chef, muévete al directorio ~/test-repo/.chef y crea un nuevo archivo knife.rb utilizando el siguiente comando del editor nano.

cd ~/test-repo/.chef  
nano knife.rb

Inserta el siguiente script en Ruby y asegúrate de cambiar los detalles del usuario, organizaciones, archivos de certificados TLS y la URL del Servidor Chef.

current_dir = File.dirname(__FILE__)  
log_level                :info  
log_location             STDOUT  
node_name                'alice'  
client_key               "alice.pem"  
validation_client_name   'hworgz-validator'  
validation_key           "hworgz-validator.pem"  
chef_server_url          'https://chef.howtoforge.local/organizations/hworgz'  
cache_type               'BasicFile'  
cache_options( :path => "#{ENV['HOME']}/.chef/checksums" )  
cookbook_path            ["#{current_dir}/../cookbooks"]

Guarda y cierra el archivo cuando termines.

Ahora muévete al directorio ~/test-repo y recupera los certificados del Servidor Chef utilizando el comando knife a continuación.

cd ~/test-repo  
knife ssl fetch

Una vez terminado, deberías obtener la siguiente salida.

configurar knife

A partir de ahora, puedes usar knife para comunicarte con el Servidor Chef y arrancar la máquina cliente.

knife client list

Arrancando Cliente/Nodo desde la Estación de Trabajo Chef

En la siguiente sección, aprenderás cómo usar Knife para arrancar automáticamente el nodo 192.168.5.21 a través de SSH desde la estación de trabajo Chef.

Primero, muévete al directorio ~/test-repo/.chef.

cd ~/test-repo/.chef

Ejecuta el comando knife a continuación para arrancar el cliente 192.168.5.21. Asegúrate de cambiar el usuario root y la contraseña password con tu información.

En este ejemplo, agregarás el nodo 192.168.5.21 y lo nombrarás como client.

knife bootstrap 192.168.5.21 -U root -P password --node-name client

Ingresa Y para continuar y proceder con el proceso.

arrancando nodo

Una vez terminado, deberías recibir la confirmación ‘ Fase Infra completa ‘.

arrancamiento finalizado

Ahora verifica la lista de nodos disponibles en el entorno Chef utilizando el comando a continuación. Si todo va bien, deberías ver que el nodo cliente está disponible.

knife node list

Luego, verifica los detalles del nodo cliente utilizando el comando knife a continuación.

knife node show client

En la siguiente salida, puedes ver el nodo cliente de la máquina Debian 12 con FQDN client.howtoforge.local.

verificar nodo knife

Por último, ahora puedes ejecutar comandos arbitrarios en el nodo cliente a través del comando knife a continuación.

knife ssh "client" "whoami;top" -u alice

Ingresa la contraseña para el usuario Chef alice cuando se te pida. Si el comando es exitoso, deberías obtener lo siguiente.

ejecutando comando de Linux a través de chef al cliente

Conclusión

¡Felicidades! Ahora has completado la instalación del Servidor Chef y la Estación de Trabajo en servidores Debian 12. También has aprendido a usar la herramienta de línea de comandos Knife para arrancar nodos cliente a través de SSH. Ahora puedes agregar nuevos nodos cliente y configurar libros de cocina y recetas para instalar aplicaciones.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.