Mantener un mirror local de servidores de instalación automática de Plesk le ayudará a no desperdiciar tiempo ni tráfico descargando los mismos archivos una y otra vez cuando instale o actualice múltiples servidores Plesk. Los mirrors locales están disponibles mediante HTTP y pueden especificarse como orígenes para la descarga de paquetes de Plesk durante el proceso de instalación o actualización.

Requisitos iniciales para el repositorio de un mirror local

  1. El host virtual usado para la creación del mirror debería tener todos los gestores de script (php, pl, cgi, py, fcgi, etc) deshabilitados
  2. El directorio o host virtual usado para la creación del mirror debería tener configurada la opción +FollowSymLinks
  3. A menos que se especifiquen otros orígenes, debería ser posible acceder a lo siguiente desde la máquina donde se ejecuta el script y desde la máquina de destino:
    • rsync://rsync.autoinstall.plesk.com/autoinstall en el caso de Plesk para Linux
    • rsync://autoinstall-win.plesk.com/autoinstall en el caso de Plesk para Windows.
  4. PHP debería estar compilado con soporte para las extensiones detalladas a continuación en la máquina donde se ejecuta el script. Si desea más información al respecto, visite http://www.php.net/manual/en/ssh2.installation.php:
    • ssh2_connect,
    • simplexml,
    • XML DOM.
  5. Los mirrors Plesk para Windows y Plesk para Linux no pueden estar en las mismas carpetas. Estos deben crearse en rutas distintas.

Configuración del repositorio de un mirror local

  1. Descargue y descomprima la herramienta Plesk Mirror Setup

    # wget https://support.plesk.com/hc/en-us/article_attachments/12388062580887/mirrorctl-3.1.4.zip
    # unzip mirrorctlv2.0.1.zip
    # cd mirrorctl
    
  2. Compruebe las versiones del producto disponibles

    Use el comando show-all-releases para ver los productos disponibles y el comando os-list para ver los SOs soportados por el producto en cuestión:

    # ./mirrorctl show-all-releases
    

    image 76560

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

    image 76562

  3. Seleccione las versiones para las que desea crear el mirror

    Use cfg --add y cfg --remove para editar la lista de versiones para las que deben crearse mirrors:

    # ./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. Guarde la configuración del repositorio del mirror local en un archivo

    Use cfg --export para guardar la configuración creada en un archivo:

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

    La configuración se guardará en un archivo mirror.xml en la ubicación especificada.

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

    Si desea cargar una configuración guardada desde un archivo, ejecute cfg --import:

    # ./mirrorctl cfg --import --cfg-file=./mirror.xml
    
  5. Cree el repositorio del mirror

    En primer lugar, cree un directorio para el mirror:

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

Ahora, use el comando update para sincronizar el mirror con el repositorio oficial:

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

Nota: este repositorio sólo puede usarse para instalar las versiones del producto y SOs especificados en la configuración del mirror. Todas las demás versiones no estarán disponibles en este repositorio para la utilidad autoinstaller.

Compruebe la lista de versiones disponibles en el repositorio creado:

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

image 76566

Ahora el repositorio del mirror local puede ser usado en el proceso de instalación y actualización de Plesk.

Uso del repositorio de un mirror local

Un mirror puede utilizarse de cualquiera de las siguientes formas:

  • cambiando la resolución DNS y configurando el host web del mirror para que https://autoinstall.plesk.com (en el caso de Plesk para Linux) o http://autoinstall-win.plesk.com (en el caso de Plesk para Windows) apunte al mirror;

  • especificando la URL al mirror en la variable SOURCE del archivo /root/.autoinstallerrc en la máquina donde se inicia el autoinstaller;

    [root@container ~]# cat  /root/.autoinstallerrc
    SOURCE=http://uri.of.local.mirror/here/
    
  • especificando la URL del mirror en la opción --source cuando se inicia el autoinstaller en modo interactivo.

Mantenimiento de repositorios mirror remotos

La herramienta Plesk Mirror Setup puede gestionar repositorios presentes en el mismo sistema de archivos, así como en servidores remotos. Para especificar los mirrors remotos de origen y de destino se usan las opciones --path y --src-host.

Use --path para especificar el mirror remoto de destino:

  1. Usando un usuario particular, contraseña y host:

    --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. Usando autorización por claves SSH (requiere tanto claves públicas como privadas):

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

    El usuario actual y el par RSA por omisión (id_rsa & id_rsa_pub) o si el par RSA no existe, entonces se usará el par DSA predeterminado (id_dsa & id_dsa.pub) de la carpeta $HOME/.ssh/.

    --path=user@mymirror.tld:344/var/www/html/
    
  3. Usando claves SSH particulares como opciones adicionales para la utilidad mirrorctl:

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

Use --src-host para especificar el mirror remoto de origen:

  1. Usando rsync mediante el protocolo SSH:

    --src-host=test@192.168.100.100:/var/www/html/test-mirror/
    --src-host=mytestmirror.tld:/var/www/html/test-mirror/
    
    • En este caso no se puede especificar una contraseña de usuario o puerto SSH (22).
    • En caso de utilizar la opción --src-host, el usuario que inicie la herramienta debe tener configurada la autorización mediante claves SSH para así poder conectarse al host especificado en la opción --src-host y bajo el usuario especificado mediante dicha opción.
    • Si la opción --src-host se usa junto con la opción --path, de nuevo es necesario que el usuario especificado en la opción --path tenga configurada la autorización mediante claves SSH para que así pueda conectarse desde el host especificado en la opción --path al host especificado bajo la opción --src-host  y bajo el usuario especificado en la opción --src-host.
  2. Usando el daemon rsync en el host de origen:

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

Ejemplo de configuración 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
}

Ejemplo 1: Configuración de actualizaciones periódicas para el repositorio del mirror local

Objetivo: Cerciorarse de que mi mirror con las versiones seleccionadas del producto está debidamente actualizado.

  1. Cree la configuración del mirror añadiendo las versiones del producto y los sistemas operativos deseados:

    # /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. Configure crontab para que el mirror se actualice automáticamente:

    $ 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
    

Ejemplo 2: Adición de nuevos sistemas operativos

Objetivo: Añadir otro sistema operativo a mi mirror para una determinada versión del producto.

  1. Importe la configuración actual del repositorio creado anteriormente usando la utilidad mirrorctl:

    # ./mirrorctl cfg --import --path=/var/www/html/mirror/ --cfg-file=myconfig
    
  2. Añada el nuevo SO para la versión del producto:

    # ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=deb6.0_i386 --cfg-file=myconfig
    
  3. Sincronice el mirror:

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

Ejemplo 3: Descarga de una versión/SO determinado

Objetivo: Descargar un SO particular para una versión determinada del producto a mi mirror mediante el repositorio oficial sin descargar otras versiones/SO presentes en el mirror.

  1. Genere un archivo de configuración que sólo contenga las versiones del producto/SO que desea descargar:

    # ./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. Descargue los SOs especificados a un repositorio existente usando el comando push:

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

Ejemplo 4: Creación de un mirror para la realización de pruebas de nuevas versiones del producto

Objetivo: Crear un mirror de prueba para una nueva versión del producto, analizar dicha versión y sólo cargar la versión probada (sin las actualizaciones oficiales más recientes que aún no se han probado) al repositorio principal.

  1. Cree un mirror de prueba para todos los SOs de la nueva versión del producto:

    # ./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. Pruebe la nueva versión;

  3. Cargue toda la versión del producto al repositorio principal:

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

Advertencia: si no se usa la opción --src-host, la nueva versión se cargará desde el repositorio oficial y puede no ser la misma que la que ha probado.

Ejemplo 5: Creación de un mirror para la realización de pruebas de versiones del producto para nuevos SOs

Objetivo: crear un mirror de prueba con la lista de SOs para las versiones para las que ya se ha creado el mirror con las actualizaciones más recientes, probar estos SOs y posteriormente cargar algunos de los SOs probados al repositorio principal.

  1. Cree un mirror de prueba donde estén presentes distintos SOs para la versión seleccionada del producto:

    # ./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. Obtenga la lista de las versiones del producto y los SOs disponibles desde el mirror de prueba creado:

    # ./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. Genere un archivo de configuración nuevo que sólo contenga aquellas versiones y SOs del mirror de prueba que usted desea añadir al mirror principal:

    # ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_i386 --src-host=/var/www/html/test-mirror/ --cfg-file=push.xml
    
  4. Examine el archivo de configuración creado para comprobar la disponibilidad de las versiones/SOs en el repositorio de prueba:

    # ./mirrorctl cfg --check --src-host=/var/www/html/test-mirror/ --cfg-file=push.xml
    
  5. Cargue las versiones y SOs seleccionados del mirror de prueba al repositorio principal:

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

Advertencia: si no se usa la opción --src-host, la nueva versión se cargará desde el repositorio oficial y puede no ser la misma que la que ha probado.

Advertencia: de no especificarse la opción --cfg-file, se usará el archivo de configuración predeterminado BUILD/config.xml (con relación al directorio donde se encuentra la herramienta). Es decir, al repositorio principal sólo se cargarán las versiones/SOs de dicho archivo de configuración.

Advertencia: si la opción --cfg-file no se especifica correctamente, se usará el archivo de configuración especificado para el comando push.