Actualizando XCP-NG de 7.6 a 8.0 de modo remoto.

Procedimiento de actualización:

  1. Descargar ISO de XCP-NG 8.0 en un Web Server
  2. Descomprimir el ISO en un directorio público.
  3. Entrar al Host XCP-NG a ser actualizado y ejecutar la prueba de acceso al ISO.
  4. Ejecutar un reinicio automatico para que inicie desde el ISO y se actualice sin intervención del usuario.
  5. Revisar el proceso a través de un KVM. (Opcional).
  6. Esperar de 10 a 40 minutos hasta que el procedimiento termine, el tiempo dependerá del equipo donde se instale.

1. Descargar ISO

wget http://mirrors.xcp-ng.org/isos/8.0/xcp-ng-8.0.0.iso

2. Descomprimir ISO

sudo mount -o loop xcp-ng-8.0.0.iso /mnt
sudo cp -r /mnt/ /var/www/html/xcp8

3. Prueba de Acceso

[root@xen02 ~]# xe host-list
uuid ( RO)                : 3bb238d8-991r-4b3b-aac5-724afe69947f
          name-label ( RW): xen02.testlab.local
    name-description ( RW): Default install
uuid ( RO)                : 820a79e8-775a-4024-9d53-ffb75de6dc96
          name-label ( RW): xen01.testlab.local
    name-description ( RW): XCP NG 01
[root@xen02 ~]# 
[root@xen02 ~]# xe host-call-plugin plugin=prepare_host_upgrade.py host-uuid=3bb238d8-991r-4b3b-aac5-724afe69947f fn=testUrl args:url=http://webserver.mx/xcp8/
true
[root@xen02 ~]#

Si todo sale “true” podemos proceder.

4. Ejecutar actualización

[root@xen02 etc]# xe host-call-plugin plugin=prepare_host_upgrade.py host-uuid=3bb238d8-991r-4b3b-aac5-724afe69947f fn=main args:url=http://webserver.mx/xcp8/
true
[root@xen02 etc]# reboot

5. Seguimiento a través de KVM

Actualizando de 7.6 a 8.0

6. Probando la actualización.

XCP-NG 8.0 Actualizado sin supervisión

Troubleshooting

Tuve un problema al querer iniciar el paso 4, ya que tenía un error:

There was a failure communicating with the plugin.
status: main
stdout: Exception
stderr: ERROR_PREPARING_HOST

Revisando el archivo /var/log/user.log encontramos lo siguente:

[...]
xen02 prepare_host_upgrade.py DEBUG: Boot files ok, testing repository...
xen02 prepare_host_upgrade.py INFO: Repo version OK: 3.0.0
xen02 prepare_host_upgrade.py INFO: Repo ok, preparing for upgrade
xen02 prepare_host_upgrade.py INFO: Fetching install.img
xen02 prepare_host_upgrade.py INFO: Fetching boot/vmlinuz
xen02 prepare_host_upgrade.py INFO: Fetching boot/xen.gz
xen02 prepare_host_upgrade.py INFO: Fetching boot/isolinux/isolinux.cfg
xen02 prepare_host_upgrade.py ERROR: Root disk /dev/disk/by-id/scsi-SDell_Internal_Dual_S_0123456789AB not found
xen02 prepare_host_upgrade.py ERROR: There was an error in preparing the host for upgrade.

En este caso, el disco no se encuentra y si revisamos /etc/xensource-inventory encontraremos la referencia al path anterior, pero si tratamos de listar el archivo no se encuentra, es por eso que debemos revisar cual es el path correcto.

[root@xen02 log]#  ls -l /dev/disk/by-id/ 
total 0
[...]
scsi-3644a842007ffce00244fd8da06eeae19 -> ../../sda
usb-Dell_Internal_Dual_SD_0123456789AB-0:0 -> ../../sdb
usb-Dell_Internal_Dual_SD_0123456789AB-0:0-part1 -> ../../sdb1
usb-Dell_Internal_Dual_SD_0123456789AB-0:0-part2 -> ../../sdb2
usb-Dell_Internal_Dual_SD_0123456789AB-0:0-part3 -> ../../sdb3
usb-Dell_Internal_Dual_SD_0123456789AB-0:0-part4 -> ../../sdb4
usb-Dell_Internal_Dual_SD_0123456789AB-0:0-part5 -> ../../sdb5
usb-Dell_Internal_Dual_SD_0123456789AB-0:0-part6 -> ../../sdb6
wwn-0x644a842007ffce00244fd8da06eeae19 -> ../../sda
[...]

En el output anterior nos damos cuenta que en el path verdadero tenemos “…Dual_SD_…” y finaliza con un “-0.0” el cual en xensource-inventory el path no tiene esos elementos, por lo que debemos modificar el archivo “xensource-inventory”.

[root@xen02 etc]# cp xensource-inventory  xensource-inventory.bak
[root@xen02 etc]# nano xensource-inventory

Al ejecutar el paso 4 deberemos tener un “true” al final, entonces ya podremos reiniciar el servidor.

Brain Dumped.

Alejandro M.

Ingeniero Mexicano especialista en Seguridad Informática. Conocimientos en Cisco con la certificación Cisco Certified Network Professional - Security, Fortinet con ahora NSE-4, Certified Ethical Hacker. Trabajo con sistema operativos Linux para servidores de servicios web, dns, balanceo de carga, etc... Fanático de los MMORPG