Mirror dei server Plesk con installazione automatica
Utilizzando un mirror locale dei server Plesk con installazione automatica puoi evitare di perdere molto tempo e traffico scaricando sempre gli stessi file, al momento di installare o aggiornare vari server Plesk. I mirror locali sono disponibili tramite HTTP e possono essere impostati come origine per il download dei pacchetti di Plesk durante l’installazione o l’aggiornamento.
Prerequisiti per un archivio mirror locale
- Nell’host virtuale utilizzato per il mirroring, tutti i gestori di script (php, pl, cgi, py, fcgi etc) devono essere disattivati.
- Nell’host virtuale o nella directory utilizzati per il mirroring l’opzione
+FollowSymLinks
deve essere impostata. - A meno che non vengano specificate altre origini, quanto segue deve risultare accessibile dalla macchina in cui viene eseguito lo script e dalla macchina di destinazione:
-
rsync://rsync.autoinstall.plesk.com/autoinstalll
per Plesk per Linux, -
rsync://autoinstall-win.plesk.com/autoinstall
per Plesk per Windows.
-
- Il PHP deve essere compilato con il supporto delle seguenti estensioni sulla macchina dove viene eseguito lo script (vedere http://www.php.net/manual/en/ssh2.installation.php):
- ssh2_connect,
- simplexml,
- XML DOM.
- I mirror di Plesk per Windows e Plesk per Linux non possono trovarsi nelle stesse cartelle. I mirror devono essere creati in percorsi separati.
Configurazione di un archivio mirror locale
-
Download e decompressione dello zip dello strumento di configurazione mirror Plesk
# wget https://support.plesk.com/hc/en-us/article_attachments/360041549033/mirrorctl-3.1.0.zip # unzip mirrorctlv2.0.1.zip # cd mirrorctl
-
Verifica della disponibilità di versioni del prodotto
Utilizza il comando
show-all-releases
per visualizzare i prodotti disponibili e il comandoos-list
per verificare quali SO sono supportati da un prodotto specifico:# ./mirrorctl show-all-releases
# ./mirrorctl os-list –release=PLESK_12_0_18
-
Selezione delle versioni del prodotto per il mirroring
Utilizza
cfg --add
ecfg --remove
per modificare la lista di versioni del prodotto di cui eseguire il mirroring:# ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_i386 # ./mirrorctl cfg --add --win --release=PANEL_12_0_18_WIN --cfg-file=./plesk_win_mirror
-
Salvataggio della configurazione dell’archivio mirror locale in un file
Utilizza
cfg --export
per salvare la configurazione creata in un file:# ./mirrorctl cfg --export --path=./
La configurazione verrà salvata in un file
mirror.xml
nel percorso specificato.<?xml version="1.0" encoding="UTF-8"?> <xml> <release name="PLESK_12_0_18" version="12.0.18"> <os name="cos5_i386"/> </release> </xml>
Per caricare una configurazione salvata in un file, utilizza
cfg --import
:# ./mirrorctl cfg --import --cfg-file=./mirror.xml
-
Creazione dell’archivio mirror
Innanzitutto, crea una directory per il mirror:
# mkdir /var/www/html/mirror/ # mkdir /var/www/html/mirror_windows/
Quindi utilizza il comando
update
per sincronizzare il mirror con l’archivio ufficiale:# ./mirrorctl update --path=/var/www/html/mirror/ # ./mirrorctl update --win --path=/var/www/html/mirror_windows/ --cfg-file=./plesk_win_mirror
Nota: questo archivio è utilizzabile per installare esclusivamente le versioni del prodotto e i SO specificati nella configurazione del mirror. Tutte le altre versioni non saranno disponibili in questo archivio per l’utility autoinstaller
.
Verifica la lista di versioni del prodotto disponibili nell’archivio creato:
# ./mirrorctl show-all-releases --src-host=/var/www/html/mirror/
# ./mirrorctl show-all-releases --win --src-host=/var/www/html/mirror_windows/
Ora l’archivio mirror locale può essere utilizzato nel processo di installazione e aggiornamento di Plesk.
Uso di un archivio mirror locale
Un mirror è utilizzabile in uno dei seguenti modi:
-
modificando la risoluzione del DNS e impostando l’host web mirror in modo che
https://autoinstall.plesk.com
(Plesk per Linux) ohttp://autoinstall-win.plesk.com/
(Plesk per Windows) punti verso il mirror; -
specificando l’URL del mirror nella variabile
SOURCE
del file/root/.autoinstallerrc
nella macchina dove viene avviato l’autoinstaller;[root@container ~]# cat /root/.autoinstallerrc SOURCE=http://uri.of.local.mirror/here/
-
specificando l’URL del mirror nell’opzione
--source
al momento di avviare l’autoinstaller in modalità interattiva.
Manutenzione di archivi mirror remoti
Lo strumento di configurazione mirror Plesk è in grado di gestire archivi ubicati nello stesso file system o in server remoti. Per specificare i mirror remoti di origine e destinazione si utilizzano le opzioni --path
e --src-host
.
--path
consente di specificare il mirror di destinazione remoto:
-
Utilizzando un utente, una password e un host particolari:
--path=user:UserSecurePassword@mymirror.tld:344/var/www/html/ --path=user:UserSecurePassword@192.168.100.100:22/var/www/html/ --path=root:RootSecurePassword@localhost:/var/www/html/
-
Utilizzando l’autenticazione tramite chiavi SSH (sono necessarie sia la chiave pubblica che quella privata):
--path=192.168.100.100:/var/www/html/
Se la coppia RSA predefinita (id_rsa e id_rsa_pub) per l’utente corrente non esiste, viene utilizzata la coppia DSA predefinita (id_dsa e id_dsa.pub) dalla cartella
$HOME/.ssh/
.--path=user@mymirror.tld:344/var/www/html/
-
Utilizzando chiavi SSH particolari come opzioni aggiuntive per l’utility mirrorctl:
--path=root@mymirror.tld:344/var/www/html/ --private-key=~/.ssh/id_mirror --public-key=~/.ssh/id_mirror.pub
--src-host
consente di specificare il mirror di origine remoto:
-
Utilizzando rsync tramite il protocollo SSH:
--src-host=test@192.168.100.100:/var/www/html/test-mirror/ --src-host=mytestmirror.tld:/var/www/html/test-mirror/
- Nel caso di cui sopra non è consentito specificare la password dell’utente o la porta SSH (22).
- Se si ricorre all’opzione
--src-host
, l’utente che avvia lo strumento deve disporre dell’autorizzazione alla generazione di chiavi SSH per potersi connettere all’host specificato nell’opzione--src-host
e nell’utente indicato mediante tale opzione. - Se si ricorre all’opzione
--src-host
insieme all’opzione--path
, di nuovo l’utente specificato nell’opzione--path
deve disporre dell’autorizzazione alla generazione di chiavi SSH per potersi connettere dall’host indicato nell’opzione--path
all’host dell’opzione--src-host
e dell’utente indicato mediante tale opzione.
-
Uso del daemon rsync nell’host di origine:
--src-host=rsync://mytestmirror.tld:873/testmirror
Esempio di configurazione rsync:
# head /etc/rsyncd.conf
[testmirror]
path = /var/www/html/test-mirror/
comment = Test repository
# cat /etc/xinetd.d/rsync
service rsync
{
# disable = yes
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
Esempio 1: impostazione di aggiornamenti periodici per l’archivio mirror locale
Obiettivo: assicurarsi che il mirror con versioni del prodotto selezionate rimanga aggiornato.
-
Crea la configurazione del mirror aggiungendo le versioni del prodotto e i sistemi operativi necessari:
# /home/user/mirrorctl/mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_i386 --cfg-file=/var/www/html/mirror/myconfig.xml # /home/user/mirrorctl/mirrorctl cfg --add --release=PLESK_12_0_18 --os=rhel5_i386 --cfg-file=/var/www/html/mirror/myconfig.xml # /home/user/mirrorctl/mirrorctl cfg --add --release=PLESK_11_5_30 --os=cos5_i386 --cfg-file=/var/www/html/mirror/myconfig.xml # /home/user/mirrorctl/mirrorctl cfg --add --win --release=PANEL_12_0_18_WIN --cfg-file=/var/www/html/mirror/windows_myconfig.xml
-
Configura crontab in modo che aggiorni il mirror automaticamente:
$ crontab -l # m h dom mon dow command 59 23 * * * cd /home/user/mirrorctl/ && ./mirrorctl update --path=/var/www/html/mirror/ --cfg-file=/var/www/html/mirror/myconfig.xml > ./mirror-cron.log 2>&1 59 22 * * * cd /home/user/mirrorctl/ && ./mirrorctl update --win --path=/var/www/html/mirror_windows/ --cfg-file=/var/www/html/mirror/windows_myconfig.xml > ./mirror-cron-win.log 2>&1
Esempio 2: aggiunta di nuovi sistemi operativi
Obiettivo: aggiungere al mirror un altro sistema operativo per una versione del prodotto specifica.
-
Importa la configurazione corrente dell’archivio che hai creato in precedenza mediante l’utility mirrorctl:
# ./mirrorctl cfg --import --path=/var/www/html/mirror/ --cfg-file=myconfig
-
Aggiungi il nuovo SO per una versione del prodotto:
# ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=deb6.0_i386 --cfg-file=myconfig
-
Sincronizza il mirror:
# ./mirrorctl update --path=/var/www/html/mirror/ --cfg-file=myconfig
Esempio 3: download di un SO/versione particolare
Obiettivo: scaricare nel mirror dall’archivio ufficiale un SO particolare per una determinata versione del prodotto, senza scaricare altre versioni/SO mirror.
-
Genera un file di configurazione contenente soltanto i SO/le versioni del prodotto da scaricare:
# ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_i386 --cfg-file=./temp-config # ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_x86_64 --cfg-file=./temp-config
-
Scarica i SO specificati in un archivio esistente utilizzando il comando push:
# ./mirrorctl push --path=/var/www/html/mirror/ --cfg-file==./temp-config
Esempio 4: creazione di un mirror per il test di nuove versioni del prodotto
Obiettivo: creare un mirror di prova per una nuova versione del prodotto, testare tale versione e caricare nell’archivio principale soltanto la versione testata (senza gli aggiornamenti ufficiali più recenti, non ancora verificati).
-
Crea un mirror di prova per tutti i SO della nuova versione del prodotto:
# ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=all --cfg-file=./test-config # ./mirrorctl update --path=/var/www/html/test-mirror/ --cfg-file=./test-config
-
Prova la nuova versione;
-
Carica l’intera versione del prodotto nell’archivio principale:
# ./mirrorctl push --src-host=/var/www/html/test-mirror/ --path=/var/www/html/mirror/ --cfg-file=./test-config
Avvertimento: se non si utilizza l’opzione --src-host
, la nuova versione del prodotto viene caricata dall’archivio ufficiale e potrebbe essere diversa da quella testata.
Esempio 5: creazione di un mirror per il test di release del prodotto per nuovi SO
Obiettivo: creare un mirror di prova con una lista di SO particolari per versioni del prodotto già sottoposte a mirroring con gli aggiornamenti più recenti, testare tali SO e infine caricarne alcuni nell’archivio principale.
-
Crea un mirror di prova dove saranno disponibili vari SO per la versione selezionata del prodotto:
# ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_i386 --cfg-file=./test-config # ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_x86_64--cfg-file=./test-config # ./mirrorctl update --path=/var/www/html/test-mirror/ --cfg-file=./test-config
-
Ottieni la lista di release del prodotto disponibili e dei relativi SO dal mirror di prova creato sopra:
# ./mirrorctl show-all-releases --src-host=/var/www/html/test-mirror/ # ./mirrorctl os-list --release=PLESK_12_0_18 --src-host=/var/www/html/test-mirror/
-
Genera un nuovo file di configurazione contenente solo le release e i SO provenienti dal mirror di prova, che desideri aggiungere al mirror principale:
# ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_i386 --src-host=/var/www/html/test-mirror/ --cfg-file=push.xml
-
Verifica il file di configurazione creato rispetto alla disponibilità delle release/dei SO nell’archivio di prova:
# ./mirrorctl cfg --check --src-host=/var/www/html/test-mirror/ --cfg-file=push.xml
-
Carica release e SO selezionati dal mirror di prova all’archivio principale:
# ./mirrorctl push --src-host=/var/www/html/test-mirror/ --path=/var/www/html/mirror/ --cfg-file=push.xml
Avvertimento: se non si utilizza l’opzione --src-host
, la nuova versione del prodotto viene caricata dall’archivio ufficiale e potrebbe essere diversa da quella testata.
Avvertimento: se non si specifica l’opzione --cfg-file
, viene utilizzato il file di configurazione predefinito BUILD/config.xml
(relativo alla directory in cui si trova lo strumento). In altri termini, solo le versioni/i SO del file di configurazione vengono caricati nell’archivio principale.
Avvertimento: se l’opzione --cfg-file
viene specificata scorrettamente, si utilizza il file di configurazione indicato per il comando push.