La présence d’un miroir local à jour des serveurs Plesk Autoinstall Servers (Plesk avec installation automatique) vous fait économiser temps et bande passante puisque vous n’avez pas à télécharger plusieurs fois les mêmes fichiers ou mettre à jour plusieurs serveurs Plesk. Les miroirs locaux sont disponibles via HTTP et peuvent être indiqués comme sources de téléchargement de packs Plesk pendant l’installation ou la mise à niveau.

Prérequis d’un répertoire de miroirs locaux

  1. Tous les gestionnaires de script (php, pl, cgi, py, fcgi, etc.) doivent être désactivés pour l’hôte virtuel utilisé pour les miroirs.
  2. L’hôte virtuel ou le répertoire utilisé pour les miroirs doit avoir l’option +FollowSymLinks activée.
  3. À moins que d’autres sources ne soient définies, les adresses suivantes doivent être accessibles depuis la machine où le script s’exécute et à partir de la machine de destination :
    • rsync://rsync.autoinstall.plesk.com/autoinstall pour Plesk pour Linux,
    • rsync://autoinstall-win.plesk.com/autoinstall pour Plesk pour Windows.
  4. PHP doit être compilé avec prise en charge des extensions suivantes sur la machine où le script s’exécute (consultez la page http://www.php.net/manual/en/ssh2.installation.php) :
    • ssh2_connect,
    • simplexml,
    • XML DOM.
  5. Les miroirs Plesk pour Windows et Plesk pour Linux ne peuvent se trouver dans les mêmes dossiers. Les miroirs doivent être créés avec des chemins distincts.

Configuration d’un répertoire de miroirs locaux

  1. Téléchargement et décompression de l’Outil de configuration du miroir de Plesk

    # wget https://support.plesk.com/hc/en-us/article_attachments/12388062580887/mirrorctl-3.1.4.zip
    # unzip mirrorctlv2.0.1.zip
    # cd mirrorctl
    
  2. Vérification des versions produit disponibles

    Utilisez la commande show-all-releases pour voir les produits disponibles et la commande os-list pour voir les OS pris en charge par chaque produit :

    # ./mirrorctl show-all-releases
    

    image 76560

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

    image 76562

  3. Sélection des versions des produits pour lesquelles créer un miroir

    Utilisez les commandes cfg --add et cfg --remove pour modifier la liste des versions des produits pour lesquelles créer un miroir :

    # ./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. Enregistrement de la configuration du répertoire de miroirs locaux dans un fichier

    Utilisez la commande cfg --export pour enregistrer la configuration créée dans un fichier :

    # ./mirrorctl cfg --export --path=./
    

    La configuration est enregistrée dans un fichier mirror.xml à l’emplacement indiqué.

    <?xml version="1.0" encoding="UTF-8"?>
    <xml>
        <release name="PLESK_12_0_18" version="12.0.18">
            <os name="cos5_i386"/>
        </release>
    </xml>
    

    Pour charger une configuration enregistrée dans un fichier, utilisez la commande cfg --import :

    # ./mirrorctl cfg --import --cfg-file=./mirror.xml
    
  5. Création du répertoire de miroirs

    Commencez par créer un répertoire pour le miroir :

    # mkdir /var/www/html/mirror/
    # mkdir /var/www/html/mirror_windows/
    

Utilisez ensuite la commande update pour synchroniser le miroir avec le répertoire officiel :

# ./mirrorctl update --path=/var/www/html/mirror/
# ./mirrorctl update --win --path=/var/www/html/mirror_windows/ --cfg-file=./plesk_win_mirror

Note: ce répertoire ne peut être utilisé que pour installer les versions des produits et les OS indiqués dans la configuration des miroirs. Toutes les autres versions ne seront pas disponibles dans ce répertoire pour l’utilitaire autoinstaller.

Vérifiez la liste des versions des produits disponibles dans le répertoire créé :

# ./mirrorctl show-all-releases --src-host=/var/www/html/mirror/
# ./mirrorctl show-all-releases --win --src-host=/var/www/html/mirror_windows/

image 76566

Le répertoire de miroirs locaux peut alors être utilisé pour le processus d’installation et de mise à niveau de Plesk.

Avec un répertoire de miroirs locaux

Vous pouvez utiliser un miroir comme suit :

  • En modifiant la résolution DNS et en configurant l’hôte Web du miroir de manière à ce que https://autoinstall.plesk.com (Plesk pour Linux) ou http://autoinstall-win.plesk.com/ (Plesk pour Windows) pointe vers le miroir.

  • En indiquant l’URL du miroir dans la variable SOURCE du fichier /root/.autoinstallerrc sur la machine où est lancé l’utilitaire autoinstaller.

    [root@container ~]# cat  /root/.autoinstallerrc
    SOURCE=http://uri.of.local.mirror/here/
    
  • En indiquant l’URL du miroir dans l’option --source lorsque l’utilitaire autoinstaller est lancé en mode interactif.

Maintien à jour de répertoires de miroirs locaux distants

L’Outil de configuration du miroir de Plesk peut gérer plusieurs répertoires se trouvant sur le même système de fichiers ou sur des serveurs distants. Pour indiquer des miroirs avec des sources distantes et des destinations distantes, utilisez les options --path et --src-host.

Utilisez --path pour indiquer le miroir de destination distant :

  1. Avec un utilisateur, un mot de passe et un hôte particuliers :

    --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. Avec une autorisation de clés SSH (les clés privées et publiques sont requises) :

    --path=192.168.100.100:/var/www/html/
    

    Si la paire RSA par défaut (id_rsa et id_rsa_pub) de l’utilisateur actuel n’existe pas, la paire DSA par défaut (id_dsa et id_dsa.pub) du dossier $HOME/.ssh/ est utilisée.

    --path=user@mymirror.tld:344/var/www/html/
    
  3. Avec des clés SSH particulières comme options supplémentaires pour l’utilitaire mirrorctl :

    --path=root@mymirror.tld:344/var/www/html/ --private-key=~/.ssh/id_mirror --public-key=~/.ssh/id_mirror.pub
    

Utilisez l’option --src-host pour indiquer le miroir source distant :

  1. Avec rsync via le protocole SSH :

    --src-host=test@192.168.100.100:/var/www/html/test-mirror/
    --src-host=mytestmirror.tld:/var/www/html/test-mirror/
    
    • Dans le cas ci-dessus, il est interdit d’indiquer le mot de passe utilisateur ou le port SSH (22).
    • Dans ce cas, l’option --src-host est utilisée. L’utilisateur lançant l’outil doit avoir les autorisations sur les clés SSH pour pouvoir se connecter à l’hôte indiqué sous l’option --src-host et sous le nom d’utilisateur indiqué via l’option.
    • Si l’option --src-host est utilisée avec l’option --path, l’utilisateur indiqué dans l’option --path doit avoir les autorisations sur les clés SSH pour pouvoir se connecter depuis l’hôte indiqué dans l’option --path à l’hôte indiqué dans l’option --src-host et sous le nom d’utilisateur indiqué via l’option --src-host.
  2. Avec le démon rsync sur l’hôte source :

    --src-host=rsync://mytestmirror.tld:873/testmirror
    

Exemple de configuration 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
}

Exemple 1 : Configuration des mises à jour périodiques du répertoire de miroirs locaux

Objectif : garantir que mon miroir, avec les versions des produits sélectionnées, est à jour.

  1. Créez la configuration du miroir en ajoutant les versions des produits et les systèmes d’exploitation voulus :

    # /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. Configurez l’outil crontab pour la mise à jour automatique du miroir :

    $ 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
    

Exemple 2 : Ajout de nouveaux systèmes d’exploitation

Objectif : ajouter à mon miroir un autre système d’exploitation pour une version de produit spécifique.

  1. Importez la configuration actuelle du répertoire que vous avez créé avec l’utilitaire mirrorctl :

    # ./mirrorctl cfg --import --path=/var/www/html/mirror/ --cfg-file=myconfig
    
  2. Ajoutez le nouvel OS pour la version produit :

    # ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=deb6.0_i386 --cfg-file=myconfig
    
  3. Synchronisez le miroir :

    # ./mirrorctl update --path=/var/www/html/mirror/ --cfg-file=myconfig
    

Exemple 3 : Téléchargement d’un OS/d’une version spécifique

Objectif : télécharger sur mon miroir un OS particulier pour une version produit spécifique, à partir du répertoire officiel, sans télécharger un miroir de version/d’OS.

  1. Générez un fichier de configuration ne contenant que l’OS/les versions des produits voulus :

    # ./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. Téléchargez les OS indiqués dans un répertoire existant avec la commande push :

    # ./mirrorctl push --path=/var/www/html/mirror/ --cfg-file==./temp-config
    

Exemple 4 : Création d’un miroir pour tester de nouvelles versions de produits

Objectif : créer un miroir pour tester une nouvelle version produit, tester cette version et n’envoyer que la version testée (sans les dernières mises à jour qui n’ont pas été testées) au répertoire principal.

  1. Créez un miroir de test pour tous les OS de la nouvelle version produit :

    # ./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. Testez la nouvelle version :

  3. Envoyez la version produit complète au répertoire principal :

    # ./mirrorctl push --src-host=/var/www/html/test-mirror/ --path=/var/www/html/mirror/ --cfg-file=./test-config
    

Avertissement: si l’option --src-host n’est pas utilisée, la nouvelle version produit est envoyée depuis le répertoire officiel et peut différer de celle que vous avez testée.

Exemple 5 : Création d’un miroir de révisions de produits pour de nouveaux OS

Objectif : créer un miroir de test avec une liste définie d’OS pour les versions de produits disposant déjà de miroir avec les dernières mises à jour, tester ces OS et envoyer certains des OS testés au répertoire principal.

  1. Créez un miroir test disposant de plusieurs OS pour la version de produit sélectionnée.

    # ./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. Obtenez la liste des révisions de produits et OS disponibles à partir du miroir de test créé plus haut :

    # ./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. Générez un nouveau fichier de configuration ne contenant que ces révisions et les OS du miroir de test que vous souhaitez ajouter au miroir principal :

    # ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_i386 --src-host=/var/www/html/test-mirror/ --cfg-file=push.xml
    
  4. Vérifiez le fichier de configuration pour vous assurer de la disponibilité des révisions/OS dans le répertoire de test :

    # ./mirrorctl cfg --check --src-host=/var/www/html/test-mirror/ --cfg-file=push.xml
    
  5. Depuis le miroir de test, envoyez les révisions et les OS sélectionnés au répertoire principal :

    # ./mirrorctl push --src-host=/var/www/html/test-mirror/ --path=/var/www/html/mirror/ --cfg-file=push.xml
    

Avertissement: si l’option --src-host n’est pas utilisée, la nouvelle version produit est envoyée depuis le répertoire officiel et peut différer de celle que vous avez testée.

Avertissement: si l’option --cfg-file n’est pas indiquée, le fichier de configuration par défaut BUILD/config.xml (relatif au répertoire contenant l’outil) est utilisé. C’est-à-dire que les versions/OS de ce fichier de configuration seront envoyées au répertoire principal.

Avertissement: si l’option --cfg-file est définie de manière incorrecte, le fichier de configuration indiqué pour la commande push est utilisé.