Upgrade da Debian Jessie a Stretch
NOTE IMPORTANTI
- Se non è presente una regola corretta con il mac address in
/etc/udev/rules.d/70-persistent-net.rules
- prima di eseguire l'aggiornamento, l'interfaccia di rete assumerà un nuovo nome, e non ci riuscirà più a collegare.
- Attenzione a PHP: rimuovere dopo l'upgrade tutti i vecchi pacchetti php5, assicurandosi di installare i corrispondenti con php7
- Assicurarsi che il modulo php7.0 sia attivato in apache
- MYSQL è stato sostituito da MARIADB: verificare che parta al boot.
Preparazione
- Avviare screen
- Registrare la sessione:
script -t 2>~/upgrade-stretch.time -a ~/upgrade-stretch.script
Backup del Sistema
Come sempre ...
- Fare una copia di comodo locale della etc:
sudo mkdir -p /files; sudo tar --exclude=.svn --exclude=.git -cvf /files/etc-jessie.tar /etc
- Fermare cfengine o puppet, se attivi
sudo systemctl stop cfengine2 sudo systemctl stop puppet sudo puppet agent --disable
Aggiornamento Jessie
- Aggiornare ad ultimi rilasci
sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get clean
Pulizia Pacchetti
- Rimuovere manualmente i pacchetti non più necessari
- Rimuovere i pacchetti che non hanno dipendenze necessarie:
if [ ! -e /usr/bin/deborphan ]; then sudo apt-get install deborphan; fi
if [ -z "$(deborphan)" ]; \
then \
echo "Nothing to Remove"; \
else \
sudo apt-get remove --purge $(deborphan)
fi
sudo apt-get --purge autoremove
- Nel caso l'autoremove voglia rimuovere pacchetti che in realtà si vogliono tenere, marcarli come installati manualemente
sudo apt-mark unmarkauto packagename
- Ripetere
sudo apt-get --purge autoremove
- Rimuovere le configurazione dei pacchetti disinstallati:
if [ -z "$(dpkg -l | grep ^rc | tr -s ' ' | cut -f 2 --delim=' ')" ]; \
then \
echo "Nothing to Purge"; \
else \
sudo dpkg --purge $(dpkg -l | grep ^rc | tr -s ' ' | cut -f 2 --delim=' '); \
fi
- Rimuovere eventuali vecchie configurazioni:
cd /etc sudo etckeeper commit -m "Pre remove dpkg old"
sudo git rm $(sudo find . -name \*.dpkg-dist) sudo git rm $(sudo find . -name \*.dpkg-old) sudo git rm $(sudo find . -name \*.dpkg-new)
sudo git rm $(sudo find . -name \*.ucf-old) sudo git rm $(sudo find . -name \*.ucf-new)
sudo rm $(sudo find . -name \*.dpkg-dist) sudo rm $(sudo find . -name \*.dpkg-old) sudo rm $(sudo find . -name \*.dpkg-new)
sudo rm $(sudo find . -name \*.ucf-old) sudo rm $(sudo find . -name \*.ucf-new)
sudo etckeeper commit -m "Removed dpkg old"
- Verificare se ci sono pacchetti in hold o marcati per la rimozione. Se ci sono holds, disabilitarli:
sudo dpkg --audit sudo aptitude search "~ahold" sudo dpkg --get-selections | grep 'hold$'
- To unset the “hold” state:
echo package_name install | sudo dpkg --set-selections
Upgrade
Sistemazione fonti apt
- Cambiare jessie in stretch in sources.lists
- Sostituire "jessie" con "stretch" in /etc/apt/sources.list
sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list
- La lista delle sorgenti dovrebbe essere simile a:
sudoedit /etc/apt/sources.list
deb http://ftp.it.debian.org/debian stretch main contrib non-free deb http://ftp.it.debian.org/debian stretch-updates main contrib non-free deb http://security.debian.org stretch/updates main contrib non-free
- Sostituire, se presenti, le sorgenti backports con
deb http://mirrors.kernel.org/debian stretch-backports main contrib deb-src http://mirrors.kernel.org/debian stretch-backports main contrib
- Se sono presenti fonti agguntive, verificare se è necessario aggiornarle (virtualbox, per webmin, rimane ancora valido sarge)
ls /etc/apt/sources.list.d
Scaricamento pacchetti
- Aggiornare le nuove fonti APT:
sudo apt-get update
- Scaricare i pacchetti necessari:
sudo apt-get dist-upgrade -d
Aggiornamento APT
sudo apt-get install apt
Aggiornamento Kernel
- Installare i firmware non free per ogni hardware che li necessita :
sudo apt-get install firmware-linux firmware-linux-nonfree firmware-realtek
- Identificare i kernel installati
dpkg -l "linux-image*" | grep ^ii
- Identificare il kernel in uso
uname -r
- Installare la versione più recente nel caso di kernel standard, oppure quello adeguato:
sudo apt-get install linux-image-amd64
- oppure:
sudo apt-get install linux-image-686-pae
- Assicurarsi che grub si installi correttamente. In particolare se la root è su un volume RAID, installarlo su ogni DISCO fisico:
sudo grub-install --recheck /dev/sda; sudo grub-install --recheck /dev/sdb;
Aggiornamento base
- Durante gli aggiornamenti, prendere nota dei files di configurazione, e sostituirli con la nuova versione premendo Y
- Aggiornare i pacchetti che non richiedono rimozioni, oppure proseguire con i singoli:
sudo apt-get upgrade
Aggiornamento restanti pacchetti
- Aggiornare gli altri pacchetti:
sudo apt-get dist-upgrade
- Se rimangono dei pacchetti held back, aggiornarli usando ancora
sudo apt-get dist-upgrade
oppure
sudo apt-get -f install package
oppure, VERIFICANDO le eventuali rimozioni proposte
sudo apt-get dist-upgrade
Sistemazione files di configurazione
- Fare il merge dei vecchi settaggi nei nuovi files di configurazione
sudo vimdiff /etc/cfgfile.dpkg.old /etc/cfgfile
- Rilanciare dist-upgrade per terminare configurazione
sudo apt-get dist-upgrade
Preparazione al riavvio
- Rimuovere i pacchetti non necessari
sudo apt-get autoremove --purge
- Rimuovere i pacchetti che non hanno dipendenze necessarie:
if [ ! -e /usr/bin/deborphan ]; then sudo apt-get install deborphan; fi
if [ -z "$(deborphan)" ]; \
then \
echo "Nothing to Remove"; \
else \
sudo apt-get remove --purge $(deborphan)
fi
- Ora è installato systemd, quindi il riavvio va fatto con
sudo systemctl reboot
- Testare il tutto dopo il riavvio
- Rimuovere i vecchi pacchetti:
sudo apt-get remove --purge $(dpkg -l | grep deb8 | tr -s ' '| cut -f 2 --delimiter=' ')
sudo apt-get remove --purge $(dpkg -l | grep deb7 | tr -s ' '| cut -f 2 --delimiter=' ')
sudo apt-get remove --purge $(dpkg -l | grep deb6 | tr -s ' '| cut -f 2 --delimiter=' ')
sudo apt-get remove --purge $(dpkg -l | grep jessie | tr -s ' '| cut -f 2 --delimiter=' ')
sudo apt-get remove --purge $(dpkg -l | grep wheezy | tr -s ' '| cut -f 2 --delimiter=' ')
sudo apt-get remove --purge $(dpkg -l | grep squeeze | tr -s ' '| cut -f 2 --delimiter=' ')
Note per pacchetti specifici
- VEDI NOTE IMPORTANTI ALL'INIZIO
nrpe
- Il plugin chec_nrpe di stretch v3 non è compatibile con quello v2 di jessie. PEr farlo funzionare, occorre disabilitare ssl.
- Lato stretch, usare il plugin check_nre con l'opzione '-n'
/usr/lib/nagios/plugins/check_nrpe -n -H 1.2.3.4 -c my-check
- Lato Jessie, assicurarsi di eseguire il server NRPE con SSL disabilitato:
vi /etc/default/nagios-nrpe-server
NRPE_OPTS="-n"
systemctl restart nagios-nrpe-server.service
Riferimenti
systemd
systemd (231-1) unstable; urgency=low
This version drops support for running /etc/rcS.d SysV init scripts. These are prone to cause dependency loops, and almost all Debian packages with rcS scripts now ship a native systemd service. If you have custom or third-party rcS scripts you need to convert them or change them to run in rc2.d/ - rc5.d/; see this page for details: <https://wiki.debian.org/Teams/pkg-systemd/rcSMigration>.
isc-dhcp-server
- Bisogna specificare le interfacce di default specificando quale protocollo usare. Se non si usa IPv6, occorre forzare la sola modalità v4:
sudoedit /etc/default/isc-dhcp-server
INTERFACESv4="eth0"
sudo killall dhcpd && sudo rm /var/run/dhcpd.pid
sudo systemctl restart isc-dhcp-server.service
sudo systemctl status isc-dhcp-server.service -l
monitoring-plugins-basic
- Se non si usa sudo per i check nrpe, ricordarsi di impostare setuid sui check, ad esempio:
sudo chmod +s /usr/lib/nagios/plugins/check_ide_smart
sudo -u nagios /usr/lib/nagios/plugins/check_ide_smart /dev/sda
mysql
- Mysql è stato sostituito da Mariadb. Verificare che i servizi partano.
php
- Si migra a php 7: verificare che non ci siano residui di php5 e che php sia attivato come modulo in apache.
samba
- ATTENZIONE: I DOMAIN CONTROLLER WINDOWS 2000 NON RIESCONO PIÙ A CONTATTARE IL PDC SAMBA
- Di default è disabilitata l'autenticazione ntlm: questo impedisce ai client precedenti a seven (windows xp e windows 2000), di accedere. Per far accedere WINDOWS XP:
sudoedit /etc/samba/smb.conf
ntlm auth = yes
sudo systemctl restart smb.service