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

  1. Nell'host virtuale utilizzato per il mirroring, tutti i gestori di script (php, pl, cgi, py, fcgi etc) devono essere disattivati.
  2. Nell'host virtuale o nella directory utilizzati per il mirroring l'opzione +FollowSymLinks deve essere impostata.
  3. 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.
  4. 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.
  5. 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

  1. Download e decompressione dello zip dello strumento di configurazione mirror Plesk

    # wget https://support.plesk.com/hc/en-us/article_attachments/115002857189/mirrorctl-3.0.1.zip

    # unzip mirrorctlv2.0.1.zip

    # cd mirrorctl

  2. Verifica della disponibilità di versioni del prodotto

    Utilizza il comando show-all-releases per visualizzare i prodotti disponibili e il comando os-list per verificare quali SO sono supportati da un prodotto specifico:

    # ./mirrorctl show-all-releases

    1-show_all_releases

    # ./mirrorctl os-list --release=PLESK_12_0_18

    2-os-list

  3. Selezione delle versioni del prodotto per il mirroring

    Utilizza cfg --add e cfg --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

  4. 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

  5. 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/

3-check

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) o http://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:

  1. 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/

  2. 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/

  3. 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:

  1. 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.
  2. 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 = Archivio di prova

# 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.

  1. 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

  2. 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.

  1. 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

  2. Aggiungi il nuovo SO per una versione del prodotto:

    # ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=deb6.0_i386 --cfg-file=myconfig

  3. 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.

  1. 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

  2. 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).

  1. 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

  2. Prova la nuova versione;
  3. 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

Avvertenza: 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.

  1. 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

  2. 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/

  3. 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

  4. 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

  5. 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

Avvertenza: 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.

Avvertenza: 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.

Avvertenza: se l'opzione --cfg-fileviene specificata scorrettamente, si utilizza il file di configurazione indicato per il comando push.