Migrazione su wikivirtuale
Indice
Obiettivi
Ottenere una macchina wiki (fisica o virtuale) con le seguenti specifiche:
- os ubuntu server 16.04 aggiornato
- IP 192.168.1.6 corrispondente a wiki.tes.mi.it
- compatibile con configurazione dns su 192.168.1.9
- funzionante su mediawiki 1.28 o superiore
- deve consentire la autoregistrazione ma deve bloccare i bot
- deve contenere tutte le estensioni di wiki presenti su wiki.tes.mi.it (o almeno tutte quelle compatibili con 1.28)
- deve contenere tutti i contenuti e tutti gli utenti di wiki.tes.mi.it
- deve essere pulito dai bot
- mantenere funzionante la macchina wikivirtuale attuale, con ip 192.168.1.14 e la documentazione presente
Situazione iniziale
Macchina fisica wiki.tes.mi.it
- 5-2-2015 Carlo Bocchetti - Nuovo server ifs e wiki
Configurazione HD Disk /dev/sda: 250.1 GB, 250059350016 bytes 255 testine, 63 settori/tracce, 30401 cilindri, totale 488397168 settori Unità = settori di 1 * 512 = 512 byte Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificativo disco: 0x000de591
Dispositivo Boot Start End Blocks Id System /dev/sda1 * 2048 471644159 235821056 83 Linux /dev/sda2 471646206 488396799 8375297 5 Esteso /dev/sda5 471646208 488396799 8375296 82 Linux swap / Solaris
avente la seguente configurazione di rete
- The loopback network interface
auto lo iface lo inet loopback
- The primary network interface
auto em1 iface em1 inet static
address 192.168.1.6 netmask 255.255.248.0 network 192.168.0.0 broadcast 192.168.7.255 gateway 192.168.0.70
- dns-nameservers 192.168.0.70
- 22-11-2016 cambiato momentaneamente il ns
dns-nameservers 192.168.1.6 dns-search tes.mi.it
auto em1:0 iface em1:0 inet static
address 192.168.1.9 netmask 255.255.248.0 network 192.168.0.0 broadcast 192.168.7.255
dns-nameservers 192.168.0.70 dns-search tes.mi.it
Su wiki è configurato bind9 con queste configurazioni salienti
include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones";
zone "tes.mi.it" IN {
type master; file "/etc/bind/zones/interno.tes.mi.it"; allow-transfer { any; }; allow-query { any; };
};
zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/zones/1.168.192.in-addr.arpa"; };
options {
directory "/var/cache/bind"; forwarders { 192.168.0.70; };
$ttl 24h
tes.mi.it. IN SOA ns.tes.mi.it. admin.tes.mi.it. (
//il seriale è nel formato aaaammddhh 2017053109 28800 3600 604800 38400 )
tes.mi.it. IN NS ns.tes.mi.it. IN A 192.168.1.9 mail.tes.mi.it. IN MX 10 mail.tes.mi.it. tes.mi.it. IN MX 10 mail.tes.mi.it.
ns IN A 192.168.1.9 www IN A 192.168.1.242 mail IN A 192.168.1.9 wiki IN A 192.168.1.6 cis IN A 192.168.1.47 WikiVirtuale IN A 192.168.1.14 wikiprova IN A 192.168.1.19
$ttl 24h @ IN SOA ns.tes.mi.it. admin.tes.mi.it. ( //il seriale è in formato aaaammddhh
2017053109; 28800; 604800; 604800; 86400
)
@ IN NS ns.
9 IN PTR ns.tes.mi.it.
9 IN PTR mail.tes.mi.it.
242 IN PTR www.tes.mi.it.
6 IN PTR wiki.tes.mi.it.
47 IN PTR cis.tes.mi.it.
14 IN PTR WikiVirtuale.tes.mi.it.
19 IN PTR WikiVirtuale2.tes.mi.it.
Macchina virtuale wikivirtuale.tes.mi.it
Configurazione MV
- 1 processore 64bit
- 2Gb Ram
- hd 8G
- 1 sk rete
# 5-6-2017 Bocchetti Ramon configurazione wikivirtuale base
source /etc/network/interfaces.d/*
- The loopback network interface
auto lo iface lo inet loopback
- configurazione in lab 121
auto enp0s3 iface enp0s3 inet static address 192.168.1.14 netmask 255.255.248.0 network 192.168.0.0 broadcast 192.168.7.255 gateway 192.168.0.70 dns-nameservers 192.168.1.9 dns-search tes.mi.it
Installato e funzionante
- mediawiki 1.28
- autoregistrazione con invio mail
- iniziale produzione di contenuti
- mancano ancora diverse estensioni di wiki
Descrizione sintetica delle azioni da fare
- backup wikivirtuale (salvato)
- assegnare a wikivirtuale l'IP di wiki.tes.mi.it
- attendere e verificare se il sistema è a prova di bot
DOPO verifica positiva (avvenuta) procedere alla migrazione, che si compone di queste fasi
preparazione MvWiki
- aggiungere un disco da 20gb montato nella cartella /dati.
- portare in /dati archivio tar.gz di wiki grosso
- creare cartella /dati/wiki25 e riversarci /var/www/html del wiki con dati e utenti
- creare cartella /dati/wiki28 e riversarci /var/www/html diciamo che stimo facendo un backup del running, usando linguaggio cisco
- verificare che la mv wiki risponda accedendo con il browser, e fare un backup TOTALE della macchina virtuale
adattamento di wiki 1.25 alla nuova versione wiki 1.28
- aggiustare LocalSettings.php in modo che FUNZIONI con wiki 1.28 ma con le estensione di wiki.tes.mi.it (tutte quelle ancora supportate)
- verificare che FUNZIONI sui contenuti wikivirtuale
Ora abbiamo una mvWiki ver 28 con tutte le funzionalità del vecchio wiki
- eventuale backup integrale della macchina virtuale
UserMerge
#2016-06-14 - per UserMerge require_once "$IP/extensions/UserMerge/UserMerge.php"; // By default nobody can use this function, enable for bureaucrat? $wgGroupPermissions['bureaucrat']['usermerge'] = true; // optional: default is array( 'sysop' ) $wgUserMergeProtectedGroups = array( 'groupname' );
WikiEditor
#2016-06-14 aggiunto WikiEditor wfLoadExtension( 'WikiEditor' ); # Con questo codice, WikiEditor è abilitato ma l'utente può disabilitarlo nelle$ $wgDefaultUserOptions['usebetatoolbar'] = 1; $wgDefaultUserOptions['usebetatoolbar-cgd'] = 1; # Mostra l'anteprima e la sezione Modifica $wgDefaultUserOptions['wikieditor-preview'] = 1; # Mostra i pulsanti Pubblica e Annulla in alto a destra $wgDefaultUserOptions['wikieditor-publish'] = 1;
QuestyCaptcha
Da un controllo fatto sul sito, sembra che mancasse qualche elemento.
Ho aggiunto il tutto, tolto i commenti e inserito una nuova domanda.
Ora il codice presente è
#-----------Confirm Edit e QuestyCaptcha------------- wfLoadExtensions([ 'ConfirmEdit', 'ConfirmEdit/QuestyCaptcha' ]); $wgCaptchaClass = 'QuestyCaptcha'; $wgCaptchaQuestions = [ 'Quale è la capitale della Francia?' => 'Parigi', 'Quale è la capitale della Spagna?' => 'MADRID', 'Quale è il nome di questo wiki?' => $wgSitename, 'Quante dita ha una mano?' => [ 5, 'cinque' ], 'Come si chiama il pollice del piede?' => 'alluce', 'Come si chiama la donna amata da Romeo?' => 'Giulietta', 'Quale è il contrario di pari?' => 'dispari' 'Quale è il contrario di pari?' => 'dispari' ]; foreach ( $arr as $key => $value ) { $wgCaptchaQuestions[] = array( 'question' => $key, 'answer' => $value ); } #Configurazionei suggerite nella pagina di QuestyCaptcha $wgMainCacheType = CACHE_ANYTHING; $wgCaptchaTriggers['edit'] = true; $wgCaptchaTriggers['create'] = true; $wgCaptchaTriggers['createtalk'] = true; $wgCaptchaTriggers['addurl'] = true; $wgCaptchaTriggers['createaccount'] = true; $wgCaptchaTriggers['badlogin'] = true; #-----------Fine sezione QuestyCaptcha----------------
Esito: dopo 24 ore circa, sembra che non ci sono nuovi bot, la procedura di registrazione comunque funziona.
Mobile FrontEnd
A differenza del precedente, non è necessario usare mantle.
Procedura seguita, riferimento MobileFrontEnd su Mediawiki
- scaricare l'archivio e decomprimerlo, creando la cartella in extensions con
wget http://extdist.wmflabs.org/dist/extensions/MobileFrontend-REL1_28-a0c8024.tar.gz tar -xzf MobileFrontend-REL1_28-a0c8024.tar.gz -C /var/www/html/extensions/
- aggiunto le seguenti righe a LocalSettings.php
#----2016-06-17-Mobile FrontEnd------- wfLoadExtension( 'MobileFrontend' ); $wgMFAutodetectMobileView = true;
dump e restore del database
- eseguire i comandi di restore
- aggiustare credenziali del database
- fare la manutenzione php e collaudo
Se funziona, abbiamo un wiki.tes.mi.it migrato, sicuro dai nuovi bot ma ancora da pulire
- eventuale backup integrale della macchina virtuale
eliminare utenti fake
Questa operazione richiede solamente tempo, si tratta di usare la funzione unione e cancellazione degli utenti
- collaudo e sistemazione
Ora si dispone di un sistema wiki pulito, aggiornato, funzionante e con tutti i contenuti disponibili
- backup integrale della Mv
- valutare se ripristinare wiki su macchina fisica
Azioni svolte
Fatto copia della cartella di wikivirtuale (Mediawiki_con_LocalSettings) sia in Serverlab121 (cartella anonima) che su server Synology (cartella Ramon)
Scambiato gli ip di wiki.tes.mi.it con quello di wikivirtuale.tes.mi.it
Scambiato il valore della variabile $wgServer nel file LocalSettings.php di wikivirtuale con il valore della stessa variabile dello stesso file in wiki.tes.mi.it
Corretto il redirect nel file /var/www/html/index.html in modo da raggiungere la macchina giusta.
Dalle 15.51 del 6 giugno 2017 attesa della eventuale iscrizione di utenti fake Alle ore 23 ancora nessun utente fake.
Alle ore 08.34 del 7 Giugno 2017 nessun utente fake registrato.
Si procede al backup del database del vecchio wiki.tes.mi.it.
Effettuato dump database (wikidump.sql)
root@hostname:/var/www#mysqldump -u root -p wiki-itsos > wikidump.sql
Effettuato il backup del sito
root@hostname:/var#tar -czvf wikiback.tar.gz www
13/6/2017
1- aggiunto un disco da 20gb montato nella cartella /dati. (Mount automatico di /dev/sdb1 in /dati: rc.local )
2- lanciato backupwiki.sh in /home/doce di vecchio wiki - portato in /dati archivio tar.gz appena creato con backupwiki.sh
3- creato cartella /dati/wiki25 e riversato /var/www/html del wiki con dati e utenti
4- creato cartella /dati/wiki28 e riversato /var/www/html diciamo che stimo facendo un backup del running, usando linguaggio cisco
5- verificare che la mv wiki risponda accedendo con il browser, e fare un backup TOTALE della macchina virtuale
15/6/2017 funzionano entrambi i siti. A questo punto, parte la fase 2:
- aggiustare il LocalSettings e il contenuto del running, in modo da incorporare tutte le funzionalità presenti nel wiki25
- aggiunto UserMerge e WikiEditor sul nuovo wiki
- commentato LocalSettings.php, inserito in particolare una riga "arrivato fin qui". Tutto il codice SOPRA la riga è corretto e controllato. Sotto il codice ancora da inserire o controllare.