Cómo migrar ISPConfig 2, ISPConfig 3.x, Confixx, CPanel o Plesk a ISPConfig 3.2 (servidor único)
En este tutorial, mostraremos cómo utilizar la herramienta de migración ISPConfig 2.0 para migrar un único servidor a un nuevo servidor ISPConfig 3.2. La herramienta de migración es parte del kit de herramientas de migración de ISPConfig que está disponible aquí.
La herramienta de migración ISPConfig se puede utilizar para migrar estos paneles de control de hosting a un servidor ISPConfig 3.2:
- Configuración ISP 2
- ISPConfig 3 y 3,1
- Plesk 10 - 12.5
- Plesk Ónix
- Confixx
- panel central
En este tutorial, migraremos un servidor ISPConfig 3.0 a un nuevo sistema que ejecuta ISPConfig 3.2. La migración desde otros paneles de control de hosting compatibles se realiza de manera similar. La herramienta de migración lo guiará paso a paso a través del proceso de migración.
Requisitos previos y notas
- ISPConfig 3.x en el servidor de origen.
- ISPConfig 3.1.7 o superior en el servidor de destino.
- PHP 5.3+ con soporte JSON, mcrypt, OpenSSL y mbstring en el código fuente.
- Los servidores antiguos y nuevos no deben estar conectados al mismo servidor maestro. Si están conectados al mismo maestro, use ISPCopy en su lugar (que también forma parte del kit de herramientas de migración).
- Licencia del kit de herramientas de migración.
- Certificados Let's Encrypt: el servidor antiguo y el nuevo deben utilizar el mismo cliente Let's Encrypt. Si su servidor anterior usa Certbot, asegúrese de que el nuevo sistema también use Certbot y no Acme.sh. Si instala el nuevo servidor usando el autoinstalador ISPConfig y su antiguo servidor usa certbot, entonces use el modificador de línea de comando --use-certbot en el autoinstalador para instalar certbot en lugar de acme.sh. en el nuevo servidor.
- Configuraciones multiservidor: MigrationTool es capaz de migrar configuraciones multiservidor ISPConfig. El objetivo de dicha migración puede ser otra configuración de varios servidores o puede fusionar una configuración de varios servidores en una nueva configuración de servidor único. MigrationTool debe ejecutarse en cada nodo (antiguo) de una configuración multiservidor uno tras otro, el sistema ISPConfig de destino es el nodo maestro de la nueva configuración multiservidor (MigrationTool mostrará un cuadro de diálogo donde puede seleccionar en qué nuevo nodo de la configuración multiservidor a la que se migrarán los datos) o el nuevo servidor único.
Crear un usuario remoto en ISPConfig
Necesita un usuario remoto en el servidor ISPConfig de destino.
Vaya a Sistema -> Usuario remoto
Haga clic en el botón Agregar nuevo usuario.
Ingrese un nombre de usuario y contraseña para el usuario remoto, e. gramo. "más remoto" y asegúrese de marcar todas las casillas de verificación. Luego haga clic en "guardar".
Si está utilizando ISPConfig versión 3.1.11 en el servidor de destino, edite el archivo /usr/local/ispconfig/security/security_settings.ini como usuario root:
nano /usr/local/ispconfig/security/security_settings.ini
y cambie los valores de ids_anon_enabled e ids_user_enabled de 'sí' a 'no'.
....
[ids]
ids_anon_enabled=no
ids_anon_log_level=1
ids_anon_warn_level=5
ids_anon_block_level=20
ids_user_enabled=no
ids_user_log_level=1
ids_user_warn_level=10
ids_user_block_level=25
ids_admin_enabled=no
ids_admin_log_level=1
ids_admin_warn_level=5
ids_admin_block_level=100
sql_scan_enabled=yes
sql_scan_action=warn
apache_directives_scan_enabled=yes
nginx_directives_scan_enabled=yes
....
El IDS se puede habilitar nuevamente cuando finalice la migración. Si utiliza ISPConfig 3.1.12 o posterior, este cambio no es necesario.
A continuación, verifique si el módulo php-soap está instalado en el servidor de destino. Si no está instalado, instálelo ahora. En Debian y Ubuntu, puedes instalar el módulo PHP Soap con apt:
apt-get install php-soap
Otro requisito previo es que el servidor de destino y de origen deben tener instalado rsync. Por favor consulte con, por ejemplo:
rsync --version
en ambos nodos que rsync está instalado. Si no está instalado, instale el paquete rsync del sistema operativo. P.ej. con:
apt-get install rsync
en Debian y Ubuntu o con:
yum install rsync
en CentOS.
En el servidor de destino, puede haber un archivo /etc/ssh/sshd_config.d/custom.conf creado por el instalador automático de ISPConfig que impide que funcione la herramienta de migración. Este archivo debe eliminarse si existe. Ejecute este comando en el servidor de destino como usuario root para eliminar el archivo:
rm /etc/ssh/sshd_config.d/custom.conf
Todos los pasos siguientes se realizan en el servidor fuente a menos que se indique lo contrario.
Descargue y extraiga la herramienta de migración
cd /root
mkdir migration
cd migration
wget https://www.ispconfig.org/downloads/ispconfig_migration_toolkit-latest.zip
unzip ispconfig_migration_toolkit-latest.zip
mv ispconfig_migration_toolkit/ispc3-migration-tool-*.tar.gz /root/migration/migtool.tar.gz
tar xzf migtool.tar.gz
rm -f migtool.tar.gz
Preparar inicio de sesión sin contraseña (opcional)
Durante la migración, habrá una conexión SSH para transferir configuraciones y datos desde el servidor de origen al servidor de destino. Para ello, el servidor de origen debe poder conectarse a los destinos sin contraseña.
Tu también puedes:
- Configure usted mismo el inicio de sesión sin contraseña (agregue la clave pública de la fuente al archivo autorizado_keys de la raíz de destino).
- O permitir el acceso de root a través de ssh al objetivo mediante contraseña (temporalmente). La herramienta de migración luego llamará a ssh-keygen y ssh-copy-id por usted. Estas son llamadas directas al sistema, por lo que si se le solicita la contraseña raíz ssh del destino durante este paso, la herramienta de migración NO lee la entrada, sino que es una solicitud directa del ssh-copy-id. comando del sistema.
Ejecutar la migración (ejecución en seco)
./migrate
Si desea ejecutar la herramienta en una versión de PHP específica (por ejemplo, PHP 7.4 en Ubuntu 22.04), utilice este comando en su lugar:
PHP=/usr/bin/php7.4 ./migrate
El resultado de cualquiera de los comandos anteriores será el siguiente:
Welcome to the ISPConfig3 Migration Tool V2 Version 2.0.0
Although this tool does not alter anything on the source server, you should
ALWAYS make a BACKUP of all your data before migrating to a new server!
You need to have some prerequisites set up to use this tool:
* create an remote user (system -> remote users) in your TARGET ISPConfig3 system and grant ALL rights to it
* make sure this (the SOURCE system) can reach the remoting api of the TARGET system
*** Disclaimer of Warranties ***
ISPConfig disclaims to the fullest extent authorized by law any and all other warranties, whether express or implied,
including, without limitation, any implied warranties of title, non-infringement, integration, merchantability or
fitness for a particular purpose.
By continuing to use this software, you agree to this.
First of all the most important question:
Do you want to make a real migration or a dry run? (dry, migrate): dry
Primero queremos ejecutar en modo de ejecución en seco, por lo que ingresamos en seco aquí.
The following modules are available:
1. Confixx to ISPConfig 3 migrator (confixx)
2. Plesk (10.5 - 17.5) to ISPConfig 3 migrator (plesk)
3. ISPConfig 2 to 3 migrator (ispconfig2)
4. ISPConfig 3 to ISPConfig 3 migrator (ispconfig3)
Which one is the one matching your SOURCE system? (confixx, plesk, ispconfig2, ispconfig3): ispconfig3
La herramienta de migración necesita saber qué panel de control está utilizando en su servidor de origen. Intenta reconocer el módulo requerido en el servidor de origen, por lo que normalmente puede simplemente presionar ENTER.
Enter this (SOURCE) server's ip that is used for outgoing connections [192.168.10.10]: 123.123.123.123
La herramienta de migración necesita saber qué dirección IP en el servidor de origen se utiliza para las conexiones salientes, i. mi. qué dirección IP verán otros servidores cuando la fuente se conecte a ellos. La herramienta intenta adivinar la dirección IP, pero es posible que deba cambiar el valor si está utilizando una red privada, por ejemplo.
Name of the remote user of TARGET ISPConfig3 system []: remoter
Password for this remote user []: yourremotepassword
URL to the remote system (e. g. https://yourdomain.com:8080/remote/) []: https://www.example.com:8080/remote/
You gave me remote user 'remoter' with password 'yourremotepassword'
And I shall connect to 'https://www.example.com:8080/remote/'
Is this correct? (y, n): y
Proporcione a la herramienta de migración los datos del usuario remoto que creó en el destino y confirme su entrada con "y". Luego, la herramienta de migración intentará conectarse a la API remota de su sistema de destino.
I will now have to make some changes in your ISPConfig3 TARGET system config.
1.) Enable domain module if needed
2.) Remove client prefixes (will be undone automatically at the end)
3.) Enable login for mail accounts if needed
Testing MySQL connection ... OK
What is the main public(!) ip of the target server www.example.com? [123.123.123.123]: [ENTER]
La herramienta de migración cambiará algunas configuraciones de ISPConfig en el destino (estos cambios no se realizarán cuando se ejecute en modo de ejecución en seco) y probará la conexión al servidor MySQL. Intenta adivinar las credenciales de MySQL mirando algunos archivos del sistema, pero eventualmente se le solicitará la contraseña de root de MySQL.
A continuación, debe proporcionar la IP pública del servidor de destino. Se obtendrá previamente desde DNS, pero es posible que deba ajustarlo, especialmente si usa el mismo nombre de host en el origen y el destino.
Do you want me to overwrite/update existing entries with the same name? (y, n): y
You can now set entry names, that shall NOT be overwritten.
You should use this if you plan to import several server's data to a multi-server installation.
If this tool finds a name that is already present, it UPDATES the data with the SOURCE data!
If this tool finds a name that you marked as not to overwrite, it either
- appends a _2, _3 etc. to this name and creates a new entry, or
- prepends a server prefix if specified by --server-prefix argument
La herramienta de migración permite fusionar varios servidores en un solo destino. Al hacer esto, es posible que haya nombres de usuario conflictivos en los servidores de origen, p. gramo. si tiene dos bases de datos con el nombre "testdatabase". Si responde "y" a esta pregunta, la segunda base de datos reemplazará a la primera. Si responde "n", cambiará el nombre de la segunda base de datos a "testdatabase_2".
Asegúrese de responder "y" cuando realice una migración de un solo servidor porque, de lo contrario, creará duplicados si ejecuta la herramienta de migración varias veces en la misma fuente.
You currently have 0 FTP username name(s) marked:
You can now add further names to this list. Just enter them one by one or provide a comma-separated list.
To delete one or more names from the list, prepend a /DELETE to your input.
To clear all names from the list, type /CLEAR.
A blank input proceeds to the next step.
Your choice : [ENTER]
La herramienta de migración le ofrece marcar algunos nombres de usuario para FTP, bases de datos, clientes, etc. como "reservados". Esto significa que no se sobrescribirán como se menciona en la sección anterior. Normalmente dejará esto en blanco, pero en algunos casos puede evitar que se importen nombres de usuario como "admin" o "administrador". Así que puede ingresarlos aquí, lo que resultará en un cambio de nombre de los nombres importados a "admin_2", etc.
La pregunta se repite para los diferentes tipos de servicios (FTP, base de datos, clientes, usuarios de correo).
What is the database name of your SOURCE ISPConfig 3 installation? [dbispconfig]: [ENTER]
La herramienta ahora solicita el nombre de la base de datos en el servidor de origen que contiene los datos del panel de control. Verifique si la base de datos reconocida es correcta y cámbiela si es necesario.
Do you want to migrate only some services or everything?
Valid services are: client, web, mail, ftp, database, cronjob, dns, billing
Please enter one or more services (comma-separated) or leave blank for all: [ENTER]
La nueva herramienta de migración solo puede migrar un subconjunto de servicios, e. gramo. solo migrar cuentas de correo y saltarse webs etc.
Queremos migrar todos los servicios, así que dejamos la entrada en blanco y presionamos ENTER.
To copy over web data, I need SSH access to the target webserver.
Please make sure that root login via SSH is allowed. On the target open /etc/ssh/sshd_config
and set PermitRootLogin to yes or without-password.
You can revert this once the migration is complete.
What is the ip for the target web server to connect via SSH? [123.123.123.123]: [ENTER]
What is the SSH port? [22]: [ENTER]
Para copiar datos web, de correo y de base de datos, la herramienta de migración requiere acceso SSH sin contraseña al servidor de destino. Debe proporcionar la IP y el puerto al que se debe conectar la fuente. Si aún no ha configurado el acceso sin contraseña, se le solicitará la contraseña SSH raíz del servidor de destino.
Testing MySQL connection ... OK
Starting API calls.
[50/74] <Domain> processing mydomain.com
La herramienta ahora comenzará a crear/actualizar todas las entradas en el ISPConfig de destino. En el ensayo, por supuesto, no cambiará ni copiará nada. Espere a que finalicen las llamadas a la API.
Processing of entries done.
=============
Migration tool run completed.
Una vez que la herramienta de migración finalizó el ensayo sin errores, podemos continuar con la migración real.
Ejecute la migración
./migrate
Si desea ejecutar la herramienta en una versión de PHP específica (por ejemplo, PHP 7.4 en Ubuntu 22.04), utilice este comando en su lugar:
PHP=/usr/bin/php7.4 ./migrate
El resultado de cualquiera de los comandos anteriores será el siguiente:
Welcome to the ISPConfig3 Migration Tool V2 Version 2.0.0rc2
Although this tool does not alter anything on the source server, you should
ALWAYS make a BACKUP of all your data before migrating to a new server!
You need to have some prerequisites set up to use this tool:
* create an remote user (system -> remote users) in your TARGET ISPConfig3 system and grant ALL rights to it
* make sure this (the SOURCE system) can reach the remoting api of the TARGET system
*** Disclaimer of Warranties ***
ISPConfig disclaims to the fullest extent authorized by law any and all other warranties, whether express or implied,
including, without limitation, any implied warranties of title, non-infringement, integration, merchantability or
fitness for a particular purpose.
By continuing to use this software, you agree to this.
First of all the most important question:
Do you want to make a real migration or a dry run? (dry, migrate): migrate
Esta vez respondemos al mensaje con "migrar" y respondemos las preguntas tal como lo hicimos durante el ensayo. La herramienta tendrá sus entradas del ensayo precargadas, por lo que en su mayoría podrá presionar ENTRAR.
Testing MySQL connection ... OK
Copying Let'sEncrypt files to target ... OK
Starting API calls.
[9/11] processing [email (web213p41)
Esta vez el proceso llevará un poco más de tiempo ya que se están realizando llamadas API reales. Espere a que finalice el proceso.
Processing of entries done.
Target ISPConfig job queue has 35 entries left. Waiting ..
Para asegurarse de que se creen todas las rutas en el destino, la herramienta de migración espera a que ISPConfig procese todas las solicitudes antes de continuar.
[INFO] Target ISPConfig job queue has completed. Continuing.
[19/935] Syncing /var/www/clients/client26/web21/web to /var/www/clients/client1424/web21/
Ahora la herramienta sincroniza todas las rutas (web, correo) y copia el contenido de la base de datos en el servidor de destino. Este proceso puede tardar un poco dependiendo de la cantidad de datos que tengas.
Si desea realizar la sincronización de datos real en un paso separado, puede omitirlo ejecutando ./migrate --no-syncjobs en lugar de solo ./migrate
Pasos finales
La herramienta de migración restablecerá los valores que cambió al principio (por ejemplo, prefijos de cliente).
Dependiendo de su panel de control de origen, la herramienta de migración activó el módulo de dominio en su ISPConfig de destino. Esto significa que los dominios sólo se pueden utilizar para sitios web, dominios de correo electrónico, etc. si han sido asignados primero por un administrador (usando Cliente -> Dominios). Si no desea utilizar el módulo de dominio, puede desactivarlo en Sistema -> Configuración de interfaz -> Pestaña "Dominios".
Finalmente, verifique el migrar.log que se creó para buscar entradas que tengan marcadores [ERROR] o [ADVERTENCIA]. Estos indican problemas durante el proceso de migración.
Vuelva a sincronizar su objetivo
Volver a sincronizar cuentas y configuraciones
Si algo cambió en el panel de control de código fuente después de realizar la migración, puede volver a ejecutarlo. La herramienta de migración actualizará todas las entradas con la nueva configuración de su servidor de origen. Y agregue nuevas entradas que se hayan creado mientras tanto. Las entradas eliminadas en el origen no se eliminarán en el destino.
Volver a sincronizar datos
Si solo desea volver a sincronizar los datos de la web, el correo y las bases de datos, puede ejecutar ./migrate --syncjobs. Esto omitirá todos los pasos de migración y solo ejecutará la sincronización de sitios web, bases de datos y correos electrónicos.
También puede volver a sincronizar uno de los servicios, p. gramo. ./migrate --syncjobs --only=base de datos. Esto omitirá la resincronización de los datos del sitio web y los correos electrónicos.
Opciones avanzadas
Para obtener una lista de opciones avanzadas que le permitan migrar, p. sitios web individuales, dominios de correo o clientes, utilice la opción --help.
./migrate --help
Las opciones actuales son:
Usage: migrate <options>
List of options:
--help
Show this screen
--server-prefix=<prefix>
Use given prefix for conflicting usernames, if further
conflicts occur,
add _2 _3 _4 ... to username
--source-temp-dir=<parth>
Set a different temp directory for actions on the source
server than /tmp
--target-temp-dir=<parth>
Set a different temp directory for actions on the target
server than /tmp
--syncjobs
Don't run the migration process, just re-sync all data
(web files, database contents)
--no-syncjobs
Only do the migration, don't copy any data files or
database contents to target
--ignore-sync-errors
Don't abort syncjobs processing if an error occurs. This
can be helpful for example
if a command like chattr does not work correctly on the
target server.
--confixx-no-domain
On a confixx migration (source server) do not create a
dummy website that contains
all other domains of that client as alias domains.
Confixx uses a different approach for storing and
managing domains, so there is no
"main" domain, but a hosting instead, that has all
domains assigned.
On confixx servers where clients only have a single
domain it can be better to not
create a dummy website with a single alias, but use the
domain as website instead.
--only=client|web|mail|ftp|database|cronjob|dns|billing
Only migrate the given service(s) and skip the others.
Can be provided multiple times.
--exclude=client|web|mail|ftp|database|cronjob|dns|billing
Migrate all services but the given one(s). Can be
provided multiple times.
--only=/--exclude= on --syncjobs run
When limiting the resync to single services, only web,
mail, database, system are valid.
--only-client=<username>
Only migrate a single client and it's data (web, mail
etc.). This can be used together
with --only= / --exclude= to limit the migrated data
even further.
--only-web=<domain.com>
Only migrate the given domain and it's assigned
databases, ftp accounts etc.
This can be used together with the other
--only-x/--exclude-x and --only=/--exclude= options
to specify the data to be migrated.
--only-mail=<domain.com>
Only migrate the given mail domain and it's assigned
mail accounts, spam filter etc.
This can be used together with the other
--only-x/--exclude-x and --only=/--exclude= options
to specify the data to be migrated.
--only-database=<databasename>
Only migrate the given database and it's parent website.
This can be used together with the other
--only-x/--exclude-x and --only=/--exclude= options
to specify the data to be migrated.
--only-dns=<domain.com>
Only migrate the given DNS zone and it's assigned DNS
records.
The above options can also be used in the opposite way,
using --exclude-client, --exclude-web,
--exclude-mail, --exclude-database, --exclude-dns
WARNING! Clients ALWAYS have to be migrated otherwise
you will have all migrated data assigned
to the admin user instead of the client!