Il testing non può mai rivelare l'assenza di bug.

— Edsger Wybe Dijkstra

Installazione minima di CentOS 5.1

http://www.stenoweb.it/files/blog/centos.png Oramai mi sono abituato ad installare Archlinux o Debian Etch (netinst) sui piccoli server e dovendo per una volta rivolgermi a CentOS per creare una "small" VPS, mi son immediatamente chiesto : "Ma con CentOS si può fare una installazione minima ed aggiungere solo dopo quello che veramente serve ?". La risposta è sì, ma bisogna far qualche passo manuale. Vediamo un po' come.

Cosa otteniamo

Questo tipo di installazione non è indicata in tutti i casi, quindi vediamo alla fine cosa otteniamo:

  • Dato che verrà usata come VPS, non vengono installati software di monitoring dell'hardware
  • Niente ACPI (sospensione/ibernazione)
  • Niente SMART di monitoraggio dei dischi (se è una VPS non serve, ci pensa il sistema host)
  • Niente RAID e LVM2
  • Niente Bluetooth, Hot-Plug hardware o PCMCIA
  • Niente GUI, la shell ci basta
  • Niente servizi legacy che magari richiedono RPC
  • NFS non sarà usata

Naturalmente nulla ci impedisce di installare queste "features" dopo al termine dell'installazione, specie se non si tratta di una VPS e abbiamo magari bisogno di NFS o Samba o di qualunque altra cosa.

Installazione Base

Bene, partiamo con il nostro DVD di CentOS 5.1 e scegliamo pure l'installazione grafica.

  • Selezioniamo la lingua (io ho scelto English Language) e la tastiera (italiana nel mio caso)
  • Scegliere "Install the OS" e non "Upgrade"
  • Scegliere la configurazione manuale del disco utilizzandolo per intero
  • Creiamo una partizione di swap e una ext3 con punto di mount a root (/)
  • Configuriamo la rete con DHCP o indirizzo fisso, come preferiamo
  • Scegliamo la time zone appropriata
  • Inventiamoci una buona password per root. Se siete a corto di fantasia andate qui
  • Quando ci viene chiesto se ci sono "additional tasks", deselezioniamo tutto (no additional tasks) e selezioniamo "Customize now".
  • Nella videata successiva andiamo in ogni gruppo e deselezioniamo tutto. Non lasciamo nulla !
  • Confermiamo al sistema di iniziare l'installazione (dovrebbe durare pochi minuti a questo punto).
  • Riavviamo il server e logghiamoci come root. Potremmo anche usare SSH da un altra macchina in rete dal momento che CentOS anche in questa installazione minima abilita ed installa comunque il servizio OpenSSH.

Ancora più piccolo

Ma non è finita, possiamo ancora limare qualcosa. Diamo innanzitutto una occhiata se abbiamo installato per sbaglio qualcosina:

yum -C grouplist

Se vediamo una sezione "Installed Groups:" nell'output del comando allora abbiamo toppato e abbiamo lasciato qualcosa di selezionato prima. Niente paura rimuoviamo subito tutto con un :
yum -C groupremove NomeDelGruppo

Dove naturalmente NomeDelGruppo sarà il nostro "intruso".

Possiamo anche vedere quanti pacchetti abbiamo installato :

yum -C list installed | wc -l

E vedere quali servizi vengono abilitati al boot:
chkconfig --list | grep 3:on

Qualcuno di questi può essere diabilitato, ad esempio seguendo quanto detto nella sezione "Cosa otteniamo" possiamo disabilitare haldaemon, lvm2-monitor, messagebus e netfs in questo modo:
for i in haldaemon lvm2-monitor messagebus netfs; do chkconfig $i off; done

Alla fine dovremmo avere solo i servizi strettamente necessari.
ip6tables
iptables
kudzu
mcstrans
network
restorecond
sshd
syslog

Naturalmete completa libertà se invece per qualche ragione si necessita di servizi aggiuntivi.

Per finire possiamo anche rimuovere la documentazione (circa 10MB) che difficilmente leggeremmo dal server:

yum -C remove Deployment_Guide-en-US

oppure quella italiana
yum -C remove Deployment_Guide-it-IT

Ora siamo pronti per il nostro pacman -Syu ..., opss scusate volevo dire apt-get upgrade... opsss, di nuovo, deformazione professionale. Ok, basta diamo l'appropriato :

yum update

e aggiorniamo tutto l'aggiornabile.

Se viene aggiornato il kernel è buona cosa riavviare la macchina e magari, facendo i pignoli, eliminare il vecchio kernel che non ci serve più. Per farlo diamo un bel:

rpm -qa | grep kern

Io ad esempio ho ottenuto questo:
kernel-2.6.18-53.el5
kernel-2.6.18-92.1.10.el5

e quindi ho eliminato il più vecchio liberando circa altri 36MB di spazio disco :
yum remove kernel-2.6.18-53.el5

Cose utili da installare

Ora abbiamo fatto dimagrire ben bene la nostra elefantessa CentOS 5.1, ma comunque ci sono cosine utili che è meglio installare per amministrare il sistema e per compilare qualcosa. Qui completa libertà, nel mio caso il listone è questo:

yum install bzip2 lsof man man-pages mlocate quota rsync sysstat vixie-cron wget which nano joe mc

Se il nostro server ha più di una CPU dovremmo installare :
yum install irqbalance

Se vogliamo velocizzare il boot possiamo provare con :
yum install readahead

Bene, e adesso ?

Adesso finalmente si comincia ad installare quello che serve ! :D

Complimenti per il tutorial. L'ho trovato molto utile. In particolare la parte di "pulizia".
Carlo