Como migrar un servidor Zentyal 7.1 a un Zentyal 8.0¶
En esta entrada vamos a explicar cómo migrar un servidor Zentyal 7.1 configurado como controlador de dominio Standalone a un nuevo servidor con Zentyal 8.0 configurándolo como controlador de dominio adicional.
El objetivo es realizar una migración completa de un servidor Zentyal a otro sin tener que hacer una instalación limpia.
Truco
Esta misma guía es válida para otras versiones de Zentyal.
Tabla de contenidos
Consideraciones¶
Antes de realizar la migración de nuestro servidor Zentyal, es importante tener en cuenta las siguientes consideraciones para garantizar que el proceso se realice correctamente y sin pérdidas de datos:
- Situación inicial: Partimos de la configuración mostrada en el how-to de Zentyal como Controlador de Dominio Adicional [1] , donde configuramos un servidor Zentyal 8.0 como Controlador de Dominio Adicional (ADC).
- Exportación e importación de datos: Las carpetas personales, los recursos compartidos, los correos electrónicos y las Políticas de Grupo (GPO) deben ser exportadas e importadas manualmente, ya que esta información no se sincroniza automáticamente entre los dos servidores.
- Dominio virtual de correo electrónico: En caso de usar el módulo de correo [2], en el Controlador de Dominio Adicional, será necesario configurar el mismo dominio virtual de correo electrónico que en el servidor original para mantener la coherencia en la infraestructura de correo.
- Reconfiguración de carpetas personales de usuarios: Una vez que se hayan creado las carpetas personales en el nuevo Controlador de Dominio Adicional, será necesario modificar el atributo homeDirectory de los usuarios para que apunten al nuevo servidor. Esto garantizará que los usuarios continúen teniendo acceso a sus datos en la nueva infraestructura.
- Cambio de rol a Controlador de Dominio definitivo: Una vez que el servidor actual de Controlador de Dominio sea retirado y el Controlador de Dominio Adicional se convierta en el único controlador de dominio, en el panel de administración de Zentyal, en la sección Dominio -> Función del servidor, [3] se seguirá mostrando el valor de Controlador de Dominio Adicional. Es importante no intentar modificar este valor, ya que si se cambia, el dominio será provisionado nuevamente, lo que resultará en la pérdida de todas las configuraciones y datos previas.
- Directorios para la exportación e importación: Se deberán crear previamente.
| [1] | How-to Zentyal como Controlador de Dominio Adicional: https://doc.zentyal.org/es/how-to-adc.html#zentyal-como-controlador-de-dominio-adicional |
| [2] | Módulo de correo: https://doc.zentyal.org/es/mail.html |
| [3] | Función del servidor: https://doc.zentyal.org/es/_images/samba-12-additional-dc.png |
Entorno del laboratorio¶
El entorno del laboratorio configurado es el siguiente:
- Dominio → zentyal-domain.lan
- Controlador de Dominio → dc01 (Zentyal 7.1)
- Ip del Controlador de Dominio → 192.168.6.1
- Controlador de Dominio Adicional → dc02 (Zentyal 8.0)
- Ip del Controlador de Dominio Adicional → 192.168.6.2
- Módulos instalados → Red, Cortafuegos, Logs, NTP, DNS, Controlador de Dominio, Mail, WebMail.
- Máquinas cliente → Windows 11 con herramientas RSAT
- Directorio origen para las exportaciones
- /mnt/migration/homes
- /mnt/migration/shares
- /mnt/migration/mail/zentyal-domain.lan
- /mnt/migration/gpos/
- Directorio destino para las importaciones → /home/zenadmin/migration/
- /home/zenadmin/migration/homes
- /home/zenadmin/migration/shares
- /home/zenadmin/migration/mail/zentyal-domain.lan
- /home/zenadmin/migration/gpos/
Configuraciones adicionales¶
- Recursos compartidos → devopsData, administration
- Usuarios del dominio → sergio, laura, maria
- Dominio virtual de correo → zentyal-domain.lan
- GPO configuradas → Panel de Control deshabilitado y Denegado acceso al comando Ejecutar desde el Menú de Inicio.
Migración de datos¶
La migración de datos implica transferir toda la información almacenada en el servidor antiguo al nuevo Controlador de Dominio Adicional, asegurando que los usuarios mantengan el acceso a sus recursos y correos electrónicos. Este proceso debe llevarse a cabo cuidadosamente para evitar pérdidas de datos. Algunos datos, como los recursos compartidos, pueden ser muy grandes. En estos casos, es recomendable dividir los archivos en partes más pequeñas en lugar de crear un solo archivo comprimido de gran tamaño. Para ello, podemos utilizar el comando split.
A continuación se detalla el proceso de la migración de datos para:
- Carpetas personales.
- Recursos compartidos.
- Correo electrónicos.
- GPOs.
Carpetas personales¶
Las carpetas personales contienen los datos personales tanto de los usuarios locales como del dominio. Usaremos un bucle sencillo para la exportación de cada directorio personal.
Exportación: Realizamos una copia de cada carpetas personales preservando los permisos y almacenando el archivo en
/mnt/migration/homes/cd /home/ for user in $(ls); do \ tar --exclude='samba' -zcvpf /mnt/migration/homes/$user.tar.gz \ $user/; done ls -l /mnt/migration/homes/
Transferencia: Copiamos los archivos comprimidos al controlador de dominio adicional en el directorio
/home/zenadmin/migration/homes/scp /mnt/migration/homes/*.tar.gz \ [email protected]:/home/zenadmin/migration/homes/
Importación: Procedemos a importar cada carpeta personal:
cd /home/zenadmin/migration/homes/ for user in $(ls); do tar xzpf $user -C /home/; done ls -l /home/
Cambio del atributo homeDirectory. Una vez transferidos los archivos, actualizamos el atributo homeDirectory de cada usuario en el nuevo servidor para que apunten a las nuevas ubicaciones de sus carpetas personales.
Para obtener todas las entradas que tienen el atributo homeDirectory a modificar:
ldbsearch -H /var/lib/samba/private/sam.ldb '(homeDirectory=*)' \ homeDirectory 2>/dev/null | egrep '^(dn|homeDirectory):' dn: CN=dns-DC02,CN=Users,DC=zentyal-domain,DC=lan homeDirectory: \\dc01.ZENTYAL-DOMAIN.LAN\dns-DC02 dn: CN=laura zentyal,CN=Users,DC=zentyal-domain,DC=lan homeDirectory: \\dc01.ZENTYAL-DOMAIN.LAN\laura dn: CN=maria zentyal,CN=Users,DC=zentyal-domain,DC=lan homeDirectory: \\dc01.ZENTYAL-DOMAIN.LAN\maria dn: CN=sergio zentyal,CN=Users,DC=zentyal-domain,DC=lan homeDirectory: \\dc01.ZENTYAL-DOMAIN.LAN\sergio
Como se puede observar, las entradas apuntan al Controlador de Dominio que queremos retirar dc01.
Creamos un archivo LDIF que modifique el valor del atributo de los usuarios del dominio por el nuevo servidor:
dn: CN=laura zentyal,CN=Users,DC=zentyal-domain,DC=lan changetype: modify replace: homeDirectory homeDirectory: \\DC02.ZENTYAL-DOMAIN.LAN\laura dn: CN=maria zentyal,CN=Users,DC=zentyal-domain,DC=lan changetype: modify replace: homeDirectory homeDirectory: \\DC02.ZENTYAL-DOMAIN.LAN\maria dn: CN=sergio zentyal,CN=Users,DC=zentyal-domain,DC=lan replace: homeDirectory homeDirectory: \\DC02.ZENTYAL-DOMAIN.LAN\sergio
Importamos el archivo LDIF generado:
ldbmodify -H /var/lib/samba/private/sam.ldb homeDirectory_change.ldif Modified 3 records successfully
En caso de que nuestro servidor tenga un gran número de usuarios, podemos automatizar la creación e importación con el siguiente script:
#!/bin/bash set -e ## Version: 0.1 ## Developed by Zentyal Support Team ### ## Global variables ### ## Set the domain controller FQDN in UPPERCASE DC_FQDN='\\DC02.ZENTYAL-DOMAIN.LAN' ## This directory will be used to store all the files the script generates LDIF_DIR='/var/lib/zentyal/tmp/LDIF-homeDirectories' IMPORT=true CLEAN=false ### ## Functions ### function clean_dir() { /usr/bin/rm -fr ${LDIF_DIR} } function requirements() { if [[ "$(id -u)" != "0" ]]; then /usr/bin/echo "This script must be run as root." exit 1 fi if [[ -d "${LDIF_DIR}" ]]; then clean_dir fi /usr/bin/mkdir -m0750 ${LDIF_DIR} } function generate_ldif() { local USER_DN=${1} local USER_NAME=${2} /usr/bin/cat << EOF > ${LDIF_DIR}/${USER_NAME}.ldif dn: ${USER_DN} changetype: modify replace: homeDirectory homeDirectory: ${DC_FQDN}\\${USER_NAME} EOF } function get_domain_users() { for user in $(/usr/bin/samba-tool user list 2>/dev/null); do local USERNAME=${user} local USER_INFO=$(/usr/bin/ldbsearch -H /var/lib/samba/private/sam.ldb \ sAMAccountName="${user}" dn homeDirectory 2>/dev/null \ | egrep '^(dn|homeDirectory):') while IFS= read -r line; do if [[ $line =~ ^dn:\ (.+) ]]; then DN="${BASH_REMATCH[1]}" elif [[ $line =~ ^homeDirectory:\ (.+) ]]; then /usr/bin/echo "Generating LDIF for ${USERNAME}..." generate_ldif "${DN}" "${USERNAME}" fi done <<< "$USER_INFO" done } function import_ldif() { cd ${LDIF_DIR} for file in $(ls *.ldif); do /usr/bin/echo -e "\nImporting '${file}'..." /usr/bin/ldbmodify -H /var/lib/samba/private/sam.ldb ${file} 2>/dev/null if [[ $? -ne 0 ]]; then /usr/bin/echo "The LDIF ${LDIF_PATH} failed..." exit 1 fi /usr/bin/echo "" done } ### ## Call functions ### requirements get_domain_users if [[ ${IMPORT} == true ]]; then import_ldif fi if [[ ${CLEAN} == true ]]; then clean_dir fi
Finalmente, verificamos de nuevo los registros de los usuarios:
ldbsearch -H /var/lib/samba/private/sam.ldb '(homeDirectory=*)' \ homeDirectory 2>/dev/null | egrep '^(dn|homeDirectory):' dn: CN=dns-DC02,CN=Users,DC=zentyal-domain,DC=lan homeDirectory: \\DC02.ZENTYAL-DOMAIN.LAN\dns-DC02 dn: CN=laura zentyal,CN=Users,DC=zentyal-domain,DC=lan homeDirectory: \\DC02.ZENTYAL-DOMAIN.LAN\laura dn: CN=maria zentyal,CN=Users,DC=zentyal-domain,DC=lan homeDirectory: \\DC02.ZENTYAL-DOMAIN.LAN\maria dn: CN=sergio zentyal,CN=Users,DC=zentyal-domain,DC=lan homeDirectory: \\DC02.ZENTYAL-DOMAIN.LAN\sergio
Recursos compartidos¶
El proceso de migración de los recursos compartidos es similar al de recursos personales, no obstante, hay ciertas acciones que deben realizarse manualmente desde el Panel de Administración de Zentyal. Nuevamente, usaremos un bucle sencillo para la exportación de cada recurso compartido.
Exportación: Realizamos una copia de cada recursos compartidos preservando los permisos mediante un sencillo bucle al directorio
/mnt/migration/shares/cd /home/samba/shares/ for share in $(ls); do \ cd $share && tar -czvf /mnt/migration/shares/$share.tar.gz . && cd ../;done ls -l /mnt/migration/shares/
Transferencia: Copiamos los archivos comprimidos al controlador de dominio adicional en el directorio
/home/zenadmin/migration/shares/scp /mnt/migration/shares/*.tar.gz \ [email protected]:/home/zenadmin/migration/shares/
Creación de los recursos vía GUI Procedemos a crear desde el Panel de Administración de Zentyal Compartición de Ficheros -> Directorios compartidos los recursos compartidos en el nuevo servidor.
Importación: Procedemos a importar cada recursos compartidos:
cd /home/zenadmin/migration/shares/ for share in $(ls); do \ tar -xpvf $share -C /home/samba/shares/${share%.tar.gz}/; done ls -lR /home/samba/shares/
Permisos Configuramos las ACL (permisos) en cada recurso compartido desde el Panel de Administración de Zentyal Compartición de Ficheros -> Directorios compartidos.
Correos electrónicos¶
En caso de usar y querer migrar el módulo de Correo [4], en Zentyal, los correos electrónicos de los dominios virtuales se almacenan en /var/vmail/<nombre del dominio>. Dentro de esta ubicación, hay una carpeta para cada usuario del dominio. Tal y como se indica en el apartado de Consideraciones, antes de realizar la unión del nuevo servidor Zentyal, es necesario haber creado un dominio virtual de correo electrónico con el mismo nombre del configurado en el servidor original.
Exportación: Realizamos una copia de todos los mailboxes ubicados en /var/vmail/zentyal-domain.lan mediante un sencillo bucle, los archivos los almacenaremos en
/mnt/migration/mail/zentyal-domain.lan/cd /var/vmail/zentyal-domain.lan/ for mailbox in $(ls); do \ tar -zcpvf /mnt/migration/mail/zentyal-domain.lan/$mailbox.tar.gz \ $mailbox; done ls -l /mnt/migration/mail/zentyal-domain.lan/
Transferencia: Copiamos los archivos comprimidos al controlador de dominio adicional en el directorio
/home/zenadmin/migration/mail/zentyal-domain.lan/scp /mnt/migration/mail/zentyal-domain.lan/*.tar.gz \ [email protected]:migration/mail/zentyal-domain.lan/
Creación del directorio del dominio virtual de correo: Creamos el directorio del dominio virtual de correo que contendrá los mailboxes:
mkdir -p /var/vmail/zentyal-domain.lan chmod 2775 /var/mail/ chown -R ebox:ebox /var/vmail/
Importación: Procedemos a importar cada buzón de correo:
cd /home/zenadmin/migration/mail/zentyal-domain.lan/ for mailbox in $(ls); do \ tar -zpxvf $mailbox -C /var/vmail/zentyal-domain.lan/; done ls -l /var/vmail/zentyal-domain.lan/
| [4] | https://doc.zentyal.org/es/mail.html |
GPOs¶
Para la migración de las Directivas de Grupo del dominio, es tan sencillo como copiar el directorio /var/lib/samba/sysvol/zentyal-domain.lan/, el cual contiene los directorios Policies y scripts
Exportación: Realizamos la copia y la almacenamos en
/mnt/migration/gpos/:cd /var/lib/samba/sysvol/zentyal-domain.lan/ tar -zcpvf /mnt/migration/gpos/sysvol.tar.gz . ls -l /mnt/migration/gpos/
Transferencia: Copiamos el archivo comprimido al controlador de dominio adicional en el directorio
/home/zenadmin/migration/gpos/scp /mnt/migration/gpos/sysvol.tar.gz \ [email protected]:/home/zenadmin/migration/gpos
Importación: Procedemos a importar las GPOs:
rm -rf /var/lib/samba/sysvol/zentyal-domain.lan/* tar -xzvf /home/zenadmin/migration/gpos/sysvol.tar.gz \ -C /var/lib/samba/sysvol/zentyal-domain.lan ls -lR /var/lib/samba/sysvol/zentyal-domain.lan/
Migración de los roles FSMO¶
Una vez tenemos todos los datos importados, procederemos a transferir los roles FSMO [5] al nuevo controlador de dominio.
Advertencia
Este paso puede provocar pérdida de servicio, se recomienda realizar una copia de seguridad en cada servidor.
Advertencia
En caso de querer migrar el servicio de correo, habrá que deshabilitarlo en el controlador de dominio adicional antes de realizar las acciones de este apartado.
Truco
La transferencia de roles FSMO es un proceso crítico donde se distribuyen ciertas funciones clave entre los controladores de dominio (DC). Aunque todos los DC en un dominio pueden manejar la mayoría de las tareas, algunos roles específicos deben estar centralizados para garantizar la coherencia y evitar conflictos. Hay dos opciones principales para realizar la transferencia de los roles FSMO, online y offline
Verificación: Comprobamos que el propietario de los roles FSMO es el servidor dc01, el cual queremos migrar:
samba-tool fsmo show SchemaMasterRole owner: CN=NTDS Settings,CN=DC01,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan InfrastructureMasterRole owner: CN=NTDS Settings,CN=DC01,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan RidAllocationMasterRole owner: CN=NTDS Settings,CN=DC01,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan PdcEmulationMasterRole owner: CN=NTDS Settings,CN=DC01,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan DomainNamingMasterRole owner: CN=NTDS Settings,CN=DC01,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan DomainDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC01,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan ForestDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC01,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan
Migración parcial: Ejecutamos el script ad-migrate para migar 5 de los 7 roles FSMO:
/usr/share/zentyal-samba/ad-migrate WARNING: This script will transfer all FSMO roles from the current owners to the local server. After all roles have been successfully transferred, you can shutdown the other domain controllers. Do you want to continue [Y/n]? Y Checking server mod... Checking if server is provisioned... Transferring FSMO roles... Transferring Schema Master role from owner: CN=NTDS Settings,CN=DC01, CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration, DC=zentyal-domain,DC=lan Current owner seems to be offline. Seize the role [Y/n]? Y Transferring Domain Naming Master role from owner: CN=NTDS Settings, CN=DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration, DC=zentyal-domain,DC=lan Current owner seems to be offline. Seize the role [Y/n]? Y Transferring PDC Emulation Master role from owner: CN=NTDS Settings, CN=DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration, DC=zentyal-domain,DC=lan Current owner seems to be offline. Seize the role [Y/n]? Y Transferring RID Allocation Master role from owner: CN=NTDS Settings, CN=DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration, DC=zentyal-domain,DC=lan Current owner seems to be offline. Seize the role [Y/n]? Y Transferring Infrastructure Master role from owner: CN=NTDS Settings, CN=DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration, DC=zentyal-domain,DC=lan Current owner seems to be offline. Seize the role [Y/n]? Y Migrated successfully!
Verificación: Comprobamos que se han transferido los 5 roles mencionados:
samba-tool fsmo show SchemaMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan InfrastructureMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan RidAllocationMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan PdcEmulationMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan DomainNamingMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan DomainDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC01,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan ForestDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC01,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan
Migración restante: Procedemos a migrar los dos últimos roles faltantes usando el mismo modo que usó el script:
Para la versión online, el script habrá mostrado Transferring..., por lo que deberemos ejecutar los siguientes comandos:
samba-tool fsmo transfer --role=domaindns -UAdministrator lpcfg_load: refreshing parameters from /etc/samba/smb.conf resolve_lmhosts: Attempting lmhosts lookup for name f533a844-ce64-407e-bea8-ba8907e6e201._msdcs.zentyal-domain.lan Password for [ZENTYAL-DOMAIN\Administrator]: Using binding ncacn_ip_tcp:dc02.zentyal-domain.lan[,seal] resolve_lmhosts: Attempting lmhosts lookup for name dc02.zentyal-domain.lan resolve_lmhosts: Attempting lmhosts lookup for name dc02.zentyal-domain.lan FSMO transfer of 'domaindns' role successful samba-tool fsmo transfer --role=forestdns -UAdministrator lpcfg_load: refreshing parameters from /etc/samba/smb.conf resolve_lmhosts: Attempting lmhosts lookup for name f533a844-ce64-407e-bea8-ba8907e6e201._msdcs.zentyal-domain.lan Password for [ZENTYAL-DOMAIN\Administrator]: Using binding ncacn_ip_tcp:dc02.zentyal-domain.lan[,seal] resolve_lmhosts: Attempting lmhosts lookup for name dc02.zentyal-domain.lan resolve_lmhosts: Attempting lmhosts lookup for name dc02.zentyal-domain.lan FSMO transfer of 'forestdns' role successful
En caso contrario, usaremos seizing:
samba-tool fsmo seize --role=domaindns --role=forestdns -UAdministrator Attempting transfer... lpcfg_load: refreshing parameters from /etc/samba/smb.conf resolve_lmhosts: Attempting lmhosts lookup for name f533a844-ce64-407e-bea8-ba8907e6e201._msdcs.zentyal-domain.lan Failed to connect to ldap URL 'ldap://f533a844-ce64-407e-bea8-ba8907e6e201._msdcs.zentyal-domain.lan' - LDAP client internal error: NT_STATUS_HOST_UNREACHABLE Failed to connect to 'ldap://f533a844-ce64-407e-bea8-ba8907e6e201._msdcs.zentyal-domain.lan' with backend 'ldap': LDAP client internal error: NT_STATUS_HOST_UNREACHABLE Transfer unsuccessful, seizing... Seizing domaindns FSMO role... FSMO seize of 'domaindns' role successful samba-tool fsmo seize --role=forestdns --role=forestdns -UAdministrator Attempting transfer... lpcfg_load: refreshing parameters from /etc/samba/smb.conf resolve_lmhosts: Attempting lmhosts lookup for name f533a844-ce64-407e-bea8-ba8907e6e201._msdcs.zentyal-domain.lan Failed to connect to ldap URL 'ldap://f533a844-ce64-407e-bea8-ba8907e6e201._msdcs.zentyal-domain.lan' - LDAP client internal error: NT_STATUS_HOST_UNREACHABLE Failed to connect to 'ldap://f533a844-ce64-407e-bea8-ba8907e6e201._msdcs.zentyal-domain.lan' with backend 'ldap': LDAP client internal error: NT_STATUS_HOST_UNREACHABLE Transfer unsuccessful, seizing... Seizing forestdns FSMO role... FSMO seize of 'forestdns' role successful
Verificación: Comprobamos que se han migrado todos los roles:
samba-tool fsmo show SchemaMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan InfrastructureMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan RidAllocationMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan PdcEmulationMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan DomainNamingMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan DomainDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan ForestDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers, CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan
| [5] | Transferencia de los roles FSMO: https://wiki.samba.org/index.php/Transferring_and_Seizing_FSMO_Roles |
| [6] | Migración total: https://doc.zentyal.org/es/directory.html#migracion-total |
Habilitar el módulo de correo¶
Una vez transferidos los roles FSMO, procedemos a habilitar el módulo de Mail para comprobar que los usuarios pueden acceder a sus correos electrónicos. A continuación una imagen usando el módulo webmail [6]
| [7] | Módulo de webmail: https://doc.zentyal.org/es/mail.html#cliente-de-webmail |
Desconexión del servidor a migrar¶
En éste punto, vamos a proceder a desconectar el servidor que queremos migrar y eliminar (dc01) de la red de forma controlada, el objetivo es evaluar la capacidad del nuevo servidor (dc02) de asumir correctamente las funciones del dominio como Controlador de Dominio. Este procedimiento permitirá verificar el correcto acceso de los usuarios a sus recursos y la continuidad de los servicios esenciales del dominio.
Advertencia
Este paso puede provocar pérdida de servicio.
Desconectamos o aislamos el servidor dc01.
Eliminamos los registros DNS en el servidor dc02 relativos al dc01 para el dominio y el NS.
- Eliminación del registro NS asociado a DC01: Este cambio asegura que dc01 no sea referenciado como servidor autoritativo para la zona del dominio.
- Eliminación del registro A asociado a DC01: Eliminamos dicho registro para evitar resoluciones erróneas que puedan impactar la operación del dominio.
Estas acciones tienen como objetivo garantizar la continuidad del servicio y la correcta resolución de nombres mientras se valida la transición al dc02.
Advertencia
Durante el proceso de desconexión del servidor, es importante tener en cuenta que el dc02 intentará mantener la comunicación con el controlador de dominio desconectado, esto generará cierto volumen significativo de mensajes en el los archivos de logs: /var/log/syslog y /var/log/samba/samba.log, indicando intentos fallidos de conexión o sincronización con el dc01.
Estos registros son esperados y no representan un problema crítico. No obstante, se recomienda monitorear los ficheros de logs para identificar cualquier comportamiento anómalo que no esté relacionado con la desconexión planificada.
Pruebas en los clientes¶
Con el entorno ya migrado a excepción de eliminar el antiguo servidor, procedemos a realizar las pruebas en los clientes para verificar que los módulos están funcionando correctamente, y que los usuarios pueden acceder a su información.
Antes de nada, es imperativo que verifiquemos y modifiquemos si procede, la configuración de red relativa al servidor DNS y de la puerta de enlace de los clientes para que apunten a la IP del nuevo servidor dc02.
Log in de usuarios del dominio: Lo primero que haremos será verificar que los usuarios del dominio pueden iniciar sesión, para ello, hacemos log in con un usuario en un cliente Windows.
Acceso a las carpetas personales: Comprobamos que tenemos acceso a la carpeta personal del usuario.
Acceso a los recursos compartidos: Comprobamos que tenemos acceso a los recursos compartidos del usuario.
Comprobación de las GPO: Para verificar si las GPOs se están aplicando, hacemos log in con un usuario en un cliente Windows y verificamos si la política establecida se está aplicando, en este ejemplo, nos debe bloquear el acceso al comando ejecutar desde el Menú de Inicio.
Eliminar del dominio el servidor a migrar¶
Como último paso, procederemos a demotear (eliminar) el controlador de dominio dc01, de modo que no haya rastro de él en el dominio.
Truco
Demotear un controlador de dominio consiste en quitarle el rol de controlador de dominio dentro de un entorno Active Directory (AD). Esto implica que el servidor dejará de participar en la replicación de datos del dominio y ya no gestionará servicios relacionados como la autenticación, la autorización, el servicio de nombres DNS, y la Política de Grupo (GPO).
Tal y como indica la documentación oficial de Samba [7], este proceso puede realizarse de manera online u offline. En nuestro caso, aprovechamos que el dc01 está desconectado de la red para realizar pruebas y procedemos a demotearlo de forma offline.
Demote: Procedemos a la eliminación del servidor usando el modo offline:
samba-tool domain demote --remove-other-dead-server=dc01 INFO 2024-12-14 03:22:59,871 pid:16821 /usr/lib/python3/dist-packages/samba/remove_dc.py #337: Removing nTDSConnection: CN=dfe89416-f8ce-415e-b333-33942a6adaba, CN=NTDS Settings,CN=DC02,CN=Servers,CN=Default-First-Site-Name, CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan INFO 2024-12-14 03:22:59,879 pid:16821 /usr/lib/python3/dist-packages/samba/remove_dc.py #359: Removing nTDSDSA: CN=NTDS Settings,CN=DC01,CN=Serve rs,CN=Default-First-Site-Name,CN=Sites,CN=Configuration, DC=zentyal-domain,DC=lan (and any children) INFO 2024-12-14 03:22:59,901 pid:16821 /usr/lib/python3/dist-packages/samba/remove_dc.py #258: Removing RID Set: CN=RID Set,CN=DC01, OU=Domain Controllers,DC=zentyal-domain,DC=lan INFO 2024-12-14 03:22:59,906 pid:16821 /usr/lib/python3/dist-packages/samba/remove_dc.py #267: Removing computer account: CN=DC01,OU=Domain Controllers, DC=zentyal-domain,DC=lan (and any child objects) INFO 2024-12-14 03:22:59,912 pid:16821 /usr/lib/python3/dist-packages/samba/remove_dc.py #279: Removing Samba-specific DNS service account: CN=dns-dc 01,CN=Users,DC=zentyal-domain,DC=lan INFO 2024-12-14 03:22:59,920 pid:16821 /usr/lib/python3/dist-packages/samba/remove_dc.py #56: Removing Sysvol reference: CN=DC01,CN=Enterprise,CN=Microso ft System Volumes,CN=System,CN=Configuration,DC=zentyal-domain,DC=lan INFO 2024-12-14 03:22:59,921 pid:16821 /usr/lib/python3/dist-packages/samba/remove_dc.py #56: Removing Sysvol reference: CN=DC01,CN=zentyal-domain.l an,CN=Microsoft System Volumes,CN=System,CN=Configuration,DC=zentyal-domain, DC=lan INFO 2024-12-14 03:22:59,921 pid:16821 /usr/lib/python3/dist-packages/samba/remove_dc.py #80: Removing Sysvol reference: CN=DC01,CN=Domain System Volum es (SYSVOL share),CN=File Replication Service,CN=System,DC=zentyal-domain, DC=lan INFO 2024-12-14 03:22:59,921 pid:16821 /usr/lib/python3/dist-packages/samba/remove_dc.py #80: Removing Sysvol reference: CN=DC01,CN=Topology,CN=Doma in System Volume,CN=DFSR-GlobalSettings,CN=System,DC=zentyal-domain, DC=lan
Verificación: Comprobamos desde el Panel de Administración de Zentyal del servidor dc02 que el antiguo dc01 ya no esté presente en :Domain Controllers.
Registro CNAME: Una vez demoteado el servidor, es altamente recomendable crear un alias (registro CNAME) desde el módulo DNS para el registro A dc02, de modo que también pueda resolver al antiguo registro DNS dc01, esto nos permitirá prevenir posibles incidencias como de aplicaciones que todavía usen el registro DNS del antiguo servidor dc01.
| [8] | Migración total: https://wiki.samba.org/index.php/Demoting_a_Samba_AD_DC |








