Guida alle tecnologie

Installare Chef su Ubuntu 17.04

7 min read DevOps Aggiornato 08 Oct 2025
Installare Chef su Ubuntu 17.04
Installare Chef su Ubuntu 17.04

Introduzione

Chef è uno strumento open source per la gestione della configurazione scritto principalmente in Ruby ed Erlang. Permette di automatizzare la creazione e la gestione di server, integrandosi con piattaforme cloud come AWS, OpenStack o Rackspace. In ambienti con molti nodi, Chef centralizza la gestione attraverso tre componenti principali: Chef Server, Chef Workstation e Chef Nodes.

Questo tutorial descrive i passaggi per installare il Chef Server su una macchina Ubuntu 17.04 (Zesty Zapus). Nota importante: Ubuntu 17.04 è una release non-LTS e potrebbe essere fuori supporto; per ambienti di produzione è consigliabile usare una LTS supportata (ad es. Ubuntu 18.04, 20.04 o 22.04) e verificare la compatibilità dei pacchetti Chef più recenti.

Prerequisiti

  • Un server con Ubuntu 17.04 minimale.
  • Privilegi di root (la guida usa comandi come root; se sei un utente sudo esegui sudo -i).
  • Un nome di dominio configurato puntato verso il server (FQDN) o l’indirizzo IP pubblico.
  • Accesso alla rete per scaricare pacchetti e dipendenze.

Importante: verifica lo spazio disco disponibile e che le porte necessarie (HTTP/HTTPS, servizi interni di Chef) non siano bloccate da firewall esterni.

Aggiornare il sistema base

Prima di installare pacchetti, aggiorna repository e pacchetti:

apt update && apt -y upgrade

Dopo l’aggiornamento procedi con i passaggi successivi.

Impostare l’hostname risolvibile

Chef richiede un hostname risolvibile (FQDN). Esempio: chef.tuodominio.com. Per impostarlo:

hostname 'chef.tuodominio.com'

Aggiorna anche /etc/hostname:

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

Aggiungi la riga corrispondente in /etc/hosts (sostituisci con il tuo IP pubblico):

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

Suggerimento rapido: verifica la risoluzione con ping e hostname -f.

Configurare NTP (sincronizzazione orologio)

Chef è sensibile alle variazioni dell’orologio; assicurati che il server abbia NTP configurato e attivo. Installazione e abilitazione:

apt install ntp
systemctl start ntp
systemctl enable ntp

Controlla lo stato della sincronizzazione:

ntpq -p

Output di esempio (il contenuto varia a seconda dei peer):

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
 ... (output omesso per brevità) ...

Nota: se il server è in una rete con firewall che blocca UDP/123, aprire la porta verso i server NTP.

Scaricare e installare Chef Server

Scarica il pacchetto .deb (esempio per una versione specifica e Ubuntu 16.04 nel link di esempio):

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

Avvertenza: consulta la pagina ufficiale dei download di Chef per ottenere il link aggiornato per la tua distribuzione.

Installa il pacchetto:

dpkg -i chef-server-*.deb

Configurare Chef Server

Dopo l’installazione, configura e avvia tutti i servizi necessari con:

chef-server-ctl reconfigure

Il comando impiegherà alcuni minuti: installa componenti interni e applica le configurazioni. Alla fine dovresti vedere un messaggio di completamento simile a:

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

Verifica lo stato dei servizi:

chef-server-ctl status

Esempio di output che mostra i servizi avviati:

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
... (output omesso) ...

Installare la console web di gestione

Per una GUI amministrativa installa Chef Manage:

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

Durante la configurazione ti verrà chiesto di accettare la licenza. Per accettarla automaticamente:

chef-manage-ctl reconfigure --accept-license

Creare amministratore e organizzazione

Crea una directory per conservare le chiavi RSA:

mkdir ~/.chef

Crea l’utente amministratore (sostituisci i campi con i tuoi valori):

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

Crea un’organizzazione (sostituisci i nomi):

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

Le chiavi *.pem generate sono necessarie per connettere workstation e client al server.

Accedere alla console web

Apri il browser e visita l’indirizzo del server (IP o dominio):

http://Your-Server-IP

Dovresti visualizzare la schermata di login nel browser.

Schermata di login di Chef

Effettua il login con l’utente creato; dopo l’accesso vedrai la dashboard di gestione.

Dashboard di Chef

Plugin opzionali: Reporting e Push Jobs

Per abilitare il reporting:

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

Per abilitare Push Jobs (esecuzioni remote di job sui nodi):

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

Sicurezza e hardening consigliati

  • Firewall: apri solo le porte necessarie (HTTP/HTTPS, porte interne usate da Chef). Usa ufw o iptables per limitare l’accesso.
  • HTTPS: proteggi la console web con TLS; considera l’installazione di un certificato valido (Let’s Encrypt o certificati aziendali).
  • Backup: esegui backup regolari delle chiavi e del database PostgreSQL.
  • Least privilege: usa account separati per amministrazione e automazione; limita l’accesso alle chiavi private.
  • Aggiornamenti: mantieni pacchetti e dipendenze aggiornate; controlla le note di sicurezza di Chef.

Nota: la generazione delle chiavi private (.pem) deve essere trattata come materiale sensibile.

Controlli post-installazione (Criteri di accettazione)

Per considerare l’installazione completata con successo verifica:

  • Il comando chef-server-ctl status mostra tutti i servizi in esecuzione.
  • È possibile accedere alla console web con l’account amministratore.
  • I file ~/.chef/admin.pem e ~/.chef/my_org.pem esistono e sono leggibili solo dal proprietario.
  • NTP mostra peer sincronizzati con stato valido.
  • I backup delle chiavi e della configurazione sono pianificati.

Runbook di risoluzione problemi rapido

  • Problema: servizi non avviati → Esegui chef-server-ctl reconfigure e controlla /var/log/chef-server/*.log
  • Problema: errori di certificato HTTPS → verifica i certificati in /var/opt/opscode/nginx/ca/ e i permessi
  • Problema: login fallito → verifica associazione utente-organizzazione e chiavi .pem
  • Problema: reporting o plugin non funzionano → riesegui reconfigure dei moduli opscode-*

Esempi di comandi diagnostici utili:

chef-server-ctl tail
chef-server-ctl test
systemctl status ntp
ntpq -p

Quando Chef potrebbe non essere la soluzione ideale

  • Piccoli ambienti con poche macchine: strumenti agentless come Ansible possono essere più semplici.
  • Se hai bisogno di configurazioni estremamente leggere e senza server centrale, considera chef-solo o alternative.
  • Requisiti di compliance che impongono piattaforme gestite: potresti preferire soluzioni hosted che includono aggiornamenti e supporto.

Approcci alternativi e confronto rapido

  • Ansible: agentless, semplice da apprendere, ideale per provisioning e configurazioni senza server centrale.
  • Puppet: simile a Chef, con modello dichiarativo e una larga adozione enterprise.
  • SaltStack: focalizzato su velocità e gestione in tempo reale.

Scegli in base a: dimensione dell’infrastruttura, cultura del team (Ruby vs YAML), necessità di un server centrale e requisiti di automazione.

Modello mentale: come funziona Chef (in una riga)

Chef Server è il catalogo centrale; Workstation prepara cookbook e policy; Node esegue chef-client per applicare lo stato desiderato.

Checklist ruolo-based (operatore, sviluppatore, sicurezza)

  • Operatore:
    • Verificare servizi e backup.
    • Monitorare NTP e spazio disco.
  • Sviluppatore/DevOps:
    • Testare cookbooks in ambiente di staging.
    • Automatizzare pipeline CI/CD per cookbooks.
  • Sicurezza:
    • Controllare permessi delle chiavi .pem.
    • Verificare TLS e rotazione delle chiavi.

Mini-metodologia di rollout (passi consigliati)

  1. Preparare server di test con FQDN e NTP.
  2. Installare Chef Server in ambiente di staging.
  3. Creare utente e org, testare login e deploy di un cookbook minimo.
  4. Abilitare backup e monitoring.
  5. Ripetere in produzione con configurazioni di rete e DNS corrette.

Esempi di snippet utili

  • Aggiunta rapida in /etc/hosts (esempio già fornito):
echo "192.168.1.1 chef.tuodominio.com" >> /etc/hosts
  • Riavviare NTP se necessario:
systemctl restart ntp

Glossario (una riga ciascuno)

  • Chef Server: componente centrale che conserva cookbooks, policy e dati dell’organizzazione.
  • Workstation: macchina da cui si sviluppano cookbooks e si interagisce con il server.
  • Chef Node: server gestito che esegue chef-client per applicare configurazioni.
  • Cookbook: pacchetto di risorse e ricette per gestire software e servizi.

Note locali e compatibilità

  • Se stai operando in Italia, verifica policy aziendali per la gestione delle chiavi e la localizzazione dei certificati.
  • Controlla la compatibilità dei pacchetti Chef con la versione di Ubuntu in uso; alcune build potrebbero essere destinate a LTS diverse.

Riepilogo

In questa guida hai imparato a:

  • Preparare un server Ubuntu 17.04 per Chef (hostname, NTP, aggiornamenti).
  • Scaricare e installare Chef Server e la console web di gestione.
  • Creare utente amministratore e organizzazione, abilitare plugin opzionali.
  • Applicare controlli di sicurezza, checklist operative e procedure di risoluzione dei problemi.

Importante: per ambienti di produzione privilegia versioni LTS di Ubuntu e mantieni aggiornati sia il sistema operativo che i pacchetti Chef.

Note finali

Per approfondire visita la documentazione ufficiale di Chef e le pagine di download per scaricare le versioni più aggiornate dei pacchetti e consultare le note di rilascio.

Autore
Redazione

Materiali simili

Scaricare immagini da Google Docs: 6 metodi pratici
Guide.

Scaricare immagini da Google Docs: 6 metodi pratici

Chrome non si apre su Windows: come risolvere
Windows

Chrome non si apre su Windows: come risolvere

Icona Impostazioni scomparsa dal menu Start
Windows

Icona Impostazioni scomparsa dal menu Start

Personalizzare le barre di scorrimento in Windows 10 e 11
Windows

Personalizzare le barre di scorrimento in Windows 10 e 11

Aggiornamenti sicurezza automatici su Ubuntu 16.04
Sicurezza Linux

Aggiornamenti sicurezza automatici su Ubuntu 16.04

Limitare le autorizzazioni delle app Android
Sicurezza

Limitare le autorizzazioni delle app Android