El comando que quita el aviso de suscripción: la línea más extendida, el daño más silencioso
Lo primero que todos encuentran tras instalar es el aviso de suscripción, y la primera solución que todos hallan es un comando de una línea. La versión extendida de ese comando se midió: puede romper toda la biblioteca de la interfaz.
AtlasPVE ·
Esta entrada responde a
- proxmox quitar aviso de suscripción
- proxmox no valid subscription
- proxmox post install script
- qué hacer después de instalar proxmox
- proxmox quitar el nag
Instalaste Proxmox, entraste y apareció el aviso de suscripción. Molesta, porque vuelve en cada inicio de sesión. Buscas y encuentras un comando de una línea. Parece funcionar.
Este artículo trata de ese comando, pero su verdadero tema no es el comando: el coste silencioso de pegar algo que no entiendes.
El error medido
Dentro de la línea ampliamente difundida hay un fallo real, y el fallo es sutil.
En las expresiones regulares básicas de las herramientas de texto clásicas, una barra vertical escrita con contrabarra no es un carácter corriente, es el operador de alternativa. La condición del código de la interfaz contiene dos barras verticales, y cuando el comando las escapa tal cual, entre dos operadores de alternativa nace una alternativa vacía.
Una alternativa vacía coincide en cada posición del archivo. Ejecutada junto con "reemplazar todo", la expresión esparce el cambio por el archivo entero.
No es una suposición. Se midió sobre una copia del archivo real: cambiaron 26458 de 26458 líneas, y la cantidad de false en el archivo pasó de 558 a 26458. El administrador que lanzó ese comando habría roto toda la biblioteca de interfaz de Proxmox.
Encima hay un segundo problema: la condición apuntada no cabe en una línea, Proxmox la reparte en seis. Una herramienta que trabaja línea a línea nunca habría podido apuntarla bien de todos modos.
Por qué nadie se dio cuenta
Porque el daño es silencioso. El comando no da error, nada se enciende en rojo. La interfaz puede seguir funcionando un tiempo, el problema sale después, y en ese momento nadie lo conecta con "el comando que pegué la semana pasada".
La lección general: "a todos les funciona" no es una prueba. La mayoría de las veces solo es prueba de que nadie miró.
Cuatro reglas para todo cambio de esta clase
Cualquier operación que toque un archivo del sistema, la haga quien la haga, debe llevar estos cuatro puntos.
La copia se toma una vez y no se sobrescribe. Refrescarla en cada ejecución significa que en la segunda copias el estado roto.
La puntería es estrecha. Si el texto apuntado ha cambiado de verdad, la operación no se realiza. Cambiar a ojo lo más parecido es peor que no cambiar nada.
Tras escribir se vuelve a leer. Si el resultado esperado no aparece, se restaura la copia. Que una escritura no dé error no significa que haya escrito lo correcto.
Se deja una marca. La pregunta "este archivo está modificado" debe responderla la presencia de una marca, no una suposición.
El caso en el que nadie piensa: y si la copia ya está rota
Aun haciendo los cuatro queda un hueco. Y si otra herramienta rompió el archivo antes y tú tomaste la copia después?
Entonces la reversión devuelve el archivo roto y tú crees haberlo arreglado. Por eso la reversión también debe verificarse: volvió de verdad el original, o la copia misma ya estaba modificada?
Es un ejemplo de la pregunta que hay que hacerse todo el tiempo al trabajar con una máquina ya instalada: no qué pasa en una instalación limpia, sino qué pasa en una máquina que carga un estado viejo.
Qué hace Atlas
Atlas hace este trabajo dentro del producto en lugar de pegando un comando, y aplica los cuatro puntos anteriores.
La copia se toma una vez y no se sobrescribe. La puntería es estrecha: un patrón flexible con los espacios pero fiel en lo demás, de modo que sigue funcionando si Proxmox cambia el formato, pero si la condición misma ha cambiado no se hace nada. Tras escribir, el archivo se vuelve a leer y se verifica; si el resultado esperado no aparece, se restaura la copia. Y el texto colocado lleva una marca, así la pregunta "está modificado" se responde con certeza.
En el lado de la reversión también se trata el último caso: tras restaurar la copia se comprueba si el original volvió de verdad, y si no volvió se dice con claridad.
La única frase que este artículo quiere decir de verdad es esta: el trabajo no es difícil, pero la diferencia entre hacerlo bien y parecer que funciona pasa por medir.
Fuentes
La documentación oficial de Proxmox. En inglés, y en este asunto es ella la que tiene la última palabra.