Maintain our Gentoo

Da EigenWiki.
Jump to navigation Jump to search

Ed ecco la pagina più attesa: tips & tricks per gestire i nostri server, dagli accorgimenti quasi stupidi alle procedure per salvare tempo ed evitare di commettere stupidaggini.

Sui nostri server gira Gentoo: sistema ottimizzato per la macchina e quindi più performante. Di solito sui nostri server usiamo questi pacchetti:

  • virtual/ssh client e server SSH per la gestione remota delle macchine
  • net-misc/babeld::eigenlay routing a layer 3
  • net-misc/batman-adv::eigenlay routing a layer 2
  • app-misc/tmux terminal multiplexer
  • net-analyzer/jnettop visualizza le connessioni attive ordinandole secondo vari parametri tra cui la banda usata
  • net-analyzer/iptraf-ng visualizza le connessioni attive e diversi tipi di statistiche sul traffico di rete
  • sys-apps/mlocate indicizza i file e permette di cercarli rapidamente sull'indice

Astuzie Varie

Una cosa molto comoda sono gli alias ovvero l'assegnare ad una parola un comando usato di frequente che magari ha molti parametri o che è difficile da ricordare. Per esempio per eseguire un update globale del sisteme:

alias fullupdate='emerge -vq --sync && layman -S && emerge -avq --complete-graph --update --deep --with-bdeps=y --newuse world \
                        && python-updater -- --verbose --quiet'

Se la macchina venisse riavviata mentre state facendo un aggiornamento, i seguenti comandi possono essere utili per capire a che punto fosse arrivato:

qlop -l

per vedere quali aggiornamenti ha fatto,

equery changes <pacchetto>

per i changelog se te li sei persi,

equery check <pacchetto>

se vuoi controllare l'integrità dei file,

eread

per la lista dei messaggi dei pacchetti, dipende da come è configurato, o ti da un file di tutto insieme o un log per pacchetto.


Volete evitare di ripartire con la scelta dei moduli da includere nel kernel ogni volta che lo aggiornate?

Supponiamo di avere kernel 1 e kernel 2, ovviamente kernel 2 è il più recente e deve essere configurato.

Da shell:

eselect kernel list
eselect kernel  set 2
cd /usr/src/linux
cp ../kernel1/.config .
make oldconfig

Quest'ultimo comando ci dirà cosa è cambiato dal vecchio kernel al nuovo senza dover controllare ogni singola voce.

Per evitare di perdere le configurazioni del kernel prima di modificare una config copiala in /usr/src

cp /usr/src/kernel.x/.config /usr/src/make-old-config

Così se qualcosa va storto oppure un

emerge --depclean

elimina i sorgenti si può fixare velocemente

Per macchine LXC

Logs

syslog-ng ha una configurazione di default che manda i log a una console fisica inesistente. Per sistemare questo bisogna editare

/etc/syslog-ng/syslog-ng.conf

in modo che:

  • tutte le righe che si riferiscono a "kernsrc" siano commentate
  • tutte le righe che si riferiscono a console_all non scrivano su /dev/tty12 (che non esiste) ma magari su un altro file. /var/log/messages è una buona scelta in quanto è un file di log generico, ed è già gestito da logrotate.

Aggiornare il sistema

La maggior parte dei server utilizzati da eigenLab sono server recuperati da trashware ed utilizzano Gentoo/Linux come sistema operativo. Gentoo non è una distribuzione Linux pensata per essere semplice da usare (come potrebbero essere Ubuntu, Mint e OpenSuse) bensì è una distribuzione pensata per essere estremamente personalizzabile e per sfruttare appieno tutte le potenzialità dell'hardware in uso. L'installazione di Gentoo non è banale ma lo diventa seguendo una lunga guida.

Qui riportiamo solo i comandi per aggiornare un sistema Gentoo, escludendo il caso in cui si aggiorni anche il kernel:

   emerge --sync && layman -S;
   emerge -avq --update --deep --newuse --changed-use --complete-graph=y --with-bdeps=y --keep-going world;
   emerge @module-rebuild;
   revdep-rebuild -- -vq;
   emerge --depclean;
   python-updater -- -vq;
   perl-cleaner --reallyall -- -vq;
   dispatch-conf;

Per semplificare l'installazione di alcuni pacchetti che frequentemente servono sui nostri server abbiamo creato un overlay per Gentoo.