Préliminaires

Spécifications de la nouvelle VM:

  • Xen
  • 1 GB de RAM
  • 10 GB d'espace disque
  • Architecture: amd64

Installation

Grésille nous a fourni un accès à un xen-shell configuré avec le debian-installer. Une fois l'installation effectuée, on les a prévenus afin de pouvoir démarrer sur le disque dur plutôt que sur l'installeur.

Partitionnement initial :

  • /boot : 256 Mo
  • LVM (bulbe) :
    • / : 5 Go
    • swap : 1 Go
    • /srv : 3 Go
    • espace libre : 1 Go

Configuration réseau

On corrige /etc/network/interfaces pour y mettre la configuration conseillée :

auto eth0
iface eth0 inet static
        address 91.216.110.49
        netmask 255.255.255.255
        pre-up ip -4 addr flush dev $IFACE
        up   ip route add 91.216.110.1/32 dev $IFACE || true
        down ip route del 91.216.110.1/32 dev $IFACE || true
        up   ip route add default via 91.216.110.1 || true
        down ip route del default via 91.216.110.1 || true

iface eth0 inet6 static
        address 2001:912:400:106::49
        netmask 64
        gateway 2001:912:400:106::1
        pre-up ip -6 addr flush dev $IFACE
        #up   ip -6 addr add 2001:912:410:37:x:x:x:x
        #down ip -6 addr add 2001:912:410:37:x:x:x:x

Réinstallation des paquets

On remet la liste des paquets telle qu'installée précédemment :

$ ssh 91.224.149.171 dpkg --get-selections > /tmp/selections
$ ssh 91.224.149.171 apt-mark showauto > /tmp/auto
$ ssh 91.224.149.171 apt-mark showmanual > /tmp/manual
$ scp /tmp/selections /tmp/auto /tmp/manual 91.216.110.49:/tmp
new-bulbe$ sudo apt-get instal dselect
new-bulbe$ sudo dselect update
new-bulbe$ sudo dpkg --set-selections < /tmp/selections
new-bulbe$ sudo debconf-set-selections < /tmp/debconf
new-bulbe$ sudo apt-get dselect-upgrade
new-bulbe$ sudo apt-mark auto $(cat /tmp/auto)
new-bulbe$ sudo apt-mark manual $(cat /tmp/manual)
new-bulbe$ rm /tmp/selections /tmp/debconf /tmp/auto/manual

Migration de la configuration

$ ssh 91.224.149.171
old-bulbe$ sudo tar -C /etc -cf /tmp/git.tar .git
$ scp 91.224.149.171:/tmp/git.tar /tmp/
$ scp /tmp/git.tar 91.216.110.49:/tmp/
new-bulbe$ sudo tar -C /etc -xf /tmp/git.tar

Ensuite, on peut aller jouer avec Git dans /etc afin de restaurer la configuration précédente.

Copie des données

new-bulbe$ sudo -E rsync --rsync-path="sudo rsync" -aAXHv --delete lunar@91.224.149.171:/usr/local/bin/ /usr/local/bin/
new-bulbe$ sudo -E rsync --rsync-path="sudo rsync" -aAXHv --delete lunar@91.224.149.171:/usr/local/share/ /usr/local/share/
new-bulbe$ sudo -E rsync --rsync-path="sudo rsync" -aAXHv --delete lunar@91.224.149.171:/srv/ /srv/
new-bulbe$ sudo -E rsync --rsync-path="sudo rsync" -aAXHv --delete lunar@91.224.149.171:/home/ /home/
new-bulbe$ sudo -E rsync --rsync-path="sudo rsync" -aAXHv --delete lunar@91.224.149.171:/root/ /root/
new-bulbe$ sudo -E rsync --rsync-path="sudo rsync" -aAXHv --delete lunar@91.224.149.171:/var/backups/ /var/backups/
new-bulbe$ sudo -E rsync --rsync-path="sudo rsync" -aAXHv --delete lunar@91.224.149.171:/var/cache/awstats/ /var/cache/awstats/
new-bulbe$ sudo -E rsync --rsync-path="sudo rsync" -aAXHv --delete lunar@91.224.149.171:/var/cache/etckeeper/ /var/cache/etckeeper/
new-bulbe$ sudo -E rsync --rsync-path="sudo rsync" -aAXHv --delete lunar@91.224.149.171:/var/cache/git/ /var/cache/git/
new-bulbe$ sudo -E rsync --rsync-path="sudo rsync" -aAXHv --delete lunar@91.224.149.171:/var/cache/request-tracker4/ /var/cache/request-tracker4/
new-bulbe$ sudo -E rsync --rsync-path="sudo rsync" -aAXHv --delete lunar@91.224.149.171:/var/lib/etckeeper/ /var/lib/etckeeper/
new-bulbe$ sudo -E rsync --rsync-path="sudo rsync" -aAXHv --delete lunar@91.224.149.171:/var/lib/gems/ /var/lib/gems/
new-bulbe$ sudo -E rsync --rsync-path="sudo rsync" -aAXHv --delete lunar@91.224.149.171:/var/lib/mailman/ /var/lib/mailman/
new-bulbe$ sudo -E rsync --rsync-path="sudo rsync" -aAXHv --delete lunar@91.224.149.171:/var/lib/spamassassin/ /var/lib/spamassassin/
new-bulbe$ sudo -E rsync --rsync-path="sudo rsync" -aAXHv --delete lunar@91.224.149.171:/var/log/ /var/log/
new-bulbe$ sudo rm -r /var/lib/postgresql ; sudo ln -s /srv/postgresql /var/lib/postgresql
new-bulbe$ sudo rm -r /var/lib/schleuder ; sudo ln -s /srv/schleuder /var/lib/schleuder
new-bulbe$ sudo rm -r /var/lib/request-tracker4 ; sudo ln -s /srv/request-tracker4 /var/lib/request-tracker4
new-bulbe$ sudo rm -r /var/lib/awstats ; sudo ln -s /srv/awstats/data /var/lib/awstats

Divers

Ne pas oublier de réappliquer le patch sur Mailman.

Bascule

  1. On éteint tous les services sur l'ancienne machine, sauf SSH et BIND.
  2. On modifie la configuration du DNS et on recharge BIND.
  3. On resynchronise une dernière fois les données (la nouvelle zone DNS aussi).
  4. On allume les services sur la nouvelle machine.
  5. On modifie l'adresse IP des zones DNS chez le registrar.