Migrazione da NethService/SME Server

La migrazione è il processo che consente di convertire una macchina per SME Server/NethService (sorgente) in un NethServer (destinazione). Il processo può essere tramite backup o utilizzando rsync.

Nota

Nessun template custom sarà migrato durante il processo di migrazione. Controllare i nuovi template prima di copiare frammenti personalizzati dal vecchio backup.

Avvertimento

Prima di eseguire la procedura di migrazione, leggere attentamente tutte le sezioni di questo capitolo.

Account provider

E” necessario configurare un provider account prima di avviare la procedura di migrazione.

  • Se il sistema originale era collegato ad un dominio Active Directory (il ruolo Samba era ADS), configurare un Active Directory remoto come account provider.
  • Se il sistema originale era un Controller di dominio NT (Samba con ruole PDC), installare un Active Directory locale come provider account.
  • Se l’accesso alle Cartelle Condivise nella destinazione richiede l’autenticazione utente, utilizzare un Active Directory locale come provider account.
  • In ogni altro caso, installare un LDAP locale come provider account.

Se si sceglie un account provider di tipo Active Directory locale, ricordarsi di configurare completamente ed avviare il DC prima di eseguire l’evento migration-import. Vedi account-provider.

Inoltre i seguenti account vengono ignorati dalla procedura di migrazione perché sono già forniti da Active Directory:

  • administrator
  • guest
  • krbtgt

Email

Prima di mettere in produzione NethServer, è necessario fare qualche valutazione relativa alla rete ed alla configurazione dei client mail esistenti: quali porte siano utilizzate, se SMTPAUTH e TLS siano abilitati. Fare riferimento alle sezioni email_clients e Politiche SMTP di invio speciali per ulteriori informazioni.

Nella migrazione di un server di posta, il server di origine può rimanere in produzione anche dopo che il backup è stato eseguito e nuovi messaggi di posta continuano ad essere consegnati finché non viene spento definitivamente.

Uno script rsync di aiuto è fornito dal pacchetto nethserver-mail-server. Va eseguito sulla destinazione e serve a sincronizzare le caselle di posta di destinazione con il server di origine:

Usage:
    /usr/share/doc/nethserver-mail-server-<VERSION>/sync_maildirs.sh [-h] [-n] [-p] -s IPADDR
        -h          help message
        -n          dry run
        -p PORT     ssh port on source host (default 22)
        -s IPADDR   rsync from source host IPADDR
        -t TYPE     source type: sme8 (default), ns6

Il server di origine con indirizzo IPADDR deve essere accessibile dall’utente root, mediante ssh con autenticazione a chiave pubblica.

Apache

La configurazione di cifratura SSL non verrà migrata automaticamente perché il sistema sorgete adotta di default un sistema di cifrature debole. Per effettuare manualmente la migrazione di tale configurazione andranno eseguiti i seguenti comandi:

MIGRATION_PATH=/var/lib/migration
config setprop httpd SSLCipherSuite $(db $MIGRATION_PATH/home/e-smith/db/configuration getprop modSSL CipherSuite)
signal-event nethserver-httpd-update

Ibay

Le ibay sono state sostituite dalle Cartelle condivise. I protocolli supportati per accedere alle Cartelle condivise sono:

  • SFTP, messo a disposizione dal demone sshd
  • il protocollo di condivisione file SMB, tipico delle infrastrutture Windows, implementato attraverso Samba

Avvertimento

Leggere attentamente la sezione Cartelle condivise del capitolo Aggiornamento da NethServer 6, le credenziali per la connessione potrebbero variare a seguito dell’upgrade a NethServer 7.

A partire da NethServer 7, le Cartelle condivise non possono più essere esposte via HTTP. Successivamente all’evento migration-import le vecchie ibay potranno essere migrate rispettando le seguenti regole generali:

  1. Se l’ibay aveva un virtual host associato, si dovrà installare il modulo «Web server» dalla pagina Software center. Sarà poi necessario copiare il contenuto della ibay nella directory root del virtual host. Fare riferimento a Virtual hosts.

  2. Se l’accesso alla ibay era limitato da una password (ad esempio per condividere i contenuti con un gruppo di persone attraverso internet), sarà possibile replicare questa configurazione dalla pagina Virtual hosts . E” anche possibile pensare di sostituire la ibay utilizzata in questa configurazione con il modulo Nextcloud.

  3. Se il contenuto della ibay era accessibile attraverso un URL come http://<IP>/ibayname il modo più semplice per mantenere la funzionalità sarà quello di spostare il percorso nella radice di Apache:

    mv -iv /var/lib/nethserver/ibay/ibayname /var/www/html/ibayname
    chmod -c -R o+rX /var/www/html/ibayname
    db accounts delete ibayname
    signal-event nethserver-samba-update
    

Dopo la migrazione, le ibay manterranno un profilo retro-compatibile. Per sfruttare le nuove funzionalità, incluso Samba Audit, la configurazione delle ibay deve essere passata al nuovo profilo. Da riga di comando eseguire:

db accounts setprop ibay_name SmbProfileType default
signal-event ibay-mody ibay_name

In cui ibay_name è il nome della ibay da configurare.

Migrazione da backup

  1. Sulla macchina origine, effettuare un backup completo e spostarlo sul server destinazione.

  2. Sul server destinazione, installare NethServer 7 utilizzando la ISO più recente, e, una volta registrato, installare tutti gli aggiornamenti per il core disponibili

  3. Sul server destinazione, installare tutti i moduli che implementano i servizi presenti sulla macchina origine.

  4. Estrarre il backup in una directory; per esempio, creare la directory /var/lib/migration.

  5. Scatenare l’evento migration-import nell’host di destinazione:

    signal-event migration-import /var/lib/migration
    

    Questa operazione potrebbe richiedere molti minuti.

  6. Consultare il log di sistema file:/var/log/messages ed assicurarsi che non si siano verificati errori:

    grep -E '(FAIL|ERROR)' /var/log/messages
    

Migrazione con rsync

Questa procedura è più rapida rispetto a quella effettuata a partire da un backup.

Prima di iniziare assicurarsi di avere:

  • una installazione NethService/SME attiva, che chiameremo server origine o server sorgente
  • una installazione di NethServer 7 attiva con tutti gli update più recenti installati e con a disposizione lo stesso spazio su disco del server sorgente, che chiameremo server destinazione
  • una connessione di rete attiva tra i due server

Assicurarsi che il server sorgente consenta il login all’utente root con password ed attraverso una chiave SSH.

Sincronizzazione dei file

Lo script di sincronizzazione copia tutti i dati utilizzando rsync su SSH. I file vengono salvati nel percorso /var/lib/migration. Se il server di destinazione non dispone di chiavi SSH, lo script creerà anche una coppia di chiavi RSA e ne copierà la chiave pubblica nel server di origine. Tutte le directory escluse dai dati di backup non verranno sincronizzate.

Nella macchina di destinazione, eseguire il seguente comando:

screen rsync-migrate <source_server_name> [ssh_port]

In cui

  • source_server_name è il nome host o IP del server origine
  • ssh_port è la porta SSH del server origine (la porta di default è la 22)

Esempio:

screen rsync-migrate mail.nethserver.org 2222

Quando richiesto, inserire la password di root del server origine quindi prepararsi un caffè e aspettare con pazienza.

Lo script non eseguirà alcuna azione sulla macchina di origine e può essere rilanciato più volte.

Sincronizzazione e migrazione

Se impartito con l’opzione -m, rsync-migrate eseguirà una sincronizzazione finale e l’aggiornamento della macchina destinazione.

Prima di eseguire lo step finale di migrazione, installare tutti i pacchetti che coprono le stesse funzionalità del server d’origine.

Esempio:

screen rsync-migrate -m mail.nethserver.org 2222

Lo script si incaricherà di:

  • fermare ogni servizio sulla macchina origine (ad eccetto di SSH)
  • eseguire l’evento di pre-backup sulla macchina origine
  • sincronizzare tutti i dati rimanenti
  • eseguire l’evento migration-import sulla macchina destinazione

Al termine della procedura verificare la presenza di eventuali errori in /var/log/messages:

grep -E '(FAIL|ERROR)' /var/log/messages