Chef Server · 9 min read · Nov 09, 2025

Come installare Chef Infra Server su Debian 12

Chef è un potente software di automazione su Debian Linux progettato per gestire e configurare ambienti server su larga scala. Facilita il deployment, la configurazione e la gestione di applicazioni e infrastrutture utilizzando codice, promuovendo i principi dell’infrastruttura come codice (IaC). Chef utilizza un linguaggio specifico del dominio (DSL) scritto in Ruby per definire “ricette” e “libri di cucina” che specificano come i server devono essere configurati. Questo consente agli amministratori di sistema e ai team DevOps di automatizzare compiti ripetitivi, garantire coerenza tra gli ambienti e scalare facilmente l’infrastruttura. Chef supporta un’ampia gamma di risorse e integrazioni, rendendolo uno strumento versatile per gestire ambienti complessi su Debian, Ubuntu Linux e altre piattaforme.

In questo tutorial, ti mostreremo come installare Chef Server e Chef Workstation sui server Debian 12 passo dopo passo.

Prerequisiti

Per completare questa guida, assicurati di avere quanto segue:

  • 3 server Debian 12.
  • Un utente non root con privilegi di amministratore.

Configurazione di FQDN

In questo primo passaggio, configurerai FQDN (Fully Qualified Domain Name) per il server Chef, la workstation Chef e il client.

Esegui il seguente comando hostnamectl per impostare fqdn per ciascun server.

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

Apri il file /etc/hosts su ciascun server utilizzando il seguente comando dell’editor nano.

sudo nano /etc/hosts

Inserisci la seguente configurazione e assicurati di cambiare l’indirizzo IP dettagliato, il nome host e fqdn con le tue impostazioni.

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

Salva e chiudi il file quando hai finito.

Ora esegui il comando sottostante per assicurarti che ciascun fqdn punti all’indirizzo IP corretto del server.

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

setup fqdn

Sincronizzazione dell’ora tra i server

Dopo aver configurato FQDN, assicurerai che ciascun server abbia l’ora sincronizzata. In questo caso, configurerai il server NTP sul server Chef e configurerai la workstation Chef e il client per connettersi ad esso.

Configurazione di Chrony sul server Chef

Sul server Chef, esegui il seguente comando per aggiornare l’indice dei pacchetti del repository e installare il pacchetto Chrony.

sudo apt update  
sudo apt install chrony -y

install chrony

Una volta installato Chrony, apri il file /etc/chrony/chrony.conf utilizzando il seguente comando dell’editor nano.

sudo nano /etc/chrony/chrony.conf

Inserisci la seguente configurazione per impostare il server NTP predefinito. Assicurati di scegliere la posizione più vicina al tuo server, controlla ntp.org per i dettagli.

Inoltre, configurerai Chrony all’interno del server Chef come server NTP sia per la workstation Chef che per i client.

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

Salva e chiudi il file quando hai finito.

Successivamente, esegui il seguente comando per impostare il fuso orario predefinito e abilitare NTP.

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

Quindi, riavvia il servizio chrony per applicare le modifiche.

sudo systemctl restart chrony

Infine, verifica la sorgente NTP utilizzando il comando sottostante.

chronyc sources

Dovresti ricevere un output simile al seguente:

configure chrony

Sulla workstation Chef e sul client

Ora spostati sulla workstation Chef e sulla macchina client. Quindi, esegui il seguente comando per aggiornare il repository e installare Chrony su entrambi i server.

sudo apt update  
sudo apt install chrony -y

Dopo di che, modifica la configurazione di Chrony /etc/chrony/chrony.conf utilizzando il seguente comando dell’editor nano.

sudo nano /etc/chrony/chrony.conf

Commenta la sorgente NTP predefinita per disabilitarla, quindi inserisci l’indirizzo IP del server Chef come server NTP come segue.

# default chrony  
server 192.168.5.15 iburst

Salva e chiudi il file quando hai finito.

Successivamente, esegui il seguente comando per impostare il fuso orario predefinito e abilitare NTP.

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

Quindi, riavvia il servizio Chrony per applicare le tue modifiche.

sudo systemctl restart chrony

Infine, verifica le sorgenti NTP sia sulla workstation Chef che sul client utilizzando il seguente comando.

chronyc sources

Dovresti vedere che la sorgente NTP predefinita sia per la workstation Chef che per il client è il server Chef, che ha un indirizzo IP di 192.168.5.15.

setup chrony chef workstation client

Installazione e configurazione di Chef Server

Ora che hai configurato FQDN e sincronizzato i tempi tra i server, sei pronto per installare Chef. Prima, installerai e configurerai Chef Server.

Chef Server è un ecosistema centrale di Chef che collega ogni parte, quindi devi configurarlo per primo. In questo caso, utilizzeremo un server Chef con 8 GB di RAM.

Installazione di Chef Server tramite DEB

Spostati sul server Chef ed esegui il comando sottostante per scaricare il pacchetto del server Chef. In questo esempio, utilizzerai 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

Ora installa il server Chef tramite il file .deb utilizzando il comando sottostante. L’installazione richiederà alcuni minuti.

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

Una volta completata l’installazione, dovresti ricevere la conferma ‘ Grazie per aver installato Chef Infra Server ‘.

install chef server

Successivamente, esegui il comando chef-server-ctl sottostante per riconfigurare la tua installazione di Chef Server.

sudo chef-server-ctl reconfigure

Quando richiesto, inserisci Y per confermare la licenza di Chef.

reconmfigure chef server

L’inizializzazione del server Chef inizierà. Una volta terminato, dovresti ricevere una conferma come ‘ Chef Infra Server riconfigurato ‘.

chef server reconfigure finished

Configurazione dell’utente e dell’organizzazione

Ora che hai riconfigurato il server Chef, imposterai l’utente e l’organizzazione sulla tua installazione del server Chef.

Crea una nuova directory ~/.chef utilizzando il seguente comando.

mkdir -p ~/.chef

Quindi, crea un nuovo utente Chef utilizzando il seguente comando. In questo esempio, creeremo un nuovo utente alice con password password e il certificato TLS sarà memorizzato in ~/.chef/alice.pem.

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

Ora crea una nuova organizzazione utilizzando il comando sottostante. Assicurati di cambiare i dettagli del nome dell’organizzazione, dell’utente associato e del percorso del certificato TLS.

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

Una volta terminato tutto, verifica l’elenco degli utenti e delle organizzazioni sul server Chef utilizzando il comando sottostante.

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

Se tutto va bene, dovresti vedere il server Chef con l’utente alice e l’organizzazione hworgz come segue.

create user and orgz

Inoltre, puoi anche controllare i certificati TLS generati utilizzando il comando sottostante. Dovresti vedere i certificati alice.pem e hworgz-validator.pem.

ls ~/.chef/

A questo punto, hai completato l’installazione del server Chef.

Installazione e configurazione di Chef Workstation

Dopo aver installato il server Chef, installerai la workstation Chef. La workstation Chef è un nodo che gli amministratori/gli utenti utilizzano per creare e testare libri di cucina e ricette.

In questo esempio, installerai la workstation Chef su un server Debian 12 con 2 GB di RAM.

Installazione di Chef Workstation tramite DEB

Spostati sulla workstation Chef ed esegui il comando sottostante per scaricare il pacchetto della workstation Chef utilizzando il comando wget sottostante. In questo caso, installerai 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 volta scaricato, esegui il seguente comando per installare il pacchetto della workstation Chef nel tuo sistema.

sudo apt install ./chef-workstation_*.deb

Quando hai finito, dovresti ricevere la conferma ‘ Grazie per aver installato Chef Workstation ‘.

install chef workstation

Infine, esegui il comando sottostante per verificare la versione di Chef.

chef -v

Il seguente output conferma che hai installato Chef 23 sul tuo server Debian.

check chef version

Configurazione della workstation Chef

Ora che hai installato la workstation Chef, configurerai la tua installazione.

Prima, genera una nuova chiave SSH utilizzando il seguente comando. Inserisci quando richiesto per impostare una passphrase per la chiave.

ssh-keygen -t ed25519

generate ssh key

Ora esegui il comando sottostante per caricare la chiave sul server Chef chef.howtoforge.local. Questa sarà utilizzata per recuperare i certificati TLS dal server Chef alla workstation.

ssh-copy-id [email protected]

Inserisci la tua password quando richiesto.

upload key

Successivamente, genera un nuovo repository Chef utilizzando il comando sottostante. In questo esempio, creerai un nuovo repository Chef test-repo.

chef generate repo test-repo

Ora crea una nuova directory ~/test-repo/.chef e spostati al suo interno.

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

Copia i certificati TLS dal server Chef alla workstation nella directory corrente utilizzando il comando sottostante.

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

Una volta terminato, controlla l’elenco dei file all’interno della directory ~/test-repo/.chef.

ls ~/test-repo/.chef/

Assicurati che i tuoi certificati TLS siano disponibili sul server della workstation Chef.

Configurazione dell’utilità Knife - Interfaccia per il server Chef

Ora che hai installato la workstation Chef, configurerai Knife sulla tua workstation Chef. Knife è uno strumento da riga di comando per comunicare con il server Chef che ti consente di gestire nodi, libri di cucina, ricette, ruoli e ambienti.

Sulla macchina della workstation Chef, spostati nella directory ~/test-repo/.chef e crea un nuovo file knife.rb utilizzando il seguente comando dell’editor nano.

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

Inserisci il seguente script Ruby e assicurati di cambiare i dettagli dell’utente, delle organizzazioni, dei file del certificato TLS e dell’URL del server 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"]

Salva e chiudi il file quando hai finito.

Ora spostati nella directory ~/test-repo e recupera i certificati dal server Chef utilizzando il comando knife sottostante.

cd ~/test-repo  
knife ssl fetch

Una volta terminato, dovresti ricevere il seguente output.

setup knife

D’ora in poi, puoi utilizzare Knife per comunicare con il server Chef e avviare la macchina client.

knife client list

Bootstraping Client/Nodo dalla workstation Chef

Nella sezione seguente, imparerai come utilizzare Knife per avviare automaticamente il nodo 192.168.5.21 tramite SSH dalla workstation Chef.

Prima, spostati nella directory ~/test-repo/.chef.

cd ~/test-repo/.chef

Esegui il comando knife sottostante per avviare il client 192.168.5.21. Assicurati di cambiare l’utente root e la password password con le tue informazioni.

In questo esempio, aggiungerai il nodo 192.168.5.21 e lo chiamerai client.

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

Inserisci Y per continuare e procedere con il processo.

bootstraping node

Una volta terminato, dovresti ricevere la conferma ‘ Fase Infra completata ‘.

bootstrapping finished

Ora verifica l’elenco dei nodi disponibili nell’ambiente Chef utilizzando il comando sottostante. Se tutto va bene, dovresti vedere che il nodo client è disponibile.

knife node list

Quindi, verifica i dettagli del nodo client utilizzando il comando knife sottostante.

knife node show client

Nell’output seguente, puoi vedere il nodo client macchina Debian 12 con FQDN client.howtoforge.local.

knife check node

Infine, ora puoi eseguire comandi arbitrari sul nodo client tramite il comando knife sottostante.

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

Inserisci la password per l’utente Chef alice quando richiesto. Se il comando ha successo, dovresti ottenere quanto segue.

running Linux command via chef to client

Conclusione

Congratulazioni! Hai completato l’installazione del server e della workstation Chef sui server Debian 12. Hai anche imparato a utilizzare lo strumento da riga di comando Knife per avviare i nodi client tramite SSH. Ora puoi aggiungere nuovi nodi client e impostare libri di cucina e ricette per installare applicazioni.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.